mirror of https://github.com/bjornbytes/lovr.git
Small UBO cleanup;
This commit is contained in:
parent
2def650abd
commit
d317502ffd
|
@ -252,7 +252,7 @@ void lovrGraphicsCreateWindow(int w, int h, bool fullscreen, int msaa, const cha
|
|||
vertexFormatAppend(&format, "lovrTexCoord", ATTR_FLOAT, 2);
|
||||
state.mesh = lovrMeshCreate(64, format, MESH_TRIANGLES, MESH_STREAM);
|
||||
glGenBuffers(1, &state.cameraUBO);
|
||||
glBindBuffer(GL_UNIFORM_BUFFER, state.cameraUBO);
|
||||
lovrGraphicsBindUniformBuffer(state.cameraUBO);
|
||||
glBufferData(GL_UNIFORM_BUFFER, 4 * 16 * sizeof(float), NULL, GL_DYNAMIC_DRAW);
|
||||
glBindBufferBase(GL_UNIFORM_BUFFER, LOVR_SHADER_BLOCK_CAMERA, state.cameraUBO);
|
||||
lovrGraphicsReset();
|
||||
|
@ -1150,8 +1150,7 @@ void lovrGraphicsPushLayer(Layer layer) {
|
|||
}
|
||||
|
||||
memcpy(&state.layers[state.layer], &layer, sizeof(Layer));
|
||||
|
||||
glBindBuffer(GL_UNIFORM_BUFFER, state.cameraUBO);
|
||||
lovrGraphicsBindUniformBuffer(state.cameraUBO);
|
||||
glBufferSubData(GL_UNIFORM_BUFFER, 0, 4 * 16 * sizeof(float), &layer);
|
||||
|
||||
if (state.canvasCount == 0) {
|
||||
|
@ -1243,6 +1242,13 @@ void lovrGraphicsBindVertexBuffer(uint32_t vertexBuffer) {
|
|||
}
|
||||
}
|
||||
|
||||
void lovrGraphicsBindUniformBuffer(uint32_t uniformBuffer) {
|
||||
if (state.uniformBuffer != uniformBuffer) {
|
||||
state.uniformBuffer = uniformBuffer;
|
||||
glBindBuffer(GL_UNIFORM_BUFFER, uniformBuffer);
|
||||
}
|
||||
}
|
||||
|
||||
void lovrGraphicsBindIndexBuffer(uint32_t indexBuffer) {
|
||||
if (state.indexBuffer != indexBuffer) {
|
||||
state.indexBuffer = indexBuffer;
|
||||
|
|
|
@ -135,6 +135,7 @@ typedef struct {
|
|||
uint32_t program;
|
||||
uint32_t vertexArray;
|
||||
uint32_t vertexBuffer;
|
||||
uint32_t uniformBuffer;
|
||||
uint32_t indexBuffer;
|
||||
GraphicsStats stats;
|
||||
} GraphicsState;
|
||||
|
@ -222,6 +223,7 @@ Shader* lovrGraphicsGetActiveShader();
|
|||
void lovrGraphicsUseProgram(uint32_t program);
|
||||
void lovrGraphicsBindVertexArray(uint32_t vao);
|
||||
void lovrGraphicsBindVertexBuffer(uint32_t vbo);
|
||||
void lovrGraphicsBindUniformBuffer(uint32_t ubo);
|
||||
void lovrGraphicsBindIndexBuffer(uint32_t ibo);
|
||||
void lovrGraphicsDrawArrays(GLenum mode, size_t start, size_t count, int instances);
|
||||
void lovrGraphicsDrawElements(GLenum mode, size_t count, size_t indexSize, size_t offset, int instances);
|
||||
|
|
Loading…
Reference in New Issue