zephr: consume hover event on top-most ui elements

This commit is contained in:
2024-01-20 06:39:49 +02:00
parent 156021347f
commit 3ece69dfc6
7 changed files with 1230 additions and 1181 deletions
+15 -15
View File
@@ -12,46 +12,46 @@ create_shader :: proc(vertex_path: string, fragment_path: string) -> (Shader, bo
shader: Shader
program, success := gl.load_shaders(vertex_path, fragment_path)
shader.program = program;
shader.program = program
return shader, success;
return shader, success
}
use_shader :: proc(shader: Shader) {
gl.UseProgram(shader.program);
gl.UseProgram(shader.program)
}
set_mat4f :: proc(shader: Shader, name: cstring, mat4: Mat4, transpose: bool = false) {
mat4 := mat4
loc := gl.GetUniformLocation(shader.program, name);
loc := gl.GetUniformLocation(shader.program, name)
gl.UniformMatrix4fv(loc, 1, transpose, raw_data(&mat4))
}
set_float :: proc(shader: Shader, name: cstring, val: f32) {
loc := gl.GetUniformLocation(shader.program, name);
gl.Uniform1f(loc, val);
loc := gl.GetUniformLocation(shader.program, name)
gl.Uniform1f(loc, val)
}
set_int :: proc(shader: Shader, name: cstring, val: i32) {
loc := gl.GetUniformLocation(shader.program, name);
gl.Uniform1i(loc, val);
loc := gl.GetUniformLocation(shader.program, name)
gl.Uniform1i(loc, val)
}
set_bool :: proc(shader: Shader, name: cstring, val: bool) {
set_int(shader, name, cast(i32)val);
set_int(shader, name, cast(i32)val)
}
set_vec2f :: proc(shader: Shader, name: cstring, val1: f32, val2: f32) {
loc := gl.GetUniformLocation(shader.program, name);
gl.Uniform2f(loc, val1, val2);
loc := gl.GetUniformLocation(shader.program, name)
gl.Uniform2f(loc, val1, val2)
}
set_vec3f :: proc(shader: Shader, name: cstring, val1: f32, val2: f32, val3: f32) {
loc := gl.GetUniformLocation(shader.program, name);
gl.Uniform3f(loc, val1, val2, val3);
loc := gl.GetUniformLocation(shader.program, name)
gl.Uniform3f(loc, val1, val2, val3)
}
set_vec4f :: proc(shader: Shader, name: cstring, val1: f32, val2: f32, val3: f32, val4: f32) {
loc := gl.GetUniformLocation(shader.program, name);
gl.Uniform4f(loc, val1, val2, val3, val4);
loc := gl.GetUniformLocation(shader.program, name)
gl.Uniform4f(loc, val1, val2, val3, val4)
}