diff options
Diffstat (limited to 'src/rendering')
| -rw-r--r-- | src/rendering/include/engine/rendering/rendering.h | 4 | ||||
| -rw-r--r-- | src/rendering/src/gl.c | 4 | ||||
| -rw-r--r-- | src/rendering/src/rendering.c | 6 |
3 files changed, 11 insertions, 3 deletions
diff --git a/src/rendering/include/engine/rendering/rendering.h b/src/rendering/include/engine/rendering/rendering.h index 1412cb4..e6feab9 100644 --- a/src/rendering/include/engine/rendering/rendering.h +++ b/src/rendering/include/engine/rendering/rendering.h @@ -71,6 +71,8 @@ typedef struct { u32 col; /* MVP (a uniform from the shader) */ u32 mvp; + + u32 texture; } RenderObject; typedef enum { @@ -145,7 +147,7 @@ typedef struct { } data; } RenderDrawCall; -RenderObject RenderObject_new(float* model, Shader* shader, usize sz, float* uv, usize uv_sz); +RenderObject RenderObject_new(float* model, Shader* shader, usize sz, float* uv, usize uv_sz, u32 texture); Shader compile_shader(const char* file_path, const ShaderType shader_type); Shader compose_shader(Shader *shaders, usize shaders_len); diff --git a/src/rendering/src/gl.c b/src/rendering/src/gl.c index 5ca5e91..c008e8f 100644 --- a/src/rendering/src/gl.c +++ b/src/rendering/src/gl.c @@ -184,7 +184,7 @@ Shader compose_shader(Shader *shaders, usize shaders_len) { return (Shader){.program = prog, .type = Shader_Program}; } -RenderObject RenderObject_new(float* model, Shader* shader, usize sz, float* uv, usize uv_sz) { +RenderObject RenderObject_new(float* model, Shader* shader, usize sz, float* uv, usize uv_sz, u32 texture) { GladGLContext *gl = GLOBAL_PLATFORM->window->context; RenderObject o; @@ -204,6 +204,8 @@ RenderObject RenderObject_new(float* model, Shader* shader, usize sz, float* uv, o.shader = *shader; + o.texture = texture; + return o; } diff --git a/src/rendering/src/rendering.c b/src/rendering/src/rendering.c index fb752d9..c162efe 100644 --- a/src/rendering/src/rendering.c +++ b/src/rendering/src/rendering.c @@ -73,6 +73,10 @@ void render_present(Window* w) { RenderObject* o = dc.data.model.model; vec3 pos; glm_vec3_copy(dc.data.model.pos, pos); + + gl->ActiveTexture(GL_TEXTURE0); + gl->BindTexture(GL_TEXTURE_2D, o->texture); + gl->UseProgram(o->shader.program); { @@ -121,7 +125,6 @@ void render_present(Window* w) { - //// Draw the model ! gl->DrawArrays(GL_TRIANGLES, 0, 3*12); // Starting from vertex 0; 3 vertices total -> 1 triangle @@ -140,6 +143,7 @@ void render_present(Window* w) { + } break; default: break; |
