From: Brendan Hansen Date: Fri, 9 Jul 2021 03:51:19 +0000 (-0500) Subject: immediate mode fixes X-Git-Url: https://git.brendanfh.com/?a=commitdiff_plain;h=5ec970c6a761b4e2baf64175fb2d4b93b978da31;p=onyx.git immediate mode fixes --- diff --git a/bin/onyx b/bin/onyx index 93271ecc..a0ce0b3f 100755 Binary files a/bin/onyx and b/bin/onyx differ diff --git a/modules/immediate_mode/immediate_renderer.onyx b/modules/immediate_mode/immediate_renderer.onyx index 517f23c0..7eff08ad 100644 --- a/modules/immediate_mode/immediate_renderer.onyx +++ b/modules/immediate_mode/immediate_renderer.onyx @@ -295,7 +295,7 @@ Immediate_Renderer :: struct { gl.useProgram(active_shader.program); } - push_scissor :: (use ir: ^Immediate_Renderer, x: f32, y: f32, w: f32, h: f32, intersect_previous := true) { + push_scissor :: (use ir: ^Immediate_Renderer, x: f32, y: f32, w: f32, h: f32) { if vertex_count > 0 do ir->flush(); if !gl.isEnabled(gl.SCISSOR_TEST) { @@ -313,7 +313,7 @@ Immediate_Renderer :: struct { array.push(^scissor_stack, .{ new_x0, new_y0, new_w, new_h }); - gl.scissor(~~new_x0, window_height - ~~new_y0 - ~~new_h, ~~new_w, ~~new_h); + gl.scissor(~~new_x0, window_height - ~~new_y1, ~~new_w, ~~new_h); } pop_scissor :: (use ir: ^Immediate_Renderer) { @@ -324,7 +324,7 @@ Immediate_Renderer :: struct { if scissor_stack.count > 0 { s := scissor_stack[scissor_stack.count - 1]; - gl.scissor(~~s.x, ~~s.y, ~~s.w, ~~s.h); + gl.scissor(~~s.x, window_height - ~~s.y - ~~s.h, ~~s.w, ~~s.h); } else { ir->scissor_disable(); diff --git a/src/onyxutils.c b/src/onyxutils.c index 01b96e68..6cad0d13 100644 --- a/src/onyxutils.c +++ b/src/onyxutils.c @@ -1446,7 +1446,11 @@ b32 fill_in_arguments(Arguments* args, AstNode* provider, char** err_msg) { return 0; } - assert(idx < bh_arr_length(args->values)); + // assert(idx < bh_arr_length(args->values)); + if (idx >= bh_arr_length(args->values)) { + token_toggle_end(named_value->token); + return 0; + } if (args->values[idx] != NULL && args->values[idx] != named_value->value) { if (err_msg) *err_msg = bh_aprintf(global_scratch_allocator, "Multiple values given for parameter named '%s'.", named_value->token->text);