summaryrefslogtreecommitdiff
path: root/source/renderer
diff options
context:
space:
mode:
authortalha <sarcxd@gmail.com>2025-03-27 01:27:44 +0500
committertalha <sarcxd@gmail.com>2025-03-27 01:27:44 +0500
commit188ea2eb92bae770dcfbdef67984986cbaf2c9ea (patch)
treed2f5b927f584fbf0eba62f91c5cdd3e72b19a3e8 /source/renderer
parent517aa3f3eda5122b6dee0e0aa62ab2e1a33d1d10 (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.cpp35
-rw-r--r--source/renderer/renderer.h6
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);