Tiny refactor

This commit is contained in:
2024-10-18 16:12:24 +02:00
parent 8ee000ab74
commit 1d5b4499a4
38 changed files with 645 additions and 637 deletions

View File

@@ -42,24 +42,24 @@ init_console :: () {
console = New(Console);
console.verts.allocator = temp;
buffer_size := size_of(Colored_Vert) * 12;
console.vb = create_vertex_buffer(renderer, null, xx buffer_size, stride=size_of(Colored_Vert), mappable=true);
console.cursor_vb = create_vertex_buffer(renderer, null, xx buffer_size, stride=size_of(Colored_Vert), mappable=true);
console.vb = create_vertex_buffer(engine.renderer, null, xx buffer_size, stride=size_of(Colored_Vert), mappable=true);
console.cursor_vb = create_vertex_buffer(engine.renderer, null, xx buffer_size, stride=size_of(Colored_Vert), mappable=true);
{
vs := create_vertex_shader(renderer, "../assets/shaders/ui_rect.hlsl", "VS");
ps := create_pixel_shader(renderer, "../assets/shaders/ui_rect.hlsl", "PS");
vs := create_vertex_shader(engine.renderer, "../assets/shaders/ui_rect.hlsl", "VS");
ps := create_pixel_shader(engine.renderer, "../assets/shaders/ui_rect.hlsl", "PS");
layout : [2] Vertex_Data_Info;
layout[0] = .{0, .POSITION2D, 0};
layout[1] = .{0, .COLOR_WITH_ALPHA, 0};
params : [0] Shader_Parameter;
console.rect_pipeline = create_pipeline_state(renderer, vs, ps, layout, params, blend_type=.TRANSPARENT);
console.rect_pipeline = create_pipeline_state(engine.renderer, vs, ps, layout, params, blend_type=.TRANSPARENT);
}
{
vs := create_vertex_shader(renderer, "../assets/shaders/font.hlsl", "VS");
ps := create_pixel_shader(renderer, "../assets/shaders/font.hlsl", "PS");
vs := create_vertex_shader(engine.renderer, "../assets/shaders/font.hlsl", "VS");
ps := create_pixel_shader(engine.renderer, "../assets/shaders/font.hlsl", "PS");
layout : [3] Vertex_Data_Info;
layout[0] = .{0,.POSITION2D, 0};
@@ -67,10 +67,10 @@ init_console :: () {
layout[2] = .{0,.COLOR_WITH_ALPHA, 0};
params : [0] Shader_Parameter;
console.text_pipeline = create_pipeline_state(renderer, vs, ps, layout, params, blend_type=.TRANSPARENT);
console.text_pipeline = create_pipeline_state(engine.renderer, vs, ps, layout, params, blend_type=.TRANSPARENT);
}
console.font = create_font(renderer, "../assets/fonts/Inconsolata-Regular.ttf", 18);
console.font = create_font(engine.renderer, "../assets/fonts/Inconsolata-Regular.ttf", 18);
console.current_string = alloc_string(256);
console.current_string.count = 0;
@@ -96,7 +96,7 @@ find_command :: (console: *Console, cmd_str: string) -> Command_Proc, bool {
update_console :: () {
if key_down(.TILDE) {
console.active = !console.active;
input.has_char = false; // Make sure that the tilde is not used as the first input character in the console
engine.input.has_char = false; // Make sure that the tilde is not used as the first input character in the console
}
if console.active {
@@ -140,15 +140,15 @@ update_console :: () {
}
}
if input.has_char {
if engine.input.has_char {
if console.current_string.count < 256 {
console.current_string.data[console.current_string.count] = xx input.current_char;
console.current_string.data[console.current_string.count] = xx engine.input.current_char;
console.current_string.count += 1;
input.has_char = false;
engine.input.has_char = false;
}
}
eat_all_input(*input);
eat_all_input(*engine.input);
}
}
@@ -161,11 +161,11 @@ make_vert :: (x: float, y: float, color: Color) -> Colored_Vert {
}
add_rect :: (renderer: *Renderer, x: float, y: float, width: float, height: float, color: Color, verts: *[..] Colored_Vert) {
inv_w := 1.0 / cast(float)renderer.render_target_width;
inv_h := 1.0 / cast(float)renderer.render_target_height;
inv_w := 1.0 / cast(float)engine.renderer.render_target_width;
inv_h := 1.0 / cast(float)engine.renderer.render_target_height;
x = x * inv_w * 2.0 - 1.0;
y = (cast(float)renderer.render_target_height - y) * inv_h * 2.0 - 1.0;
y = (cast(float)engine.renderer.render_target_height - y) * inv_h * 2.0 - 1.0;
w : float = width * inv_w * 2.0;
h : float = height * inv_h * 2.0;
@@ -199,34 +199,34 @@ render_console :: () {
console_color : Color = .{48.0/255.0, 64.0/255.0, 36.0/255.0, 0.7};
console_line_color : Color = .{18.0/255.0, 34.0/255.0, 6.0/255.0, 0.7};
add_rect(renderer, 0.0, cast(float)renderer.render_target_height - 200 + offset_y, cast(float)renderer.render_target_width, 200.0, console_color, *console.verts);
add_rect(renderer, 0.0, cast(float)renderer.render_target_height - 30 + offset_y, cast(float)renderer.render_target_width, 30.0, console_line_color , *console.verts);
add_rect(engine.renderer, 0.0, cast(float)engine.renderer.render_target_height - 200 + offset_y, cast(float)engine.renderer.render_target_width, 200.0, console_color, *console.verts);
add_rect(engine.renderer, 0.0, cast(float)engine.renderer.render_target_height - 30 + offset_y, cast(float)engine.renderer.render_target_width, 30.0, console_line_color , *console.verts);
upload_data_to_buffer(renderer, console.vb, console.verts.data, cast(s32)console.verts.count * size_of(Colored_Vert));
upload_data_to_buffer(engine.renderer, console.vb, console.verts.data, cast(s32)console.verts.count * size_of(Colored_Vert));
push_cmd_set_draw_mode(renderer, .FILL);
push_cmd_set_depth_write(renderer, false);
push_cmd_set_pipeline_state(renderer, console.rect_pipeline);
push_cmd_set_draw_mode(engine.renderer, .FILL);
push_cmd_set_depth_write(engine.renderer, false);
push_cmd_set_pipeline_state(engine.renderer, console.rect_pipeline);
push_cmd_set_vertex_buffer(renderer, console.vb);
push_cmd_draw(renderer, console.verts.count);
push_cmd_set_vertex_buffer(engine.renderer, console.vb);
push_cmd_draw(engine.renderer, console.verts.count);
push_cmd_set_pipeline_state(renderer, console.text_pipeline);
font := *renderer.fonts[console.font - 1];
push_cmd_set_texture(renderer, 0, font.texture);
push_cmd_set_pipeline_state(engine.renderer, console.text_pipeline);
font := *engine.renderer.fonts[console.font - 1];
push_cmd_set_texture(engine.renderer, 0, font.texture);
size := get_text_size(renderer, ">", console.font);
size := get_text_size(engine.renderer, ">", console.font);
render_data := bake_text(renderer, 5.0, size.y - offset_y, ">", console.font, .{1,1,1,1});
push_cmd_set_vertex_buffer(renderer, render_data.vb);
push_cmd_draw(renderer, render_data.vert_count);
render_data := bake_text(engine.renderer, 5.0, size.y - offset_y, ">", console.font, .{1,1,1,1});
push_cmd_set_vertex_buffer(engine.renderer, render_data.vb);
push_cmd_draw(engine.renderer, render_data.vert_count);
x := 15.0;
if console.current_string.count > 0 {
render_data := bake_text(renderer, x, size.y - offset_y, console.current_string, console.font, .{1,1,1,1});
push_cmd_set_vertex_buffer(renderer, render_data.vb);
push_cmd_draw(renderer, render_data.vert_count);
render_data := bake_text(engine.renderer, x, size.y - offset_y, console.current_string, console.font, .{1,1,1,1});
push_cmd_set_vertex_buffer(engine.renderer, render_data.vb);
push_cmd_draw(engine.renderer, render_data.vert_count);
x = 10 + render_data.size.x + 2.0;
}
@@ -241,9 +241,9 @@ render_console :: () {
entry := console.buffer[i];
render_data := bake_text(renderer, 15.0, y - offset_y, entry.text, console.font, entry.color);
push_cmd_set_vertex_buffer(renderer, render_data.vb);
push_cmd_draw(renderer, render_data.vert_count);
render_data := bake_text(engine.renderer, 15.0, y - offset_y, entry.text, console.font, entry.color);
push_cmd_set_vertex_buffer(engine.renderer, render_data.vb);
push_cmd_draw(engine.renderer, render_data.vert_count);
y += 20.0;
}
@@ -251,16 +251,16 @@ render_console :: () {
console.verts.count = 0;
//#if !NEW_UI {
add_rect(renderer, x, cast(float)renderer.render_target_height - 25 + offset_y, 10, 20.0, .{1,1,1,1}, *console.verts);
add_rect(engine.renderer, x, cast(float)engine.renderer.render_target_height - 25 + offset_y, 10, 20.0, .{1,1,1,1}, *console.verts);
//}
upload_data_to_buffer(renderer, console.cursor_vb, console.verts.data, cast(s32)console.verts.count * size_of(Colored_Vert));
upload_data_to_buffer(engine.renderer, console.cursor_vb, console.verts.data, cast(s32)console.verts.count * size_of(Colored_Vert));
push_cmd_set_draw_mode(renderer, .FILL);
push_cmd_set_depth_write(renderer, false);
push_cmd_set_pipeline_state(renderer, console.rect_pipeline);
push_cmd_set_vertex_buffer(renderer, console.cursor_vb);
push_cmd_draw(renderer, console.verts.count);
push_cmd_set_draw_mode(engine.renderer, .FILL);
push_cmd_set_depth_write(engine.renderer, false);
push_cmd_set_pipeline_state(engine.renderer, console.rect_pipeline);
push_cmd_set_vertex_buffer(engine.renderer, console.cursor_vb);
push_cmd_draw(engine.renderer, console.verts.count);
}
push_entry :: (buffer: *[..] Buffer_Entry, text: string, color: Color) {