summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--framebuffer.c9
-rw-r--r--framebuffer.h3
2 files changed, 12 insertions, 0 deletions
diff --git a/framebuffer.c b/framebuffer.c
index b4c2f6e..01d169c 100644
--- a/framebuffer.c
+++ b/framebuffer.c
@@ -1,3 +1,4 @@
+#include <assert.h>
#include <stdlib.h>
#include <stdio.h>
#include <termios.h>
@@ -71,6 +72,14 @@ void fb_put(Framebuffer fb, size_t row, size_t col, Pixel pixel) {
fb.fb[row][col] = pixel;
}
+void fb_vert_line(Framebuffer fb, size_t x, size_t y1, size_t y2, Pixel pixel) {
+ assert(y2 >= y1);
+
+ for (size_t y = y1; y <= y2; y++) {
+ fb.fb[y][x] = pixel;
+ }
+}
+
void term_init(void) {
tcgetattr(0, &initial_terminal_state);
diff --git a/framebuffer.h b/framebuffer.h
index 2a26454..8c971c2 100644
--- a/framebuffer.h
+++ b/framebuffer.h
@@ -62,6 +62,9 @@ void fb_fill(Framebuffer fb, Pixel pixel);
/* Puts a pixel onto fb in a specified position */
void fb_put(Framebuffer fb, size_t row, size_t col, Pixel pixel);
+/* Draws a vertical line to fb on col x, from y1 to y2 */
+void fb_vert_line(Framebuffer fb, size_t x, size_t y1, size_t y2, Pixel pixel);
+
/* Initializes the terminal and sets TERM_WIDTH and TERM_HEIGHT */
void term_init(void);