summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/rendering/include/engine/rendering/rendering.h4
-rw-r--r--src/rendering/src/gl.c4
-rw-r--r--src/rendering/src/rendering.c6
-rw-r--r--src/resources/src/resources.c9
4 files changed, 17 insertions, 6 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;
diff --git a/src/resources/src/resources.c b/src/resources/src/resources.c
index 8d99861..ece8c65 100644
--- a/src/resources/src/resources.c
+++ b/src/resources/src/resources.c
@@ -22,6 +22,8 @@ void* get_asset(Resources* r, u32 idx) {
return &r->shader[r->get[idx]];
case Asset_texture:
+ return &r->texture[r->get[idx]];
+
case Asset_error:
case Asset_audio:
case Asset_font:
@@ -109,10 +111,11 @@ i32 resources_load(Resources *resources) {
const Shader s = compose_shader(shaders, sz);
DEBUG("shader = %d -- %s\n", s.program, ShaderType_str[s.type]);
- resources->shader[resources->shader_len++] = s;
+ resources->shader[resources->shader_len] = s;
+ resources->shader_len++;
} break;
case Asset_texture:
- resources->texture[resources->texture_len++] = load_texture(&resources->assets[i].texture);
+ resources->texture[resources->texture_len] = load_texture(&resources->assets[i].texture);
resources->texture_len++;
break;
@@ -124,7 +127,7 @@ i32 resources_load(Resources *resources) {
break;
}
- resources->get[i] = idx;
+ //resources->get[i] = idx;
}
free(imm_shader);