13 class ENGINE_API OpenGLRenderer :
public Renderer
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;
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;
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;
54 #endif // USING_OPENGL