Engine
Frameworkcreatedbymeusableforthecreationofsimplegames.CurrentlysupportsOpenGL(Verysimple)andVulkan.
OpenGLRenderer.hpp
Go to the documentation of this file.
1 #pragma once
2 
4 #ifdef USING_OPENGL
7 
8 namespace Engine
9 {
13  class ENGINE_API OpenGLRenderer : public Renderer
14  {
15  public:
16  friend class Engine;
17 
18  OpenGLRenderer() = default;
19  explicit OpenGLRenderer(eastl::string vertexShader, eastl::string fragmentShader) noexcept;
20  OpenGLRenderer(OpenGLRenderer const &other) = default;
21  OpenGLRenderer(OpenGLRenderer &&other) noexcept = default;
22  virtual ~OpenGLRenderer() noexcept;
23 
29  void RendererBegin(const glm::mat4x4& view, const glm::mat4x4& projection) override;
36  void Render(const glm::mat4x4& modelMatrix, eastl::shared_ptr<Model> model, const glm::vec4& mainColor = glm::vec4(1, 1, 1, 1)) override;
40  void RendererEnd() override;
41  private:
42 
43  eastl::shared_ptr<OpenGLShader> shader;
44  eastl::weak_ptr<ShaderParameter> projParam;
45  eastl::weak_ptr<ShaderParameter> modelParam;
46  eastl::weak_ptr<ShaderParameter> viewParam;
47  eastl::weak_ptr<ShaderParameter> textureParam;
48  eastl::weak_ptr<ShaderParameter> mainTextureColor;
49  eastl::weak_ptr<ShaderAttribute> positionAttrib;
50  eastl::weak_ptr<ShaderAttribute> normalAttrib;
51  eastl::weak_ptr<ShaderAttribute> textureAttrib;
52  };
53 } // namespace Engine
54 #endif // USING_OPENGL
#define ENGINE_API
Definition: api.hpp:25
IMGUI_API void Render()
Definition: imgui.cpp:2769