Fixed an issue when clearing the render-passes.

This commit is contained in:
2025-11-21 03:38:53 +01:00
parent c7de871865
commit 3c3df9796a
3 changed files with 5 additions and 19 deletions

View File

@@ -1,8 +1,5 @@
package renderer package renderer
RGB_Color :: [3]u8
RGBA_Color :: [4]u8
Pass :: struct { Pass :: struct {
name: string, name: string,
clear_color: RGB_Color, clear_color: RGB_Color,

View File

@@ -15,7 +15,7 @@ clear_pipeline :: proc(renderer: ^Renderer) {
pipeline := &renderer.pipeline pipeline := &renderer.pipeline
pipeline.amount_of_passes = 0; 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) { set_pipeline :: proc(renderer: ^Renderer, passes: []^Pass) {

View File

@@ -9,25 +9,19 @@ RENDER_BACKEND_DIRECTX11 :: #config(RENDER_BACKEND_DIRECTX11, false)
RENDER_BACKEND_METAL :: #config(RENDER_BACKEND_METAL, false) RENDER_BACKEND_METAL :: #config(RENDER_BACKEND_METAL, false)
Renderer :: struct { Renderer :: struct {
api: Renderer_API,
viewport: Viewport, viewport: Viewport,
surface_ptr: rawptr, surface_ptr: rawptr,
backend: rawptr, backend: rawptr,
pipeline: Pipeline, pipeline: Pipeline,
} }
Viewport :: struct { Viewport :: struct {
x, y, width, height: u16, x, y, width, height: u16,
} }
Renderer_API :: enum { RGB_Color :: [3]u8
OpenGL, RGBA_Color :: [4]u8
Vulkan,
DirectX11,
Metal,
}
create :: proc(surface_ptr: rawptr) -> (^Renderer, bool) { create :: proc(surface_ptr: rawptr) -> (^Renderer, bool) {
renderer := new(Renderer) renderer := new(Renderer)
@@ -47,7 +41,6 @@ create :: proc(surface_ptr: rawptr) -> (^Renderer, bool) {
return nil, false return nil, false
} }
// TODO: SS - Init renderer using 'api'.
return renderer, true return renderer, true
} }
@@ -85,10 +78,6 @@ render_frame :: proc(renderer: ^Renderer) {
// TODO: SS - "Deactivate" the pass. // TODO: SS - "Deactivate" the pass.
} }
swap_buffers(renderer)
}
@(private="file") swap_buffers :: proc(renderer: ^Renderer) {
when RENDER_BACKEND_OPENGL { when RENDER_BACKEND_OPENGL {
opengl_swap_buffers(renderer) opengl_swap_buffers(renderer)
} }
@@ -99,6 +88,6 @@ destroy :: proc(renderer: ^Renderer) {
opengl_destroy(renderer) opengl_destroy(renderer)
} }
assert(renderer != nil)
free(renderer) free(renderer)
renderer^ = {}
} }