aboutsummaryrefslogtreecommitdiff
path: root/src/llr
diff options
context:
space:
mode:
Diffstat (limited to 'src/llr')
-rw-r--r--src/llr/llr.c12
-rw-r--r--src/llr/mesh_impl.h2
2 files changed, 12 insertions, 2 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
336void 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
333void gfx_llr_set_aspect(LLR* renderer, float aspect) { 343void gfx_llr_set_aspect(LLR* renderer, float aspect) {
334 assert(renderer); 344 assert(renderer);
335 345
diff --git a/src/llr/mesh_impl.h b/src/llr/mesh_impl.h
index 96e60df..a997d5b 100644
--- a/src/llr/mesh_impl.h
+++ b/src/llr/mesh_impl.h
@@ -5,5 +5,5 @@
5typedef struct Mesh { 5typedef struct Mesh {
6 const Geometry* geometry; 6 const Geometry* geometry;
7 const Material* material; 7 const Material* material;
8 ShaderProgram* shader; 8 ShaderProgram* shader; // TODO: Move this back to Material?
9} Mesh; 9} Mesh;