Add black background

This commit is contained in:
Hugo Mårdbrink 2025-08-25 23:35:43 +02:00
parent 705f498daa
commit 77c5c23cf5
3 changed files with 20 additions and 10 deletions

View file

@ -29,7 +29,7 @@ ColorComponent :: struct {
} }
MeshID :: enum { MeshID :: enum {
CubeMesh, Cube,
} }
MeshComponent :: struct { MeshComponent :: struct {
@ -37,7 +37,7 @@ MeshComponent :: struct {
} }
MaterialID :: enum { MaterialID :: enum {
GridTexture, Grid,
} }
MaterialComponent :: struct { MaterialComponent :: struct {

View file

@ -93,7 +93,7 @@ init_grid_material :: proc(render_system: ^RenderSystem) {
sampler := sg.make_sampler({}) sampler := sg.make_sampler({})
render_system.materials[.GridTexture] = Material{ render_system.materials[.Grid] = Material{
shader = shader, shader = shader,
pipeline = pipeline, pipeline = pipeline,
image = image, image = image,
@ -158,7 +158,7 @@ init_cube_mesh :: proc (render_system: ^RenderSystem) {
data = sg_range(cube_indices), data = sg_range(cube_indices),
}) })
render_system.meshes[.CubeMesh] = Mesh{ render_system.meshes[.Cube] = Mesh{
vertex_buffer = vertex_buffer, vertex_buffer = vertex_buffer,
index_buffer = index_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) { 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.index_buffer)
sg.destroy_buffer(cube_mesh.vertex_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_image(grid_material.image)
sg.destroy_sampler(grid_material.sampler) sg.destroy_sampler(grid_material.sampler)
sg.destroy_pipeline(grid_material.pipeline) sg.destroy_pipeline(grid_material.pipeline)
@ -204,7 +204,17 @@ render_system_update :: proc(render_system: ^RenderSystem, coordinator: ^Coordin
proj := linalg.matrix4_perspective_f32(70, sa.widthf() / sa.heightf(), 0.001, 1000) 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 } ) 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 { for entity in render_system.entities {
transform := coordinator_get_component(TransformComponent, coordinator, entity) transform := coordinator_get_component(TransformComponent, coordinator, entity)

View file

@ -211,14 +211,14 @@ create_scene :: proc() {
&g.coordinator, &g.coordinator,
entity, entity,
ecs.MeshComponent{ ecs.MeshComponent{
mesh_id = .CubeMesh mesh_id = .Cube
}) })
ecs.coordinator_add_component( ecs.coordinator_add_component(
ecs.MaterialComponent, ecs.MaterialComponent,
&g.coordinator, &g.coordinator,
entity, entity,
ecs.MaterialComponent{ ecs.MaterialComponent{
material_id = .GridTexture material_id = .Grid
}) })
} }
} }