package render import rl "libs:raylib" import rlgl "libs:raylib/rlgl" import gl "vendor:OpenGL" // Used by vendor:OpenGL rlgl_set_proc_address :: proc(p: rawptr, name: cstring) { (^rawptr)(p)^ = rl.GetGLProcAddress(name) } init :: proc() { gl.load_up_to(3, 3, rlgl_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) }