14 virtual void Bind()
const override;
15 virtual void UnBind()
const override;
17 virtual void AddVertexBuffer(
const std::shared_ptr<VertexBuffer>& vertexBuffer)
override;
18 virtual void SetIndexBuffer(
const std::shared_ptr<IndexBuffer>& indexBuffer)
override;
20 virtual void SetMesh(std::shared_ptr<Mesh> mesh)
override;
21 virtual void SetMaterial(std::shared_ptr<Material> material)
override;
23 virtual void SetShader(std::shared_ptr<Shader> shader)
override {}
25 virtual const std::vector<std::shared_ptr<VertexBuffer>>& GetVertexBuffers()
const override {
return m_VertexBuffers; }
26 virtual const IndexBuffer* GetIndexBuffer()
const override {
return m_IndexBuffer.get(); }
28 virtual std::shared_ptr<Material> GetMaterial()
const override {
return m_Materials.at(0); }
30 virtual void UpdateProcessAndSetReadyForSubmission()
const override;
33 uint32_t m_RendererID;
35 std::vector<std::shared_ptr<VertexBuffer>> m_VertexBuffers;
36 std::shared_ptr<IndexBuffer> m_IndexBuffer;
39 std::vector<std::shared_ptr<Material>> m_Materials;
40 std::vector<std::shared_ptr<OpenGLShader>> m_Shaders;
41 std::shared_ptr<OpenGLShader> m_Shader;