VertexBuffer

This commit is contained in:
Light3039 2021-05-28 05:12:23 +04:30
parent f3fe4c3713
commit 9ae205ac82
6 changed files with 95 additions and 1 deletions

View file

@ -0,0 +1,19 @@
#include "ltpch.h"
#include "VertexBuffer.h"
#include "OpenGL/glVertexBuffer.h"
#include "GraphicsContext.h"
namespace Light {
VertexBuffer* VertexBuffer::Create(unsigned int count, float* vertices)
{
switch (GraphicsContext::GetGraphicsAPI())
{
case GraphicsAPI::OpenGL:
return new glVertexBuffer(count, vertices);
}
}
}

View file

@ -0,0 +1,20 @@
#pragma once
#include "Base.h"
namespace Light {
class VertexBuffer
{
public:
static VertexBuffer* Create(unsigned int count, float* vertices);
virtual void Bind() = 0;
virtual void UnBind() = 0;
protected:
VertexBuffer() = default;
};
}

View file

@ -19,7 +19,7 @@ namespace Light {
void glRenderCommand::ClearBackBuffer()
{
glClear(GL_COLOR_BUFFER_BIT);
glClearColor(0.32f, 0.65f, 0.892f, 1.0f);
glClearColor(0.25f, 0.45f, 0.91f, 1.0f);
}
void glRenderCommand::Draw(unsigned int count)

View file

@ -0,0 +1,30 @@
#include "ltpch.h"
#include "glVertexBuffer.h"
#include <glad/glad.h>
namespace Light {
glVertexBuffer::glVertexBuffer(unsigned int count, float* vertices)
{
glCreateBuffers(1, &m_BufferID);
glBindBuffer(GL_ARRAY_BUFFER, m_BufferID);
glBufferData(GL_ARRAY_BUFFER, count * sizeof(float), vertices, GL_STATIC_DRAW);
}
glVertexBuffer::~glVertexBuffer()
{
glDeleteBuffers(1, &m_BufferID);
}
void glVertexBuffer::Bind()
{
glBindBuffer(GL_ARRAY_BUFFER, m_BufferID);
}
void glVertexBuffer::UnBind()
{
glBindBuffer(GL_ARRAY_BUFFER, NULL);
}
}

View file

@ -0,0 +1,20 @@
#pragma once
#include "Base.h"
#include "Graphics/VertexBuffer.h"
namespace Light {
class glVertexBuffer : public VertexBuffer
{
private:
unsigned int m_BufferID;
public:
glVertexBuffer(unsigned int count, float* vertices);
~glVertexBuffer();
void Bind() override;
void UnBind() override;
};
}

View file

@ -8,6 +8,11 @@ Pos=276,-1
Size=521,536
Collapsed=0
[Window][Dear ImGui Metrics/Debugger]
Pos=263,318
Size=346,290
Collapsed=0
[Table][0xC9935533,3]
Column 0 Weight=1.0000
Column 1 Weight=1.0000