Commit: a123a12fde70712546102479d03566c37d248d4e
Parent: f1055209d9732ffa0e2cb06054bf4b1dbeb8fb7b
Author: Randy Palamar
Date: Sun, 7 Jul 2024 12:11:27 -0600
cleanup some TODOs
Diffstat:
2 files changed, 8 insertions(+), 13 deletions(-)
diff --git a/os_unix.c b/os_unix.c
@@ -248,10 +248,9 @@ os_child_exited(os_child c)
}
static size
-os_read_from_child(os_child c, RingBuf *rb)
+os_read_from_child(os_child c, RingBuf *rb, size unprocessed_bytes)
{
- /* TODO: check if we need to care about unprocessed bytes from last run */
- size r = 0, total_bytes_read = 0, remaining = rb->cap;
+ size r = 0, total_bytes_read = 0, remaining = rb->cap - unprocessed_bytes;
do {
remaining -= r;
total_bytes_read += r;
diff --git a/vtgl.c b/vtgl.c
@@ -28,6 +28,7 @@ static void
clear_colour(void)
{
v4 cc = normalized_colour(g_colours.data[g_colours.bgidx]);
+ //v4 cc = normalized_colour(g_colours.data[5]);
glClearColor(cc.r, cc.g, cc.b, cc.a);
glClear(GL_COLOR_BUFFER_BIT);
}
@@ -182,8 +183,7 @@ push_empty_cell_rect(RenderPushBuffer *rpb, Term *t, u32 minrow, u32 maxrow, u32
v2 size = {.x = (maxcol - mincol + 1) * cs.w, .y = (maxrow - minrow + 1) * cs.h};
v2 pos = {.x = mincol * cs.w, .y = t->gl.window_size.h - cs.h * (minrow + 1)};
- /* TODO: global colour table */
- Colour colour = {.r = 20, .g = 20, .b = 20, .a = 255};
+ Colour colour = g_colours.data[g_colours.bgidx];
push_char(rpb, &t->gl, size, pos, (v2){0}, (uv2){.y = colour.rgba}, 0);
}
@@ -382,16 +382,13 @@ do_terminal(Term *t, Arena a)
RenderPushBuffer *rpb = alloc(&a, RenderPushBuffer, 1);
- /* TODO: don't let the input splitting cause draw calls */
- glUseProgram(t->gl.programs[SHADER_RENDER]);
-
if (os_child_data_available(t->child)) {
if (os_child_exited(t->child)) {
/* TODO: is there a reason to not immediately exit? */
glfwSetWindowShouldClose(t->gl.window, GL_TRUE);
return;
}
- t->unprocessed_bytes += os_read_from_child(t->child, &t->log);
+ t->unprocessed_bytes += os_read_from_child(t->child, &t->log, t->unprocessed_bytes);
s8 raw = {
.len = t->unprocessed_bytes,
.data = t->log.buf + (t->log.widx - t->unprocessed_bytes)
@@ -401,16 +398,15 @@ do_terminal(Term *t, Arena a)
(void)parsed_lines;
}
- v2 ws = t->gl.window_size;
+ blit_lines(t, a);
+ v2 ws = t->gl.window_size;
/* NOTE: reset the camera/viewport */
- //glUseProgram(t->gl.programs[SHADER_RENDER]);
+ glUseProgram(t->gl.programs[SHADER_RENDER]);
glUniform1i(t->gl.render.texslot, 0);
glBindFramebuffer(GL_FRAMEBUFFER, t->gl.fb);
clear_colour();
-
- blit_lines(t, a);
render_framebuffer(t, rpb);
v2 cell_size = get_cell_size(t);