diff options
author | omniscient <17525998+omnisci3nce@users.noreply.github.com> | 2024-07-31 10:48:51 +1000 |
---|---|---|
committer | omniscient <17525998+omnisci3nce@users.noreply.github.com> | 2024-07-31 10:48:51 +1000 |
commit | e3de98c8ee8a5ace29b8c3673358e9abfbdbdd1f (patch) | |
tree | 72c50cb8c51e4fc9f01b450375543607b2c84c34 /src | |
parent | 0f703b8a5129acfa13c92ce79699d86833dcc561 (diff) |
feat: grid: use hardcoded indices
Diffstat (limited to 'src')
-rw-r--r-- | src/systems/grid.c | 26 |
1 files changed, 24 insertions, 2 deletions
diff --git a/src/systems/grid.c b/src/systems/grid.c index 256fab4..e095d22 100644 --- a/src/systems/grid.c +++ b/src/systems/grid.c @@ -1,6 +1,7 @@ #include "grid.h" #include "file.h" #include "log.h" +#include "maths.h" #include "maths_types.h" #include "primitives.h" #include "ral_common.h" @@ -8,6 +9,7 @@ #include "ral_types.h" #include "render.h" #include "render_types.h" +#include "render_scene.h" #include "shader_layouts.h" void Grid_Init(Grid_Storage* storage) { @@ -15,7 +17,9 @@ void Grid_Init(Grid_Storage* storage) { Geometry plane_geo = Geo_CreatePlane(f32x2(1.0, 1.0)); Mesh plane_mesh = Mesh_Create(&plane_geo, true); storage->plane_vertices = plane_mesh.vertex_buffer; - storage->plane_indices = plane_mesh.index_buffer; + + u32 indices[6] = { 5,4,3,2,1,0}; + storage->plane_indices = GPU_BufferCreate(6 * sizeof(u32),BUFFER_INDEX, BUFFER_FLAG_GPU, &indices); GPU_RenderpassDesc rpass_desc = { .default_framebuffer = true, @@ -60,5 +64,23 @@ void Grid_Draw() { } void Grid_Execute(Grid_Storage *storage) { - // TODO: draw calls + WARN("Draw Grid"); + RenderScene* scene = Render_GetScene(); + GPU_CmdEncoder* enc = GPU_GetDefaultEncoder(); + GPU_CmdEncoder_BeginRender(enc, storage->renderpass); + GPU_EncodeBindPipeline(enc, storage->pipeline); + Mat4 view, proj; + u32x2 dimensions = GPU_Swapchain_GetDimensions(); + Camera camera = scene->camera; + Camera_ViewProj(&camera, (f32)dimensions.x, (f32)dimensions.y, &view, &proj); + Binding_Camera camera_data = { .view = view, + .projection = proj, + .viewPos = vec4(camera.position.x, camera.position.y, + camera.position.z, 1.0) }; + GPU_EncodeBindShaderData( + enc, 0, (ShaderData){ .data = &camera_data, .get_layout = &Binding_Camera_GetLayout }); + GPU_EncodeSetVertexBuffer(enc, storage->plane_vertices); + GPU_EncodeSetIndexBuffer(enc, storage->plane_indices); + GPU_EncodeDrawIndexed(enc, 6); + GPU_CmdEncoder_EndRender(enc); }
\ No newline at end of file |