23 default:
return GL_TRIANGLES;
30 glClearColor(color.r, color.g, color.b, color.a);
35 glViewport(x, y, width, height);
40 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
50 glActiveTexture(GL_TEXTURE0);
51 glBindTexture(GL_TEXTURE_2D, 0);
56 if (!glfwGetCurrentContext()) {
57 EE_CORE_ERROR(
"No OpenGL context active!");
63 EE_CORE_ERROR(
"VAO or IndexBuffer is null!");
73 EE_CORE_ERROR(
"IndexBuffer has 0 indices!");
83 uint32_t vertexCount = vbo->GetSize() / vbo->GetLayout().GetStride();
91 if(enabled) glEnable(GL_CULL_FACE);
92 else glDisable(GL_CULL_FACE);
96 glDepthMask(enabled ? GL_TRUE : GL_FALSE);
100 if (enabled) glEnable(GL_DEPTH_TEST);
101 else glDisable(GL_DEPTH_TEST);
virtual void SetDepthWrittingState(bool enabled) const override
virtual void SetDepthTestingState(bool enabled) const override
virtual void DrawArray(const VertexArray *vao, DrawPrimitiveType primitive=DrawPrimitiveType::Triangles) const override
virtual void Clear() const override
virtual void SetViewport(int x, int y, int width, int height) const override
virtual void FlushBuffers() const override
virtual void ClearTextureBindings() const override
virtual void SetCullingState(bool enabled) const override
virtual void SetClearColor(const glm::vec4 &color) const override
GLenum DrawPrimitiveTypeToOpenGL(DrawPrimitiveType type) const
virtual void Bind() const =0
const std::vector< std::shared_ptr< VertexBuffer > > & GetVertexBuffers() const
const std::shared_ptr< IndexBuffer > GetIndexBuffer() const