ui colors

This commit is contained in:
Krzosa Karol
2025-01-22 22:18:18 +01:00
parent de35c4a705
commit 057d6b6f50
13 changed files with 169 additions and 105 deletions

View File

@@ -72,6 +72,7 @@ struct rn_state_t {
rn_font_t *main_font;
rn_shader_t shader2d;
app_frame_t *frame;
v4f32_t clear_color;
rn_cmd_t *first_cmd;
rn_cmd_t *last_cmd;

View File

@@ -126,8 +126,9 @@ fn void rn_init(ma_arena_t *perm, f32 font_size, f32 dpr) {
rn_state.shader2d = rn_create_shader(glsl_vshader, glsl_fshader);
}
void rn_begin(app_frame_t *frame) {
void rn_begin(app_frame_t *frame, v4f32_t clear_color) {
rn_state.frame = frame;
rn_state.clear_color = clear_color;
}
void rn_end(void) {
@@ -141,7 +142,7 @@ void rn_end(void) {
glViewport(0, 0, (GLsizei)wx, (GLsizei)wy);
glScissor(0, 0, (GLsizei)wx, (GLsizei)wy);
glClearColor(1,1,1,1);
glClearColor(rn_state.clear_color.r, rn_state.clear_color.g, rn_state.clear_color.b, rn_state.clear_color.a);
glClear(GL_COLOR_BUFFER_BIT | GL_STENCIL_BUFFER_BIT);
// Default draw using the font texture

View File

@@ -2,7 +2,6 @@ fn_wasm_import void wasm_clear(void);
fn_wasm_import void wasm_draw_text(isize str, i32 len, f32 x, f32 y, isize font_str, i32 font_len, i32 font_size, f32 r, f32 g, f32 b, f32 a);
fn_wasm_import void wasm_draw_rect(f32 x, f32 y, f32 w, f32 h, f32 r, f32 g, f32 b, f32 a);
fn_wasm_import f32 wasm_measure_text(isize str, i32 len, isize font_str, i32 font_len, i32 font_size);
// fn_wasm_import f32 wasm_get_font_height(isize font_str, i32 font_len, i32 font_size);
fn_wasm_import void wasm_set_clip(f32 x, f32 y, f32 w, f32 h);
gb_read_only s8_t font_face = s8_const_lit("main_font");
@@ -63,11 +62,11 @@ fn void rn_set_clip(r2f32_t rect) {
wasm_set_clip(rect.min.x, rect.min.y, (rect.max.x - rect.min.x), (rect.max.y - rect.min.y));
}
fn void rn_begin(app_frame_t *frame) {
rn_state.frame = frame;
fn void rn_begin(app_frame_t *frame, v4f32_t clear_color) {
rn_state.frame = frame;
r2f32_t window_rect = r2f32(0, 0, rn_state.frame->window_size.x, rn_state.frame->window_size.y);
wasm_clear();
rn_draw_rect(window_rect, white_color_global);
rn_draw_rect(window_rect, clear_color);
}
fn void rn_end() {