Allowed setting uniforms in shader
This commit is contained in:
27
texture.odin
27
texture.odin
@@ -32,8 +32,12 @@ Texture_Format :: enum {
|
||||
Depth32F_Stencil8,
|
||||
}
|
||||
|
||||
MAX_COLOR_TEXTURES_IN_RENDER_TARGET :: 32
|
||||
|
||||
Render_Target :: struct {
|
||||
color_texture, depth_texture: ^Texture,
|
||||
color_textures: [dynamic]^Texture,
|
||||
depth_texture: ^Texture,
|
||||
|
||||
backend: Render_Target_Backend,
|
||||
}
|
||||
|
||||
@@ -119,11 +123,16 @@ create_texture_raw :: proc(renderer: ^Renderer, width, height: u16, format: Text
|
||||
return t, true
|
||||
}
|
||||
|
||||
create_render_target :: proc(renderer: ^Renderer, color_texture, depth_texture: ^Texture) -> (Render_Target, bool) {
|
||||
create_render_target :: proc(renderer: ^Renderer, color_textures: []^Texture, depth_texture: ^Texture) -> (Render_Target, bool) {
|
||||
rt: Render_Target
|
||||
rt.color_texture = color_texture
|
||||
rt.depth_texture = depth_texture
|
||||
rt.color_textures = make([dynamic]^Texture, 0, MAX_COLOR_TEXTURES_IN_RENDER_TARGET)
|
||||
|
||||
_, err := append(&rt.color_textures, ..color_textures)
|
||||
if err != .None {
|
||||
return {}, false
|
||||
}
|
||||
|
||||
when RENDER_BACKEND_OPENGL {
|
||||
if !opengl_create_render_target(renderer, &rt) {
|
||||
return {}, false
|
||||
@@ -133,6 +142,18 @@ create_render_target :: proc(renderer: ^Renderer, color_texture, depth_texture:
|
||||
return rt, true
|
||||
}
|
||||
|
||||
destroy_render_target :: proc(renderer: ^Renderer, render_target: ^Render_Target) {
|
||||
assert(renderer != nil)
|
||||
assert(render_target != nil)
|
||||
assert(render_target.color_textures != nil)
|
||||
|
||||
delete(render_target.color_textures)
|
||||
|
||||
when RENDER_BACKEND_OPENGL {
|
||||
opengl_destroy_render_target(renderer, render_target)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
delete_texture :: proc(renderer: ^Renderer, texture: ^Texture) {
|
||||
when RENDER_BACKEND_OPENGL {
|
||||
|
||||
Reference in New Issue
Block a user