diff options
Diffstat (limited to 'src/renderer')
-rw-r--r-- | src/renderer/cleanroom/immediate.c | 18 | ||||
-rw-r--r-- | src/renderer/cleanroom/immediate.h (renamed from src/renderer/cleanroom/simda.h) | 12 | ||||
-rw-r--r-- | src/renderer/cleanroom/types.h | 3 |
3 files changed, 28 insertions, 5 deletions
diff --git a/src/renderer/cleanroom/immediate.c b/src/renderer/cleanroom/immediate.c new file mode 100644 index 0000000..8e4bf7e --- /dev/null +++ b/src/renderer/cleanroom/immediate.c @@ -0,0 +1,18 @@ +#include "immediate.h" +#include "maths.h" +#include "primitives.h" +#include "render.h" +#include "types.h" + +void imm_draw_sphere(vec3 pos, f32 radius, vec4 colour) { + // Create the vertices + geometry_data geometry = geo_create_uvsphere(radius, 16, 16); + geo_set_vertex_colours(&geometry, colour); + + // Upload to GPU + mat4 model = mat4_translation(pos); + + // Set pipeline + + // Draw +}
\ No newline at end of file diff --git a/src/renderer/cleanroom/simda.h b/src/renderer/cleanroom/immediate.h index d0b4794..6d93c53 100644 --- a/src/renderer/cleanroom/simda.h +++ b/src/renderer/cleanroom/immediate.h @@ -1,18 +1,20 @@ #pragma once +#include "geometry.h" #include "maths_types.h" // 3. SIMA (simplified immediate mode api) / render.h // - dont need to worry about uploading mesh data // - very useful for debugging -void imm_draw_cuboid(); +void imm_draw_cuboid(vec3 pos, quat rotation, f32x3 extents, vec4 colour); void imm_draw_sphere(vec3 pos, f32 radius, vec4 colour); void imm_draw_camera_frustum(); -static void imm_draw_model( - const char* model_filepath); // tracks internally whether the model is loaded -static void imm_draw_model(const char* model_filepath) { +// static void imm_draw_model( +// const char* model_filepath); // tracks internally whether the model is loaded + +// static void imm_draw_model(const char* model_filepath) { // check that model is loaded // if not loaded, load model and upload to gpu - LRU cache for models // else submit draw call -}
\ No newline at end of file +// }
\ No newline at end of file diff --git a/src/renderer/cleanroom/types.h b/src/renderer/cleanroom/types.h index b18b5b8..7a6cfbd 100644 --- a/src/renderer/cleanroom/types.h +++ b/src/renderer/cleanroom/types.h @@ -96,8 +96,11 @@ typedef struct geometry_data { vertex_darray vertices; bool has_indices; u32_darray indices; + vec3 colour; /** Optional: set vertex colours */ } geometry_data; +void geo_set_vertex_colours(geometry_data* geo, vec4 colour); + typedef struct mesh { buffer_handle vertex_buffer; buffer_handle index_buffer; |