From 188ea2eb92bae770dcfbdef67984986cbaf2c9ea Mon Sep 17 00:00:00 2001
From: talha <sarcxd@gmail.com>
Date: Thu, 27 Mar 2025 01:27:44 +0500
Subject: Added imgui components:

- Added ui button, basic but also centers text automatically, IT IS SLOW
- IN PROGRESS: adding a drop down select box
---
 source/renderer/renderer.cpp | 35 ++++++++++++++++++++++++++---------
 1 file changed, 26 insertions(+), 9 deletions(-)

(limited to 'source/renderer/renderer.cpp')

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;
-- 
cgit v1.2.3