From 84cdb87a199f18a3ead6acceb41adc7268603f8f Mon Sep 17 00:00:00 2001 From: Abdelrahman Date: Sat, 24 Feb 2024 20:45:09 +0000 Subject: [PATCH] Update code to use stdlib --- include/compositor.h | 2 +- include/math_utils.h | 2 +- include/nodes.h | 2 +- include/ops.h | 4 ++-- include/ui.h | 2 +- include/window.h | 2 +- src/compositor.c | 11 +++++++++-- src/main.c | 2 +- src/ops.c | 2 +- src/ui.c | 10 +++++----- src/window.c | 6 +++--- 11 files changed, 26 insertions(+), 19 deletions(-) diff --git a/include/compositor.h b/include/compositor.h index 133e0e9..901aac2 100644 --- a/include/compositor.h +++ b/include/compositor.h @@ -1,7 +1,7 @@ #ifndef COMPOSITOR_H #define COMPOSITOR_H -#include "aliases/aliases.h" +#include "aliases.h" i32 run_main_loop(void); diff --git a/include/math_utils.h b/include/math_utils.h index d5e16d4..073e5e5 100644 --- a/include/math_utils.h +++ b/include/math_utils.h @@ -1,7 +1,7 @@ #ifndef MATH_UTILS_H #define MATH_UTILS_H -#include "aliases/aliases.h" +#include "aliases.h" #define square(x) (x * x) #define absolute(x) (x < 0.0 ? x * -1.0 : x) diff --git a/include/nodes.h b/include/nodes.h index 6ac57f4..cd8f8b2 100644 --- a/include/nodes.h +++ b/include/nodes.h @@ -1,7 +1,7 @@ #ifndef NODES_H #define NODES_H -#include "aliases/aliases.h" +#include "aliases.h" #include "ui.h" #define MAX_NODES 1024 diff --git a/include/ops.h b/include/ops.h index 706d688..d4cbcb9 100644 --- a/include/ops.h +++ b/include/ops.h @@ -1,7 +1,7 @@ #ifndef COMP_OPS_H #define COMP_OPS_H -#include "aliases/aliases.h" +#include "aliases.h" #include "nodes.h" enum comp_ops { @@ -18,7 +18,7 @@ i32 comp_sub(i32 a, i32 b); i32 comp_mul(i32 a, i32 b); i32 comp_div(i32 a, i32 b); -INTERNAL node_func ops[COUNT_COMP_OPS] = { +internal node_func ops[COUNT_COMP_OPS] = { [COMP_OP_ADD] = comp_add, [COMP_OP_SUB] = comp_sub, [COMP_OP_MUL] = comp_mul, diff --git a/include/ui.h b/include/ui.h index cd05490..92bd9e7 100644 --- a/include/ui.h +++ b/include/ui.h @@ -2,7 +2,7 @@ #define UI_H #include "SDL_events.h" -#include "aliases/aliases.h" +#include "aliases.h" #include "window.h" #include diff --git a/include/window.h b/include/window.h index 4af3933..6263cfd 100644 --- a/include/window.h +++ b/include/window.h @@ -1,7 +1,7 @@ #ifndef WINDOW_H #define WINDOW_H -#include "aliases/aliases.h" +#include "aliases.h" #include #include #include diff --git a/src/compositor.c b/src/compositor.c index 1e83d36..342cbcb 100644 --- a/src/compositor.c +++ b/src/compositor.c @@ -1,4 +1,5 @@ -#include "aliases/aliases.h" +#include "aliases.h" +#include "mem_arena.h" #include "nodes.h" #include "ops.h" #include "ui.h" @@ -15,8 +16,11 @@ #define WINDOW_WIDTH 1280 #define WINDOW_HEIGHT 720 +#define ARENA_CAPACITY 1 * 1024 * 1024 + typedef struct compositor compositor; struct compositor { + Arena *arena; window windows[MAX_WINDOWS]; u32 active_window; SDL_Event event; @@ -39,8 +43,9 @@ i32 run_main_loop(void) { compositor comp = {0}; init_ui_ctx(&(comp.ctx)); + mem_arena_init(&comp.arena, ARENA_CAPACITY); - comp.nodes = (node *)malloc(sizeof(node) * MAX_NODES); + comp.nodes = (node *)mem_arena_alloc(comp.arena, sizeof(node) * MAX_NODES); window *main_window = &(comp.windows[0]); window *toolbox = &(comp.windows[1]); @@ -165,6 +170,8 @@ i32 run_main_loop(void) { SDL_Quit(); + mem_arena_free(&comp.arena); + return EXIT_SUCCESS; } diff --git a/src/main.c b/src/main.c index ee1a047..f29619b 100644 --- a/src/main.c +++ b/src/main.c @@ -1,4 +1,4 @@ -#include "aliases/aliases.h" +#include "aliases.h" #include "compositor.h" i32 main(void) { return run_main_loop(); } diff --git a/src/ops.c b/src/ops.c index fef0692..a69574e 100644 --- a/src/ops.c +++ b/src/ops.c @@ -1,5 +1,5 @@ #include "ops.h" -#include "aliases/aliases.h" +#include "aliases.h" i32 comp_add(i32 a, i32 b) { return a + b; } diff --git a/src/ui.c b/src/ui.c index 696ffdd..b342a2f 100644 --- a/src/ui.c +++ b/src/ui.c @@ -1,6 +1,6 @@ #include "ui.h" #include "SDL_events.h" -#include "aliases/aliases.h" +#include "aliases.h" #include "math_utils.h" #include "window.h" #include @@ -12,8 +12,8 @@ line ui_noodle(const window *wnd, ui_ctx *ctx, line ln, ui_elem_colours colours); -INTERNAL bool aabb(rect rec, i32 x, i32 y); -INTERNAL line line_from_origin(point origin, f64 angle, i32 line_length); +internal bool aabb(rect rec, i32 x, i32 y); +internal line line_from_origin(point origin, f64 angle, i32 line_length); void init_ui_ctx(ui_ctx *ctx) { *ctx = (ui_ctx){0}; @@ -255,12 +255,12 @@ line ui_noodle(const window *wnd, ui_ctx *ctx, line ln, return ln; } -INTERNAL bool aabb(rect rec, i32 x, i32 y) { +internal bool aabb(rect rec, i32 x, i32 y) { return x > rec.topleft.x && x <= rec.topleft.x + rec.w && y > rec.topleft.y && y <= rec.topleft.y + rec.h; } -INTERNAL line line_from_origin(point origin, f64 angle, i32 line_length) { +internal line line_from_origin(point origin, f64 angle, i32 line_length) { f64 rad = radians(angle); f64 direction = angle / absolute(angle) * -1; diff --git a/src/window.c b/src/window.c index e0da976..cdf38c0 100644 --- a/src/window.c +++ b/src/window.c @@ -1,12 +1,12 @@ #include "window.h" -#include "aliases/aliases.h" +#include "aliases.h" #include "math_utils.h" #include #include #include #include -INTERNAL inline bool inside_triangle(triangle tri, point p); +internal inline bool inside_triangle(triangle tri, point p); bool init_window(window *wnd, const char *title, u32 width, u32 height, i32 x, i32 y) { @@ -162,7 +162,7 @@ void fill_quad(const window *wnd, quad qd, colour colour) { fill_triangle(wnd, t1, colour); } -INTERNAL inline bool inside_triangle(triangle tri, point p) { +internal inline bool inside_triangle(triangle tri, point p) { // Based on the following video: // https://www.youtube.com/watch?v=HYAgJN3x4GA f32 cy_min_ay = tri.p2.y - tri.p0.y;