diff options
author | talha <sarcxd@gmail.com> | 2025-03-27 01:27:44 +0500 |
---|---|---|
committer | talha <sarcxd@gmail.com> | 2025-03-27 01:27:44 +0500 |
commit | 188ea2eb92bae770dcfbdef67984986cbaf2c9ea (patch) | |
tree | d2f5b927f584fbf0eba62f91c5cdd3e72b19a3e8 /source/renderer | |
parent | 517aa3f3eda5122b6dee0e0aa62ab2e1a33d1d10 (diff) |
Added imgui components:
- Added ui button, basic but also centers text automatically, IT IS SLOW
- IN PROGRESS: adding a drop down select box
Diffstat (limited to 'source/renderer')
-rw-r--r-- | source/renderer/renderer.cpp | 35 | ||||
-rw-r--r-- | source/renderer/renderer.h | 6 |
2 files changed, 29 insertions, 12 deletions
diff --git a/source/renderer/renderer.cpp b/source/renderer/renderer.cpp index 4e51f91..d61d85a 100644 --- a/source/renderer/renderer.cpp +++ b/source/renderer/renderer.cpp @@ -283,7 +283,19 @@ void gl_cq_flush(GLRenderer* renderer) { renderer->cq_batch_count = 0; } -void gl_setup_line(GLRenderer* renderer, u32 sp) { +void _gl_setup_line(GLRenderer* renderer, + u32 sp) { + // @todo: implement this +} + +void _gl_draw_line(GLRenderer *renderer, + Vec3 start, + Vec3 end, + Vec3 color) { + // @todo: implement this +} + +void gl_setup_line_batch(GLRenderer* renderer, u32 sp) { glGenVertexArrays(1, &renderer->line_vao); glGenBuffers(1, &renderer->line_vbo); @@ -310,7 +322,7 @@ void gl_setup_line(GLRenderer* renderer, u32 sp) { glBindVertexArray(0); } -void gl_draw_line( +void gl_draw_line_batch( GLRenderer *renderer, Vec3 start, Vec3 end, @@ -329,11 +341,11 @@ void gl_draw_line( renderer->line_batch_count++; if(renderer->line_batch_count == BATCH_SIZE) { - gl_line_flush(renderer); + gl_flush_line_batch(renderer); } } -void gl_line_flush(GLRenderer *renderer) { +void gl_flush_line_batch(GLRenderer *renderer) { glUseProgram(renderer->line_sp); glEnable(GL_DEPTH_TEST); @@ -504,7 +516,9 @@ void gl_render_text( Vec3 position, Vec3 color, r32 font_size) { - // render_text + + + // shader setup glDisable(GL_DEPTH_TEST); glEnable(GL_BLEND); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); @@ -524,10 +538,6 @@ void gl_render_text( renderer->ui_cam.update = 0; } - glUniform3fv( - glGetUniformLocation( - renderer->ui_text.sp, "TextColor"), - 1, color.data); glBindVertexArray(renderer->ui_text.vao); glBindTexture( GL_TEXTURE_2D_ARRAY, @@ -535,6 +545,13 @@ void gl_render_text( glBindBuffer(GL_ARRAY_BUFFER, renderer->ui_text.vbo); glActiveTexture(GL_TEXTURE0); + glUniform3fv( + glGetUniformLocation( + renderer->ui_text.sp, + "TextColor" + ), 1, color.data + ); + u32 running_index = 0; r32 startx = position.x; r32 starty = position.y; diff --git a/source/renderer/renderer.h b/source/renderer/renderer.h index 6cec799..3bd8bb3 100644 --- a/source/renderer/renderer.h +++ b/source/renderer/renderer.h @@ -113,14 +113,14 @@ void gl_draw_colored_quad_optimized( void gl_cq_flush(GLRenderer *renderer); // ==================== LINE ==================== -void gl_setup_line(GLRenderer *renderer, u32 sp); -void gl_draw_line( +void gl_setup_line_batch(GLRenderer *renderer, u32 sp); +void gl_draw_line_batch( GLRenderer *renderer, Vec3 start, Vec3 end, Vec3 color ); -void gl_line_flush(GLRenderer *renderer); +void gl_flush_line_batch(GLRenderer *renderer); // ==================== FONT RENDERING ==================== void gl_setup_text(TextState *uistate); |