Spheres/primitive built-in meshes, cull-modes, vec4 uniforms

This commit is contained in:
2026-02-05 00:17:33 +01:00
parent efa2c274f3
commit 3b32097c56
6 changed files with 510 additions and 172 deletions

View File

@@ -517,6 +517,29 @@ when RENDER_BACKEND_OPENGL {
)
}
opengl_set_cull_mode :: proc(renderer: ^Renderer, cull_mode: Cull_Mode) {
switch cull_mode {
case .None: {
gl.Disable(gl.CULL_FACE)
}
case .Back: {
gl.Enable(gl.CULL_FACE)
gl.CullFace(gl.BACK)
gl.FrontFace(gl.CCW)
}
case .Front: {
gl.Enable(gl.CULL_FACE)
gl.CullFace(gl.FRONT)
gl.FrontFace(gl.CCW)
}
case .Front_Back: {
gl.Enable(gl.CULL_FACE)
gl.CullFace(gl.FRONT_AND_BACK)
gl.FrontFace(gl.CCW)
}
}
}
opengl_bind_render_target :: proc(renderer: ^Renderer, rt: ^Render_Target) {
if rt == nil {
gl.BindFramebuffer(gl.FRAMEBUFFER, 0)
@@ -629,7 +652,7 @@ when RENDER_BACKEND_OPENGL {
return false
}
gl.Uniform1f(loc, uniform.value^)
gl.Uniform1f(loc, uniform.value)
return true
}
@@ -644,7 +667,7 @@ when RENDER_BACKEND_OPENGL {
return false
}
data := transmute([16]f32)(uniform.value^)
data := transmute([16]f32)(uniform.value)
gl.UniformMatrix4fv(loc, 1, gl.FALSE, &data[0])
return true
@@ -659,7 +682,23 @@ when RENDER_BACKEND_OPENGL {
return false
}
gl.Uniform3fv(loc, 1, &uniform.value[0])
v := transmute([3]f32)uniform.value
gl.Uniform3fv(loc, 1, &v[0])
return true
}
opengl_set_shader_uniform_vector4 :: proc(program: ^Shader_Program, uniform: Uniform_Vector4) -> bool {
opengl_activate_shader_program(program)
loc := gl.GetUniformLocation(program.backend.handle, fmt.ctprintf("%v", uniform.name))
if loc < 0 {
fmt.printfln("vector4 Loc: %v", loc)
return false
}
v := transmute([4]f32)uniform.value
gl.Uniform4fv(loc, 1, &v[0])
return true
}