From 77c5c23cf590962bd6e5625c94bd102b06b476c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hugo=20M=C3=A5rdbrink?= Date: Mon, 25 Aug 2025 23:35:43 +0200 Subject: [PATCH] Add black background --- ecs/components.odin | 4 ++-- ecs/render_system.odin | 22 ++++++++++++++++------ main.odin | 4 ++-- 3 files changed, 20 insertions(+), 10 deletions(-) diff --git a/ecs/components.odin b/ecs/components.odin index 96e69d8..1d45b63 100644 --- a/ecs/components.odin +++ b/ecs/components.odin @@ -29,7 +29,7 @@ ColorComponent :: struct { } MeshID :: enum { - CubeMesh, + Cube, } MeshComponent :: struct { @@ -37,7 +37,7 @@ MeshComponent :: struct { } MaterialID :: enum { - GridTexture, + Grid, } MaterialComponent :: struct { diff --git a/ecs/render_system.odin b/ecs/render_system.odin index a1f019b..5c53c8c 100644 --- a/ecs/render_system.odin +++ b/ecs/render_system.odin @@ -93,7 +93,7 @@ init_grid_material :: proc(render_system: ^RenderSystem) { sampler := sg.make_sampler({}) - render_system.materials[.GridTexture] = Material{ + render_system.materials[.Grid] = Material{ shader = shader, pipeline = pipeline, image = image, @@ -158,7 +158,7 @@ init_cube_mesh :: proc (render_system: ^RenderSystem) { data = sg_range(cube_indices), }) - render_system.meshes[.CubeMesh] = Mesh{ + render_system.meshes[.Cube] = Mesh{ vertex_buffer = vertex_buffer, index_buffer = index_buffer, } @@ -182,11 +182,11 @@ render_system_init :: proc(render_system: ^RenderSystem, camera_entity: EntityID } render_system_delete :: proc(render_system: ^RenderSystem, coordinator: ^Coordinator) { - cube_mesh := render_system.meshes[.CubeMesh] + cube_mesh := render_system.meshes[.Cube] sg.destroy_buffer(cube_mesh.index_buffer) sg.destroy_buffer(cube_mesh.vertex_buffer) - grid_material := render_system.materials[.GridTexture] + grid_material := render_system.materials[.Grid] sg.destroy_image(grid_material.image) sg.destroy_sampler(grid_material.sampler) sg.destroy_pipeline(grid_material.pipeline) @@ -203,8 +203,18 @@ render_system_update :: proc(render_system: ^RenderSystem, coordinator: ^Coordin proj := linalg.matrix4_perspective_f32(70, sa.widthf() / sa.heightf(), 0.001, 1000) view := linalg.matrix4_look_at_f32(camera.position, camera.target, { 0, 1, 0 } ) - - sg.begin_pass({ swapchain = sh.glue_swapchain() }) + + BACKGROUND_COLOR :: sg.Color{ 0, 0, 0, 1 } + CLEAR_SCREEN_ACTION :: sg.Pass_Action{ + colors = { + 0 = { + load_action = .CLEAR, + clear_value = BACKGROUND_COLOR, + } + } + } + + sg.begin_pass({ swapchain = sh.glue_swapchain(), action = CLEAR_SCREEN_ACTION }) for entity in render_system.entities { transform := coordinator_get_component(TransformComponent, coordinator, entity) diff --git a/main.odin b/main.odin index 6133210..1a7134c 100644 --- a/main.odin +++ b/main.odin @@ -211,14 +211,14 @@ create_scene :: proc() { &g.coordinator, entity, ecs.MeshComponent{ - mesh_id = .CubeMesh + mesh_id = .Cube }) ecs.coordinator_add_component( ecs.MaterialComponent, &g.coordinator, entity, ecs.MaterialComponent{ - material_id = .GridTexture + material_id = .Grid }) } }