add sdlgpu renderer

This commit is contained in:
Sven Balzer
2026-07-03 14:19:41 +02:00
parent aaa5b2078b
commit e7ad1d36ba
16 changed files with 1161 additions and 125 deletions
+25 -25
View File
@@ -579,7 +579,7 @@ static bool load_map(const char *name, Map *result) {
char buffer_name[256] = "Map ";
SDL_strlcat(buffer_name, result->name, SDL_arraysize(buffer_name));
result->texture = renderer_texture_create(R_TEXTURE_FORMAT_R16_UINT, R_TEXTURE_USAGE_SAMPLED, 1, result->size.x, result->size.y, result->tiles, "map_texture");
result->texture = renderer_texture_create(R_TEXTURE_FORMAT_R16_UINT, R_TEXTURE_USAGE_STORAGE, 1, result->size.x, result->size.y, result->tiles, "map_texture");
SDL_Log("Loaded map file.");
return true;
@@ -1376,19 +1376,19 @@ static void render_editor() {
ZoneScopedN("Draw Map");
renderer_frame_set_shader(R_SHADER_WORLD);
renderer_frame_draw(NULL, NULL, NULL, 6, current_map.size.y * current_map.size.x, &(R_Draw_Resources){
.vertex_textures = (R_Texture[]){ current_map.texture },
.vertex_uniform_buffers = (R_Buffer[]){ view_projection_matrix_buffer, per_frame_buffer },
.vertex_storage_textures = (R_Texture[]){ current_map.texture },
.vertex_uniform_buffers = (R_Buffer[]){ view_projection_matrix_buffer, per_frame_buffer },
.num_vertex_textures = 1,
.num_vertex_uniform_buffers = 2,
.num_vertex_storage_textures = 1,
.num_vertex_uniform_buffers = 2,
.fragment_textures = (R_Texture[]){ tile_textures_atlas },
.fragment_storage_buffers = (R_Buffer[]){ tile_uvs_buffer },
.fragment_uniform_buffers = (R_Buffer[]){ tint_color_buffer },
.fragment_sampled_textures = (R_Texture[]){ tile_textures_atlas },
.fragment_storage_buffers = (R_Buffer[]){ tile_uvs_buffer },
.fragment_uniform_buffers = (R_Buffer[]){ tint_color_buffer },
.num_fragment_textures = 1,
.num_fragment_storage_buffers = 1,
.num_fragment_uniform_buffers = 1,
.num_fragment_sampled_textures = 1,
.num_fragment_storage_buffers = 1,
.num_fragment_uniform_buffers = 1,
});
}
@@ -1532,19 +1532,19 @@ static void render_game() {
ZoneScopedN("Draw Map");
renderer_frame_set_shader(R_SHADER_WORLD);
renderer_frame_draw(NULL, NULL, NULL, 6, current_map.size.y * current_map.size.x, &(R_Draw_Resources){
.vertex_textures = (R_Texture[]){ current_map.texture },
.vertex_uniform_buffers = (R_Buffer[]){ view_projection_matrix_buffer, per_frame_buffer },
.vertex_storage_textures = (R_Texture[]){ current_map.texture },
.vertex_uniform_buffers = (R_Buffer[]){ view_projection_matrix_buffer, per_frame_buffer },
.num_vertex_textures = 1,
.num_vertex_uniform_buffers = 2,
.num_vertex_storage_textures = 1,
.num_vertex_uniform_buffers = 2,
.fragment_textures = (R_Texture[]){ tile_textures_atlas },
.fragment_storage_buffers = (R_Buffer[]){ tile_uvs_buffer },
.fragment_uniform_buffers = (R_Buffer[]){ tint_color_buffer },
.fragment_sampled_textures = (R_Texture[]){ tile_textures_atlas },
.fragment_storage_buffers = (R_Buffer[]){ tile_uvs_buffer },
.fragment_uniform_buffers = (R_Buffer[]){ tint_color_buffer },
.num_fragment_textures = 1,
.num_fragment_storage_buffers = 1,
.num_fragment_uniform_buffers = 1,
.num_fragment_sampled_textures = 1,
.num_fragment_storage_buffers = 1,
.num_fragment_uniform_buffers = 1,
});
}
@@ -1556,11 +1556,11 @@ static void render_game() {
.num_vertex_uniform_buffers = 1,
.fragment_textures = (R_Texture[]){ player_texture },
.fragment_uniform_buffers = (R_Buffer[]){ tint_color_buffer },
.fragment_sampled_textures = (R_Texture[]){ player_texture },
.fragment_uniform_buffers = (R_Buffer[]){ tint_color_buffer },
.num_fragment_textures = 1,
.num_fragment_uniform_buffers = 1,
.num_fragment_sampled_textures = 1,
.num_fragment_uniform_buffers = 1,
});
}
}