35 lines
805 B
Odin
35 lines
805 B
Odin
package render
|
|
|
|
import gl "vendor:OpenGL"
|
|
import glfw "vendor:glfw"
|
|
import rl "vendor:raylib"
|
|
import rlgl "vendor:raylib/rlgl"
|
|
|
|
init :: proc() {
|
|
gl.load_up_to(3, 3, glfw.gl_set_proc_address)
|
|
}
|
|
|
|
draw_model :: proc(model: rl.Model, shader: rl.Shader, transform: rl.Matrix) {
|
|
model := model
|
|
for i in 0 ..< model.materialCount {
|
|
model.materials[i].shader = shader
|
|
}
|
|
model.transform = transform
|
|
|
|
rl.DrawModel(model, rl.Vector3{}, 1, rl.WHITE)
|
|
}
|
|
|
|
draw_point_light :: proc(pos: rl.Vector3, radius: f32, color: rl.Color) {
|
|
rlgl.DrawRenderBatchActive()
|
|
|
|
gl.StencilFunc(gl.ALWAYS, 1, 0)
|
|
defer gl.StencilFunc(gl.ALWAYS, 0, 0)
|
|
|
|
rlgl.SetCullFace(.FRONT)
|
|
rl.DrawSphere(pos, radius, color)
|
|
|
|
rlgl.DrawRenderBatchActive()
|
|
rlgl.SetCullFace(.BACK)
|
|
// rl.DrawMesh(mesh, rl.LoadMaterialDefault(), transform)
|
|
}
|