diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/core/shader_program.h | 2 | ||||
| -rw-r--r-- | src/llr/llr.c | 12 | ||||
| -rw-r--r-- | src/llr/mesh_impl.h | 2 |
3 files changed, 12 insertions, 4 deletions
diff --git a/src/core/shader_program.h b/src/core/shader_program.h index 1443663..521118d 100644 --- a/src/core/shader_program.h +++ b/src/core/shader_program.h | |||
| @@ -5,8 +5,6 @@ | |||
| 5 | 5 | ||
| 6 | #include "gl_util.h" | 6 | #include "gl_util.h" |
| 7 | 7 | ||
| 8 | #include <math/fwd.h> | ||
| 9 | |||
| 10 | #include <stdbool.h> | 8 | #include <stdbool.h> |
| 11 | 9 | ||
| 12 | typedef struct Texture Texture; | 10 | typedef struct Texture Texture; |
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 | ||
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 @@ | |||
| 5 | typedef struct Mesh { | 5 | typedef 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; |
