Polygon-mode, better shader-compile-error log, material variable 'casts_shadow'

This commit is contained in:
2026-02-04 10:43:22 +01:00
parent 4394179a71
commit efa2c274f3
4 changed files with 49 additions and 7 deletions

View File

@@ -1,6 +1,7 @@
#+private
package renderer
import "core:log"
import "core:math/linalg"
import "core:bytes"
import "core:slice"
@@ -207,7 +208,7 @@ when RENDER_BACKEND_OPENGL {
return m, true
}
opengl_create_shader :: proc(renderer: ^Renderer, type: Shader_Type, data: []u8) -> (Shader_OpenGL, bool) {
opengl_create_shader :: proc(renderer: ^Renderer, type: Shader_Type, path: string, data: []u8) -> (Shader_OpenGL, bool) {
handle: u32
switch type {
@@ -232,7 +233,10 @@ when RENDER_BACKEND_OPENGL {
gl.GetShaderiv(handle, gl.COMPILE_STATUS, &success)
if success != 1 {
gl.GetShaderInfoLog(handle, 512, nil, raw_data(&info_log))
fmt.printfln("OPENGL: Failed to compile shader of type %v. Log: '%v'.", type, info_log)
str := string(transmute(cstring)(&info_log))
b := transmute([]u8)str
b = b[:len(b) - 1]
log.errorf("OPENGL: Failed to compile shader '%v' of type %v. Log: '%v'.", path, type, string(b))
return {}, false
}
@@ -258,7 +262,10 @@ when RENDER_BACKEND_OPENGL {
gl.GetProgramiv(handle, gl.LINK_STATUS, &success)
if success != 1 {
gl.GetProgramInfoLog(handle, 512, nil, raw_data(&info_log))
fmt.printfln("OPENGL: Failed to create shader-program. Log: '%v'.", info_log)
str := string(transmute(cstring)(&info_log))
b := transmute([]u8)str
b = b[:len(b) - 1]
log.errorf("OPENGL: Failed to create shader-program. Log: '%v'.", string(b))
return {}, false
}
@@ -656,5 +663,17 @@ when RENDER_BACKEND_OPENGL {
return true
}
}
opengl_apply_polygon_mode :: proc(renderer: ^Renderer, mode: Polygon_Mode) {
assert(renderer != nil)
m: u32 = gl.FILL
switch mode {
case .Fill: m = gl.FILL
case .Line: m = gl.LINE
case .Point: m = gl.POINT
}
gl.PolygonMode(gl.FRONT_AND_BACK, m)
}
}