Polygon-mode, better shader-compile-error log, material variable 'casts_shadow'
This commit is contained in:
@@ -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)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user