Fixed an issue when clearing the render-passes.
This commit is contained in:
@@ -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,
|
||||||
|
|||||||
@@ -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) {
|
||||||
|
|||||||
@@ -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^ = {}
|
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user