diff options
Diffstat (limited to 'src/llr/llr.c')
| -rw-r--r-- | src/llr/llr.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/src/llr/llr.c b/src/llr/llr.c index fe02c0d..25cdf9f 100644 --- a/src/llr/llr.c +++ b/src/llr/llr.c | |||
| @@ -204,7 +204,10 @@ static void configure_state(LLR* renderer) { | |||
| 204 | if (renderer->material_changed || renderer->shader_changed) { | 204 | if (renderer->material_changed || renderer->shader_changed) { |
| 205 | renderer->material_changed = false; | 205 | renderer->material_changed = false; |
| 206 | 206 | ||
| 207 | gfx_material_activate(renderer->shader, renderer->material); | 207 | // Geometry may be rendered without a material. |
| 208 | if (renderer->material) { | ||
| 209 | gfx_material_activate(renderer->shader, renderer->material); | ||
| 210 | } | ||
| 208 | } | 211 | } |
| 209 | 212 | ||
| 210 | if (renderer->shader_changed) { | 213 | if (renderer->shader_changed) { |
| @@ -330,6 +333,13 @@ void gfx_llr_set_camera(LLR* renderer, const Camera* camera) { | |||
| 330 | renderer->camera_changed = true; | 333 | renderer->camera_changed = true; |
| 331 | } | 334 | } |
| 332 | 335 | ||
| 336 | void gfx_llr_set_projection_matrix(LLR* renderer, const mat4* projection) { | ||
| 337 | assert(renderer); | ||
| 338 | |||
| 339 | renderer->projection = *projection; | ||
| 340 | renderer->camera_changed = true; | ||
| 341 | } | ||
| 342 | |||
| 333 | void gfx_llr_set_aspect(LLR* renderer, float aspect) { | 343 | void gfx_llr_set_aspect(LLR* renderer, float aspect) { |
| 334 | assert(renderer); | 344 | assert(renderer); |
| 335 | 345 | ||
