change grid shader primitive to line from triangle
This commit is contained in:
+6
-67
@@ -45,8 +45,6 @@ static R_Buffer tint_color_buffer;
|
||||
|
||||
static R_Buffer vertex_buffer;
|
||||
static R_Buffer index_buffer;
|
||||
static R_Buffer grid_vertex_buffer;
|
||||
static R_Buffer grid_index_buffer;
|
||||
static R_Buffer player_instance_buffer;
|
||||
static R_Buffer tile_uvs_buffer;
|
||||
|
||||
@@ -185,51 +183,6 @@ static Uint16 indices[] = {
|
||||
0, 2, 3,
|
||||
};
|
||||
|
||||
#define grid_line_size (1.0f / 64.0f)
|
||||
static Vertex grid_vertices[] = {
|
||||
// LEFT
|
||||
{{ -0.5f, 0.5f, 0.0f }},
|
||||
{{ -0.5f, -0.5f + grid_line_size, 0.0f }},
|
||||
{{ -0.5f + grid_line_size, -0.5f + grid_line_size, 0.0f }},
|
||||
{{ -0.5f + grid_line_size, 0.5f, 0.0f }},
|
||||
|
||||
// TOP
|
||||
{{ -0.5f + grid_line_size, 0.5f, 0.0f }},
|
||||
{{ -0.5f + grid_line_size, 0.5f - grid_line_size, 0.0f }},
|
||||
{{ 0.5f, 0.5f - grid_line_size, 0.0f }},
|
||||
{{ 0.5f, 0.5f, 0.0f }},
|
||||
|
||||
// RIGHT
|
||||
{{ 0.5f - grid_line_size, 0.5f - grid_line_size, 0.0f }},
|
||||
{{ 0.5f - grid_line_size, -0.5f, 0.0f }},
|
||||
{{ 0.5f, -0.5f, 0.0f }},
|
||||
{{ 0.5f, 0.5f - grid_line_size, 0.0f }},
|
||||
|
||||
// BOTTOM
|
||||
{{ -0.5f, -0.5f + grid_line_size, 0.0f }},
|
||||
{{ -0.5f, -0.5f, 0.0f }},
|
||||
{{ 0.5f - grid_line_size, -0.5f, 0.0f }},
|
||||
{{ 0.5f - grid_line_size, -0.5f + grid_line_size, 0.0f }},
|
||||
};
|
||||
|
||||
static Uint16 grid_indices[] = {
|
||||
// LEFT
|
||||
0, 1, 2,
|
||||
0, 2, 3,
|
||||
|
||||
// TOP
|
||||
4, 5, 6,
|
||||
4, 6, 7,
|
||||
|
||||
// RIGHT
|
||||
8, 9, 10,
|
||||
8, 10, 11,
|
||||
|
||||
// BOTTOM
|
||||
12, 13, 14,
|
||||
12, 14, 15,
|
||||
};
|
||||
|
||||
struct Instance {
|
||||
vec2 pos;
|
||||
};
|
||||
@@ -255,12 +208,13 @@ struct Player {
|
||||
|
||||
static Player player;
|
||||
|
||||
struct PerFrame {
|
||||
struct alignas(16) PerFrame {
|
||||
i32vec2 drag_start;
|
||||
i32vec2 mouse;
|
||||
vec2 grid_offset;
|
||||
Sint32 grid_width;
|
||||
Sint32 map_width;
|
||||
Uint32 grid_width;
|
||||
Uint32 map_width;
|
||||
Uint32 grid_height;
|
||||
};
|
||||
|
||||
static PerFrame per_frame = {};
|
||||
@@ -928,18 +882,6 @@ static bool init_resources() {
|
||||
return false;
|
||||
}
|
||||
|
||||
grid_vertex_buffer = renderer_buffer_create(R_BUFFER_USAGE_VERTEX, sizeof(grid_vertices), grid_vertices, "grid_vertex_buffer");
|
||||
if (!grid_vertex_buffer) {
|
||||
log_error("Failed to create buffer.");
|
||||
return false;
|
||||
}
|
||||
|
||||
grid_index_buffer = renderer_buffer_create(R_BUFFER_USAGE_INDEX, sizeof(grid_indices), grid_indices, "grid_index_buffer");
|
||||
if (!grid_index_buffer) {
|
||||
log_error("Failed to create buffer.");
|
||||
return false;
|
||||
}
|
||||
|
||||
player_instance_buffer = renderer_buffer_create(R_BUFFER_USAGE_VERTEX, sizeof(player_instance), &player_instance, "player_instance_buffer");
|
||||
if (!player_instance_buffer) {
|
||||
log_error("Failed to create buffer.");
|
||||
@@ -1329,6 +1271,7 @@ static void render_editor() {
|
||||
|
||||
per_frame.map_width = current_map.size.x;
|
||||
per_frame.grid_width = selected_tile != -1 ? current_map.size.x : current_map.size.x + 1;
|
||||
per_frame.grid_height = selected_tile != -1 ? current_map.size.y : current_map.size.y + 1;
|
||||
per_frame.grid_offset = selected_tile != -1 ? vec2(-0.5f, -0.5f) : vec2(-1.0f, -1.0f);
|
||||
per_frame.mouse = tile_pos;
|
||||
|
||||
@@ -1394,12 +1337,8 @@ static void render_editor() {
|
||||
if (show_grid) {
|
||||
ZoneScopedN("Draw Grid");
|
||||
|
||||
Uint32 num_grid_cells = current_map.size.y * current_map.size.x;
|
||||
if (selected_tile == -1)
|
||||
num_grid_cells = (current_map.size.y + 1) * (current_map.size.x + 1);
|
||||
|
||||
renderer_frame_set_shader(R_SHADER_GRID);
|
||||
renderer_frame_draw(grid_vertex_buffer, grid_index_buffer, NULL, SDL_arraysize(grid_indices), num_grid_cells, &(R_Draw_Resources){
|
||||
renderer_frame_draw(NULL, NULL, NULL, per_frame.grid_width * 2 + per_frame.grid_height * 2 + 4, 1, &(R_Draw_Resources){
|
||||
.vertex_uniform_buffers = (R_Buffer[]){ view_projection_matrix_buffer, per_frame_buffer },
|
||||
.num_vertex_uniform_buffers = 2,
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user