diff options
| author | 3gg <3gg@shellblade.net> | 2025-10-24 15:02:00 -0700 |
|---|---|---|
| committer | 3gg <3gg@shellblade.net> | 2025-10-24 15:02:00 -0700 |
| commit | c2cbe2ef1cb0237efd14fbe87469ee991ad3daa1 (patch) | |
| tree | 063334553a68e853f2f0aff7be40bef003e64cb4 | |
| parent | b1c29c40fdc618ab250292f85d8132474fb8843e (diff) | |
Rename ImmRenderer -> Imm
| -rw-r--r-- | include/gfx/gfx.h | 4 | ||||
| -rw-r--r-- | include/gfx/renderer/imm_renderer.h | 23 | ||||
| -rw-r--r-- | src/gfx.c | 18 | ||||
| -rw-r--r-- | src/renderer/imm_renderer.c | 22 | ||||
| -rw-r--r-- | src/renderer/imm_renderer_impl.h | 8 |
5 files changed, 36 insertions, 39 deletions
diff --git a/include/gfx/gfx.h b/include/gfx/gfx.h index d5c25b6..eb7a3cd 100644 --- a/include/gfx/gfx.h +++ b/include/gfx/gfx.h | |||
| @@ -2,7 +2,7 @@ | |||
| 2 | 2 | ||
| 3 | typedef struct AssetCache AssetCache; | 3 | typedef struct AssetCache AssetCache; |
| 4 | typedef struct GfxCore GfxCore; | 4 | typedef struct GfxCore GfxCore; |
| 5 | typedef struct ImmRenderer ImmRenderer; | 5 | typedef struct Imm Imm; |
| 6 | typedef struct LLR LLR; | 6 | typedef struct LLR LLR; |
| 7 | typedef struct Renderer Renderer; | 7 | typedef struct Renderer Renderer; |
| 8 | 8 | ||
| @@ -21,7 +21,7 @@ GfxCore* gfx_get_core(Gfx*); | |||
| 21 | Renderer* gfx_get_renderer(Gfx*); | 21 | Renderer* gfx_get_renderer(Gfx*); |
| 22 | 22 | ||
| 23 | /// Get the immediate mode renderer. | 23 | /// Get the immediate mode renderer. |
| 24 | ImmRenderer* gfx_get_imm_renderer(Gfx*); | 24 | Imm* gfx_get_imm(Gfx*); |
| 25 | 25 | ||
| 26 | /// Get the low-level renderer. | 26 | /// Get the low-level renderer. |
| 27 | LLR* gfx_get_llr(Gfx*); | 27 | LLR* gfx_get_llr(Gfx*); |
diff --git a/include/gfx/renderer/imm_renderer.h b/include/gfx/renderer/imm_renderer.h index db4d290..62c071e 100644 --- a/include/gfx/renderer/imm_renderer.h +++ b/include/gfx/renderer/imm_renderer.h | |||
| @@ -2,41 +2,38 @@ | |||
| 2 | 2 | ||
| 3 | #include <math/aabb2.h> | 3 | #include <math/aabb2.h> |
| 4 | #include <math/aabb3.h> | 4 | #include <math/aabb3.h> |
| 5 | #include <math/camera.h> | ||
| 6 | #include <math/mat4.h> | ||
| 7 | #include <math/vec3.h> | 5 | #include <math/vec3.h> |
| 8 | #include <math/vec4.h> | ||
| 9 | 6 | ||
| 10 | typedef struct ImmRenderer ImmRenderer; | 7 | typedef struct Imm Imm; |
| 11 | 8 | ||
| 12 | /// Prepare the graphics systems for immediate-mode rendering. | 9 | /// Prepare the graphics systems for immediate-mode rendering. |
| 13 | /// | 10 | /// |
| 14 | /// Call this before issuing any immediate-mode rendering draws. | 11 | /// Call this before issuing any immediate-mode rendering draws. |
| 15 | void gfx_imm_start(ImmRenderer*); | 12 | void gfx_imm_start(Imm*); |
| 16 | 13 | ||
| 17 | /// End immediate mode rendering. | 14 | /// End immediate mode rendering. |
| 18 | /// | 15 | /// |
| 19 | /// Call this after issuing immediate-mode rendering draws and before swapping | 16 | /// Call this after issuing immediate-mode rendering draws and before swapping |
| 20 | /// buffers. | 17 | /// buffers. |
| 21 | void gfx_imm_end(ImmRenderer*); | 18 | void gfx_imm_end(Imm*); |
| 22 | 19 | ||
| 23 | /// Flush draw commands. | 20 | /// Flush draw commands. |
| 24 | /// | 21 | /// |
| 25 | /// This should be done when changing any state that may affect the rendering of | 22 | /// This should be done when changing any state that may affect the rendering of |
| 26 | /// primitives; for example, LLR matrix stack changes. | 23 | /// primitives; for example, LLR matrix stack changes. |
| 27 | void gfx_imm_flush(ImmRenderer*); | 24 | void gfx_imm_flush(Imm*); |
| 28 | 25 | ||
| 29 | /// Draw a set of triangles. | 26 | /// Draw a set of triangles. |
| 30 | void gfx_imm_draw_triangles(ImmRenderer*, const vec3[], size_t num_triangles); | 27 | void gfx_imm_draw_triangles(Imm*, const vec3[], size_t num_triangles); |
| 31 | 28 | ||
| 32 | /// Draw a triangle. | 29 | /// Draw a triangle. |
| 33 | void gfx_imm_draw_triangle(ImmRenderer*, const vec3[3]); | 30 | void gfx_imm_draw_triangle(Imm*, const vec3[3]); |
| 34 | 31 | ||
| 35 | /// Draw a bounding box. | 32 | /// Draw a bounding box. |
| 36 | void gfx_imm_draw_aabb2(ImmRenderer*, aabb2); | 33 | void gfx_imm_draw_aabb2(Imm*, aabb2); |
| 37 | 34 | ||
| 38 | /// Draw a bounding box. | 35 | /// Draw a bounding box. |
| 39 | void gfx_imm_draw_aabb3(ImmRenderer*, aabb3); | 36 | void gfx_imm_draw_aabb3(Imm*, aabb3); |
| 40 | 37 | ||
| 41 | /// Draw a box. | 38 | /// Draw a box. |
| 42 | /// | 39 | /// |
| @@ -49,7 +46,7 @@ void gfx_imm_draw_aabb3(ImmRenderer*, aabb3); | |||
| 49 | /// | 4 ----- 5 | 46 | /// | 4 ----- 5 |
| 50 | /// |/ |/ | 47 | /// |/ |/ |
| 51 | /// 0 ----- 1 | 48 | /// 0 ----- 1 |
| 52 | void gfx_imm_draw_box3(ImmRenderer* renderer, const vec3 vertices[8]); | 49 | void gfx_imm_draw_box3(Imm* renderer, const vec3 vertices[8]); |
| 53 | 50 | ||
| 54 | /// Set the render colour. | 51 | /// Set the render colour. |
| 55 | void gfx_imm_set_colour(ImmRenderer*, vec4 colour); | 52 | void gfx_imm_set_colour(Imm*, vec4 colour); |
| @@ -11,11 +11,11 @@ | |||
| 11 | #include <stdlib.h> | 11 | #include <stdlib.h> |
| 12 | 12 | ||
| 13 | typedef struct Gfx { | 13 | typedef struct Gfx { |
| 14 | AssetCache asset_cache; | 14 | AssetCache asset_cache; |
| 15 | GfxCore gfxcore; | 15 | GfxCore gfxcore; |
| 16 | LLR llr; | 16 | LLR llr; |
| 17 | ImmRenderer imm_renderer; | 17 | Imm imm; |
| 18 | Renderer renderer; | 18 | Renderer renderer; |
| 19 | } Gfx; | 19 | } Gfx; |
| 20 | 20 | ||
| 21 | Gfx* gfx_init(void) { | 21 | Gfx* gfx_init(void) { |
| @@ -28,7 +28,7 @@ Gfx* gfx_init(void) { | |||
| 28 | gfx_destroy(&gfx); | 28 | gfx_destroy(&gfx); |
| 29 | return 0; | 29 | return 0; |
| 30 | } | 30 | } |
| 31 | if (!gfx_imm_make(&gfx->imm_renderer, &gfx->gfxcore, &gfx->llr)) { | 31 | if (!gfx_imm_make(&gfx->imm, &gfx->gfxcore, &gfx->llr)) { |
| 32 | // TODO: Add error logs to the initialization failure cases here and inside | 32 | // TODO: Add error logs to the initialization failure cases here and inside |
| 33 | // the renderers. | 33 | // the renderers. |
| 34 | gfx_destroy(&gfx); | 34 | gfx_destroy(&gfx); |
| @@ -50,7 +50,7 @@ void gfx_destroy(Gfx** gfx) { | |||
| 50 | scene_mem_destroy(); | 50 | scene_mem_destroy(); |
| 51 | gfx_destroy_asset_cache(&(*gfx)->asset_cache); | 51 | gfx_destroy_asset_cache(&(*gfx)->asset_cache); |
| 52 | gfx_renderer_destroy(&(*gfx)->renderer); | 52 | gfx_renderer_destroy(&(*gfx)->renderer); |
| 53 | gfx_imm_destroy(&(*gfx)->imm_renderer); | 53 | gfx_imm_destroy(&(*gfx)->imm); |
| 54 | gfx_llr_destroy(&(*gfx)->llr); | 54 | gfx_llr_destroy(&(*gfx)->llr); |
| 55 | gfx_del_gfxcore(&(*gfx)->gfxcore); | 55 | gfx_del_gfxcore(&(*gfx)->gfxcore); |
| 56 | free(*gfx); | 56 | free(*gfx); |
| @@ -67,9 +67,9 @@ Renderer* gfx_get_renderer(Gfx* gfx) { | |||
| 67 | return &gfx->renderer; | 67 | return &gfx->renderer; |
| 68 | } | 68 | } |
| 69 | 69 | ||
| 70 | ImmRenderer* gfx_get_imm_renderer(Gfx* gfx) { | 70 | Imm* gfx_get_imm(Gfx* gfx) { |
| 71 | assert(gfx); | 71 | assert(gfx); |
| 72 | return &gfx->imm_renderer; | 72 | return &gfx->imm; |
| 73 | } | 73 | } |
| 74 | 74 | ||
| 75 | LLR* gfx_get_llr(Gfx* gfx) { | 75 | LLR* gfx_get_llr(Gfx* gfx) { |
diff --git a/src/renderer/imm_renderer.c b/src/renderer/imm_renderer.c index 01cc5bb..b3af7e8 100644 --- a/src/renderer/imm_renderer.c +++ b/src/renderer/imm_renderer.c | |||
| @@ -10,7 +10,7 @@ | |||
| 10 | #include <assert.h> | 10 | #include <assert.h> |
| 11 | #include <string.h> // memcpy | 11 | #include <string.h> // memcpy |
| 12 | 12 | ||
| 13 | bool gfx_imm_make(ImmRenderer* renderer, GfxCore* gfxcore, LLR* llr) { | 13 | bool gfx_imm_make(Imm* renderer, GfxCore* gfxcore, LLR* llr) { |
| 14 | assert(renderer); | 14 | assert(renderer); |
| 15 | assert(gfxcore); | 15 | assert(gfxcore); |
| 16 | assert(llr); | 16 | assert(llr); |
| @@ -45,7 +45,7 @@ cleanup: | |||
| 45 | return false; | 45 | return false; |
| 46 | } | 46 | } |
| 47 | 47 | ||
| 48 | void gfx_imm_destroy(ImmRenderer* renderer) { | 48 | void gfx_imm_destroy(Imm* renderer) { |
| 49 | assert(renderer); | 49 | assert(renderer); |
| 50 | assert(renderer->gfxcore); | 50 | assert(renderer->gfxcore); |
| 51 | 51 | ||
| @@ -59,7 +59,7 @@ void gfx_imm_destroy(ImmRenderer* renderer) { | |||
| 59 | } | 59 | } |
| 60 | } | 60 | } |
| 61 | 61 | ||
| 62 | void gfx_imm_flush(ImmRenderer* renderer) { | 62 | void gfx_imm_flush(Imm* renderer) { |
| 63 | assert(renderer); | 63 | assert(renderer); |
| 64 | 64 | ||
| 65 | if (renderer->num_triangle_verts > 0) { | 65 | if (renderer->num_triangle_verts > 0) { |
| @@ -78,7 +78,7 @@ void gfx_imm_flush(ImmRenderer* renderer) { | |||
| 78 | } | 78 | } |
| 79 | } | 79 | } |
| 80 | 80 | ||
| 81 | void gfx_imm_start(ImmRenderer* renderer) { | 81 | void gfx_imm_start(Imm* renderer) { |
| 82 | assert(renderer); | 82 | assert(renderer); |
| 83 | 83 | ||
| 84 | // Shader uniforms are applied lazily. | 84 | // Shader uniforms are applied lazily. |
| @@ -88,7 +88,7 @@ void gfx_imm_start(ImmRenderer* renderer) { | |||
| 88 | gfx_llr_set_shader(renderer->llr, renderer->shader); | 88 | gfx_llr_set_shader(renderer->llr, renderer->shader); |
| 89 | } | 89 | } |
| 90 | 90 | ||
| 91 | void gfx_imm_end(ImmRenderer* renderer) { | 91 | void gfx_imm_end(Imm* renderer) { |
| 92 | assert(renderer); | 92 | assert(renderer); |
| 93 | 93 | ||
| 94 | gfx_imm_flush(renderer); | 94 | gfx_imm_flush(renderer); |
| @@ -97,7 +97,7 @@ void gfx_imm_end(ImmRenderer* renderer) { | |||
| 97 | } | 97 | } |
| 98 | 98 | ||
| 99 | void gfx_imm_draw_triangles( | 99 | void gfx_imm_draw_triangles( |
| 100 | ImmRenderer* renderer, const vec3 verts[], size_t num_triangles) { | 100 | Imm* renderer, const vec3 verts[], size_t num_triangles) { |
| 101 | assert(renderer); | 101 | assert(renderer); |
| 102 | assert(verts); | 102 | assert(verts); |
| 103 | const size_t new_verts = num_triangles * 3; | 103 | const size_t new_verts = num_triangles * 3; |
| @@ -112,11 +112,11 @@ void gfx_imm_draw_triangles( | |||
| 112 | renderer->num_triangle_verts += new_verts; | 112 | renderer->num_triangle_verts += new_verts; |
| 113 | } | 113 | } |
| 114 | 114 | ||
| 115 | void gfx_imm_draw_triangle(ImmRenderer* renderer, const vec3 verts[3]) { | 115 | void gfx_imm_draw_triangle(Imm* renderer, const vec3 verts[3]) { |
| 116 | gfx_imm_draw_triangles(renderer, verts, 1); | 116 | gfx_imm_draw_triangles(renderer, verts, 1); |
| 117 | } | 117 | } |
| 118 | 118 | ||
| 119 | void gfx_imm_draw_aabb2(ImmRenderer* renderer, aabb2 box) { | 119 | void gfx_imm_draw_aabb2(Imm* renderer, aabb2 box) { |
| 120 | assert(renderer); | 120 | assert(renderer); |
| 121 | 121 | ||
| 122 | // clang-format off | 122 | // clang-format off |
| @@ -134,7 +134,7 @@ void gfx_imm_draw_aabb2(ImmRenderer* renderer, aabb2 box) { | |||
| 134 | gfx_imm_draw_triangles(renderer, tris, 2); | 134 | gfx_imm_draw_triangles(renderer, tris, 2); |
| 135 | } | 135 | } |
| 136 | 136 | ||
| 137 | void gfx_imm_draw_aabb3(ImmRenderer* renderer, aabb3 box) { | 137 | void gfx_imm_draw_aabb3(Imm* renderer, aabb3 box) { |
| 138 | assert(renderer); | 138 | assert(renderer); |
| 139 | 139 | ||
| 140 | // clang-format off | 140 | // clang-format off |
| @@ -152,7 +152,7 @@ void gfx_imm_draw_aabb3(ImmRenderer* renderer, aabb3 box) { | |||
| 152 | gfx_imm_draw_box3(renderer, vertices); | 152 | gfx_imm_draw_box3(renderer, vertices); |
| 153 | } | 153 | } |
| 154 | 154 | ||
| 155 | void gfx_imm_draw_box3(ImmRenderer* renderer, const vec3 vertices[8]) { | 155 | void gfx_imm_draw_box3(Imm* renderer, const vec3 vertices[8]) { |
| 156 | assert(renderer); | 156 | assert(renderer); |
| 157 | assert(vertices); | 157 | assert(vertices); |
| 158 | 158 | ||
| @@ -182,7 +182,7 @@ void gfx_imm_draw_box3(ImmRenderer* renderer, const vec3 vertices[8]) { | |||
| 182 | gfx_imm_draw_triangles(renderer, tris, 12); | 182 | gfx_imm_draw_triangles(renderer, tris, 12); |
| 183 | } | 183 | } |
| 184 | 184 | ||
| 185 | void gfx_imm_set_colour(ImmRenderer* renderer, vec4 colour) { | 185 | void gfx_imm_set_colour(Imm* renderer, vec4 colour) { |
| 186 | assert(renderer); | 186 | assert(renderer); |
| 187 | assert(renderer->shader); | 187 | assert(renderer->shader); |
| 188 | 188 | ||
diff --git a/src/renderer/imm_renderer_impl.h b/src/renderer/imm_renderer_impl.h index 61b49a7..d87b910 100644 --- a/src/renderer/imm_renderer_impl.h +++ b/src/renderer/imm_renderer_impl.h | |||
| @@ -22,7 +22,7 @@ typedef struct Texture Texture; | |||
| 22 | /// things simple while the extra complexity is not needed. | 22 | /// things simple while the extra complexity is not needed. |
| 23 | /// TODO: Flush the buffer when it reaches its maximum size to remove this | 23 | /// TODO: Flush the buffer when it reaches its maximum size to remove this |
| 24 | /// constraint. | 24 | /// constraint. |
| 25 | typedef struct ImmRenderer { | 25 | typedef struct Imm { |
| 26 | GfxCore* gfxcore; | 26 | GfxCore* gfxcore; |
| 27 | LLR* llr; | 27 | LLR* llr; |
| 28 | 28 | ||
| @@ -34,10 +34,10 @@ typedef struct ImmRenderer { | |||
| 34 | bool wireframe : 1; | 34 | bool wireframe : 1; |
| 35 | } flags; | 35 | } flags; |
| 36 | vec3 triangle_verts[GFX_IMM_MAX_NUM_TRIANGLES * 3]; | 36 | vec3 triangle_verts[GFX_IMM_MAX_NUM_TRIANGLES * 3]; |
| 37 | } ImmRenderer; | 37 | } Imm; |
| 38 | 38 | ||
| 39 | /// Create a new immediate mode renderer. | 39 | /// Create a new immediate mode renderer. |
| 40 | bool gfx_imm_make(ImmRenderer*, GfxCore*, LLR*); | 40 | bool gfx_imm_make(Imm*, GfxCore*, LLR*); |
| 41 | 41 | ||
| 42 | /// Destroy the immediate mode renderer. | 42 | /// Destroy the immediate mode renderer. |
| 43 | void gfx_imm_destroy(ImmRenderer*); | 43 | void gfx_imm_destroy(Imm*); |
