UI quad and Vector2 uniform.
This commit is contained in:
25
shader.odin
25
shader.odin
@@ -134,6 +134,8 @@ set_shader_uniforms :: proc(program: ^Shader_Program, uniforms: []Uniform) {
|
||||
case Uniform_Float_Pointer: { if !set_shader_uniform(program, t) { fmt.printfln("Failed to set uniform (float pointer) '%v' in program (vs: '%s', fs: '%s').", t.name, vs_path, fs_path) }}
|
||||
case Uniform_Matrix4f32: { if !set_shader_uniform(program, t) { fmt.printfln("Failed to set uniform (matrix4f32) '%v' in program (vs: '%s', fs: '%s').", t.name, vs_path, fs_path) }}
|
||||
case Uniform_Matrix4f32_Pointer: { if !set_shader_uniform(program, t) { fmt.printfln("Failed to set uniform (matrix4f32 pointer) '%v' in program (vs: '%s', fs: '%s').", t.name, vs_path, fs_path) }}
|
||||
case Uniform_Vector2: { if !set_shader_uniform(program, t) { fmt.printfln("Failed to set uniform (vector2) '%v' in program (vs: '%s', fs: '%s').", t.name, vs_path, fs_path) }}
|
||||
case Uniform_Vector2_Pointer: { if !set_shader_uniform(program, t) { fmt.printfln("Failed to set uniform (vector2 pointer) '%v' in program (vs: '%s', fs: '%s').", t.name, vs_path, fs_path) }}
|
||||
case Uniform_Vector3: { if !set_shader_uniform(program, t) { fmt.printfln("Failed to set uniform (vector3) '%v' in program (vs: '%s', fs: '%s').", t.name, vs_path, fs_path) }}
|
||||
case Uniform_Vector3_Pointer: { if !set_shader_uniform(program, t) { fmt.printfln("Failed to set uniform (vector3 pointer) '%v' in program (vs: '%s', fs: '%s').", t.name, vs_path, fs_path) }}
|
||||
case Uniform_Vector4: { if !set_shader_uniform(program, t) { fmt.printfln("Failed to set uniform (vector4) '%v' in program (vs: '%s', fs: '%s').", t.name, vs_path, fs_path) }}
|
||||
@@ -150,6 +152,8 @@ set_shader_uniform :: proc { // TODO: SS - Improve setting shader uniforms. A bi
|
||||
set_shader_uniform_float_pointer,
|
||||
set_shader_uniform_matrix4f32,
|
||||
set_shader_uniform_matrix4f32_pointer,
|
||||
set_shader_uniform_vector2,
|
||||
set_shader_uniform_vector2_pointer,
|
||||
set_shader_uniform_vector3,
|
||||
set_shader_uniform_vector3_pointer,
|
||||
set_shader_uniform_vector4,
|
||||
@@ -208,13 +212,31 @@ set_shader_uniform_matrix4f32 :: proc(program: ^Shader_Program, uniform: Uniform
|
||||
return false
|
||||
}
|
||||
|
||||
set_shader_uniform_vector2_pointer :: proc(program: ^Shader_Program, uniform: Uniform_Vector2_Pointer) -> bool {
|
||||
if uniform.value == nil {
|
||||
return false
|
||||
}
|
||||
return set_shader_uniform(program, Uniform_Vector2 { uniform.name, uniform.value^ })
|
||||
}
|
||||
set_shader_uniform_vector2 :: proc(program: ^Shader_Program, uniform: Uniform_Vector2) -> bool {
|
||||
assert(program != nil)
|
||||
assert(len(uniform.name) > 0)
|
||||
|
||||
// TODO: SS - Somehow verify that 'uniform.name' exists in the shader(s)?
|
||||
|
||||
when RENDER_BACKEND_OPENGL {
|
||||
return opengl_set_shader_uniform_vector2(program, uniform)
|
||||
}
|
||||
|
||||
return false
|
||||
}
|
||||
|
||||
set_shader_uniform_vector3_pointer :: proc(program: ^Shader_Program, uniform: Uniform_Vector3_Pointer) -> bool {
|
||||
if uniform.value == nil {
|
||||
return false
|
||||
}
|
||||
return set_shader_uniform(program, Uniform_Vector3 { uniform.name, uniform.value^ })
|
||||
}
|
||||
|
||||
set_shader_uniform_vector3 :: proc(program: ^Shader_Program, uniform: Uniform_Vector3) -> bool {
|
||||
assert(program != nil)
|
||||
assert(len(uniform.name) > 0)
|
||||
@@ -234,7 +256,6 @@ set_shader_uniform_vector4_pointer :: proc(program: ^Shader_Program, uniform: Un
|
||||
}
|
||||
return set_shader_uniform(program, Uniform_Vector4 { uniform.name, uniform.value^ })
|
||||
}
|
||||
|
||||
set_shader_uniform_vector4 :: proc(program: ^Shader_Program, uniform: Uniform_Vector4) -> bool {
|
||||
assert(program != nil)
|
||||
assert(len(uniform.name) > 0)
|
||||
|
||||
Reference in New Issue
Block a user