From 31e4542d4a4987e106d32c122ac0184e209a1c66 Mon Sep 17 00:00:00 2001 From: 0scar Date: Sun, 28 Jul 2024 16:29:53 +0200 Subject: Remove "RenderBatch" draw call type --- src/rendering/include/engine/rendering/rendering.h | 5 -- src/rendering/src/rendering.c | 67 ---------------------- 2 files changed, 72 deletions(-) diff --git a/src/rendering/include/engine/rendering/rendering.h b/src/rendering/include/engine/rendering/rendering.h index e3ed7b1..6789051 100644 --- a/src/rendering/include/engine/rendering/rendering.h +++ b/src/rendering/include/engine/rendering/rendering.h @@ -181,7 +181,6 @@ typedef enum { RenderDrawCallType_Text, RenderDrawCallType_Sprite, RenderDrawCallType_Model, - RenderDrawCallType_Batch, } RenderDrawCallType; typedef struct { @@ -199,10 +198,6 @@ typedef struct { vec3 pos; f32 scale; } model; - struct { - RenderObject* model; - isize id; - } batch; } data; } RenderDrawCall; diff --git a/src/rendering/src/rendering.c b/src/rendering/src/rendering.c index 64b6102..8f52763 100644 --- a/src/rendering/src/rendering.c +++ b/src/rendering/src/rendering.c @@ -287,73 +287,6 @@ void render_present(Window* w) { // TODO render a quad } break; - case RenderDrawCallType_Batch: { - // - const f64 t = get_time(); - - const RenderBatch* b = &render_batches[dc.data.batch.id]; - const RenderObject* o = dc.data.batch.model; - //vec3 pos; - //glm_vec3_copy(dc.data.model.pos, pos); - - gl->UseProgram(o->shader.program); - // TODO: Use texture atlas - gl->ActiveTexture(GL_TEXTURE0); - gl->BindTexture(GL_TEXTURE_2D, o->texture); - - { - mat4 model = GLM_MAT4_IDENTITY_INIT; - mat4 modelviewprojection; - - //model[3][0] = pos[0]; - //model[3][1] = pos[1]; - //model[3][2] = pos[2]; - - { // modelviewprojection = p * view * model - mat4 t; - glm_mat4_mul(view, model, t); - glm_mat4_mul(c.per, t, modelviewprojection); - } - - // TODO: Do this only once during initialization - u32 matrix = o->mvp; - - gl->UniformMatrix4fv(matrix, 1, GL_FALSE, &modelviewprojection[0][0]); - } - - // TODO the buffers need to be abstracted a bit more - gl->BindVertexArray(o->vao); - - for (usize i = 0; i < o->buffer_len; i++) { - gl->EnableVertexAttribArray(i); - gl->BindBuffer(GL_ARRAY_BUFFER, o->buffer[i].buffername); - gl->VertexAttribPointer( - i, // ... - o->buffer[i].components, // size - GL_FLOAT, // type - GL_FALSE, // normalized? - 0, // stride - (void*)0 // array buffer offset - ); - } - - // Draw the model ! - // TODO: Use DrawElements and an index buffer! - gl->DrawArrays(GL_TRIANGLES, 0, b->renderobj.buffer->size); // Starting from vertex 0; 3 vertices total -> 1 triangle - - for (usize i = 0; i < o->buffer_len; i++) { - gl->DisableVertexAttribArray(i); - } - - //gl->DisableVertexAttribArray(1); - gl->BindVertexArray(0); - - //if (i == 8) { - // printf("\r obj: %.3f", (double)(get_time() - t) * 1000.); - //} - - } break; - case RenderDrawCallType_Model: { // bind shader program -- cgit v1.3