diff options
author | omniscient <17525998+omnisci3nce@users.noreply.github.com> | 2024-07-09 23:32:33 +1000 |
---|---|---|
committer | omniscient <17525998+omnisci3nce@users.noreply.github.com> | 2024-07-09 23:32:33 +1000 |
commit | 3103f383751a12f8a0bdb22309704f1f826d204c (patch) | |
tree | 7da8febddfcc40b15de5d7fc3c9a5215d88c5cab /src/render/immediate.c | |
parent | d5f22a65ab12b289d80b035e45e6f1e9460b82d1 (diff) |
wip: some cleanup of ral
Diffstat (limited to 'src/render/immediate.c')
-rw-r--r-- | src/render/immediate.c | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/src/render/immediate.c b/src/render/immediate.c new file mode 100644 index 0000000..63a62b8 --- /dev/null +++ b/src/render/immediate.c @@ -0,0 +1,46 @@ +#include "immediate.h" +#include "glad/glad.h" +#include "maths.h" +#include "primitives.h" +#include "ral_types.h" +#include "render.h" +#include "render_types.h" + +typedef struct immdraw_system { + // primitive meshes (get reused for each draw call) + mesh plane; + mesh cube; + mesh sphere; + // command lists + +} immdraw_system; + +bool immdraw_system_init(immdraw_system* state) { + geometry_data plane_geometry = geo_create_plane(f32x2(1, 1)); + state->plane = mesh_create(&plane_geometry, true); + + geometry_data cube_geometry = geo_create_cuboid(f32x3(1, 1, 1)); + state->cube = mesh_create(&cube_geometry, true); + + geometry_data sphere_geometry = geo_create_uvsphere(1.0, 48, 48); + state->sphere = mesh_create(&sphere_geometry, true); + + return true; +} + +void immdraw_plane(vec3 pos, quat rotation, f32 u_scale, f32 v_scale, vec4 colour) {} + +void immdraw_system_render(immdraw_system* state) {} + +// 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 |