|
|
|
@ -28,10 +28,7 @@ loadLights(RenderState* rs) |
|
|
|
|
|
|
|
|
|
|
|
GLBuffer* lights_ubo = getUBOByName(rs->gl_ctx, "lights"); |
|
|
|
GLBuffer* lights_ubo = getUBOByName(rs->gl_ctx, "lights"); |
|
|
|
assert(lights_ubo != nullptr); |
|
|
|
assert(lights_ubo != nullptr); |
|
|
|
|
|
|
|
updateGLBuffer(lights_ubo, lb->buffer); |
|
|
|
// FIXME: we need an interface function to update lights
|
|
|
|
|
|
|
|
glBindBuffer(lights_ubo->target, lights_ubo->id); |
|
|
|
|
|
|
|
glBufferSubData(lights_ubo->target, 0, lb->buf_size, lb->buffer); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// NOTE: add a debug mesh to view the point light source
|
|
|
|
// NOTE: add a debug mesh to view the point light source
|
|
|
|
RenderGroup* debug_group = getFreeRenderGroup(rs); |
|
|
|
RenderGroup* debug_group = getFreeRenderGroup(rs); |
|
|
|
@ -117,7 +114,7 @@ loadScene(RenderState* rs) |
|
|
|
rs->xforms->view_xform = glm::lookAt(cam_pos, look_pos, up); |
|
|
|
rs->xforms->view_xform = glm::lookAt(cam_pos, look_pos, up); |
|
|
|
GLBuffer* xforms_ubo = getUBOByName(rs->gl_ctx, "matrices"); |
|
|
|
GLBuffer* xforms_ubo = getUBOByName(rs->gl_ctx, "matrices"); |
|
|
|
assert(xforms_ubo); |
|
|
|
assert(xforms_ubo); |
|
|
|
updateCameraTransforms(rs->xforms, xforms_ubo); |
|
|
|
updateGLBuffer(xforms_ubo, rs->xforms); |
|
|
|
|
|
|
|
|
|
|
|
return loadLights(rs); |
|
|
|
return loadLights(rs); |
|
|
|
} |
|
|
|
} |
|
|
|
@ -160,8 +157,7 @@ render_cb_pre(RenderState* rs) |
|
|
|
// FIXME: we need an interface function to update lights
|
|
|
|
// FIXME: we need an interface function to update lights
|
|
|
|
GLBuffer* lights_ubo = getUBOByName(rs->gl_ctx, "lights"); |
|
|
|
GLBuffer* lights_ubo = getUBOByName(rs->gl_ctx, "lights"); |
|
|
|
assert(lights_ubo); |
|
|
|
assert(lights_ubo); |
|
|
|
glBindBuffer(lights_ubo->target, lights_ubo->id); |
|
|
|
updateGLBuffer(lights_ubo, lb->buffer); |
|
|
|
glBufferSubData(lights_ubo->target, 0, lb->buf_size, lb->buffer); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// NOTE: orbit camera
|
|
|
|
// NOTE: orbit camera
|
|
|
|
static glm::vec4 cam_pos; |
|
|
|
static glm::vec4 cam_pos; |
|
|
|
@ -187,7 +183,7 @@ render_cb_pre(RenderState* rs) |
|
|
|
assert(xform_ubo != nullptr); |
|
|
|
assert(xform_ubo != nullptr); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
updateCameraTransforms(rs->xforms, xform_ubo); |
|
|
|
updateGLBuffer(xform_ubo, rs->xforms); |
|
|
|
|
|
|
|
|
|
|
|
// NOTE: rotate cubes
|
|
|
|
// NOTE: rotate cubes
|
|
|
|
RenderGroup* rg2 = getRenderGroupByName(rs, "textured_cubes"); |
|
|
|
RenderGroup* rg2 = getRenderGroupByName(rs, "textured_cubes"); |
|
|
|
|