From 3c3df9796a3108958f03a5c2c3a051e799c3e1b8 Mon Sep 17 00:00:00 2001 From: samstalhandske Date: Fri, 21 Nov 2025 03:38:53 +0100 Subject: [PATCH] Fixed an issue when clearing the render-passes. --- pass.odin | 3 --- pipeline.odin | 2 +- renderer.odin | 19 ++++--------------- 3 files changed, 5 insertions(+), 19 deletions(-) diff --git a/pass.odin b/pass.odin index caa6dfe..d9b817a 100644 --- a/pass.odin +++ b/pass.odin @@ -1,8 +1,5 @@ package renderer -RGB_Color :: [3]u8 -RGBA_Color :: [4]u8 - Pass :: struct { name: string, clear_color: RGB_Color, diff --git a/pipeline.odin b/pipeline.odin index 8501d62..c58f3f4 100644 --- a/pipeline.odin +++ b/pipeline.odin @@ -15,7 +15,7 @@ clear_pipeline :: proc(renderer: ^Renderer) { pipeline := &renderer.pipeline pipeline.amount_of_passes = 0; - mem.set(&pipeline.passes[0], 0, MAX_PASSES_IN_PIPELINE * size_of(Pass)) + mem.set(&pipeline.passes[0], 0, MAX_PASSES_IN_PIPELINE * size_of(^Pass)) } set_pipeline :: proc(renderer: ^Renderer, passes: []^Pass) { diff --git a/renderer.odin b/renderer.odin index 0abb012..19346fa 100644 --- a/renderer.odin +++ b/renderer.odin @@ -9,25 +9,19 @@ RENDER_BACKEND_DIRECTX11 :: #config(RENDER_BACKEND_DIRECTX11, false) RENDER_BACKEND_METAL :: #config(RENDER_BACKEND_METAL, false) Renderer :: struct { - api: Renderer_API, - viewport: Viewport, surface_ptr: rawptr, backend: rawptr, - pipeline: Pipeline, + pipeline: Pipeline, } Viewport :: struct { x, y, width, height: u16, } -Renderer_API :: enum { - OpenGL, - Vulkan, - DirectX11, - Metal, -} +RGB_Color :: [3]u8 +RGBA_Color :: [4]u8 create :: proc(surface_ptr: rawptr) -> (^Renderer, bool) { renderer := new(Renderer) @@ -47,7 +41,6 @@ create :: proc(surface_ptr: rawptr) -> (^Renderer, bool) { return nil, false } - // TODO: SS - Init renderer using 'api'. return renderer, true } @@ -85,10 +78,6 @@ render_frame :: proc(renderer: ^Renderer) { // TODO: SS - "Deactivate" the pass. } - swap_buffers(renderer) -} - -@(private="file") swap_buffers :: proc(renderer: ^Renderer) { when RENDER_BACKEND_OPENGL { opengl_swap_buffers(renderer) } @@ -99,6 +88,6 @@ destroy :: proc(renderer: ^Renderer) { opengl_destroy(renderer) } + assert(renderer != nil) free(renderer) - renderer^ = {} } \ No newline at end of file