UI quad and Vector2 uniform.

This commit is contained in:
2026-02-10 10:37:33 +01:00
parent cb19295575
commit c1002d5db2
5 changed files with 90 additions and 12 deletions

View File

@@ -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)