diff --git a/data/colored_vertices.frag b/data/colored_vertices.frag index 787a5dc..ee32172 100644 --- a/data/colored_vertices.frag +++ b/data/colored_vertices.frag @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:250d6e18fe01513be7c62fbf54c74af697aa79a6bf12c1db6a0bc4cffa95ad59 -size 396 +oid sha256:72f1e8907ed599864745ca9dea086d4f401c11c224012fd140b33b145cd10cb3 +size 395 diff --git a/data/colored_vertices.vert b/data/colored_vertices.vert index 75a3b88..529e7a2 100644 --- a/data/colored_vertices.vert +++ b/data/colored_vertices.vert @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:1446e315df77a5fc36999fdaef40c999b21eaae22dc95e11ae319230add97dce -size 550 +oid sha256:444205ec750a1587f095e598a57a86d2b8b1987709d42b50154493591d7d23c1 +size 548 diff --git a/data/debug.vert b/data/debug.vert index 27a4f77..9942030 100644 --- a/data/debug.vert +++ b/data/debug.vert @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c7feb758bde3d32346d872c4b63245975e6cc15c46bbac759056939678c6d65b -size 563 +oid sha256:18f1000a8561121aca0cad6daad5f9c3084d54152c5732367caa27f71856e504 +size 560 diff --git a/data/shader.frag b/data/shader.frag index a02584f..b5b26f3 100644 --- a/data/shader.frag +++ b/data/shader.frag @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:bfc35c46bb495d8699765e860332272163882faa55232ec6b2ad2f1f623a2503 -size 258 +oid sha256:7ce3046e2f64aaa1b4b81726964d958fb5a28d13aba3895bf1b61a4deeaf3575 +size 257 diff --git a/data/shader.vert b/data/shader.vert index 5e20a3f..c8c2904 100644 --- a/data/shader.vert +++ b/data/shader.vert @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3ff8f67f345ed8947356dec98d84bc64a2358e398bb3551fe87dbdafc03810cd -size 341 +oid sha256:4204ea2e68fcfc90eb5f2fdfb713f3ea1f03028a970729199a2e08216afb100c +size 339 diff --git a/src/entity.cpp b/src/entity.cpp index a5eacc8..2afba2c 100644 --- a/src/entity.cpp +++ b/src/entity.cpp @@ -16,8 +16,8 @@ initEntity(Entity* e, { e->num_meshes = mdl->num_meshes; e->meshes = ARENA_ALLOC(arena, GLmesh, e->num_meshes); - e->xform = ARENA_ALLOC(arena, glm::mat4, 1); - *e->xform = glm::mat4(1.f); + e->model_xform = ARENA_ALLOC(arena, glm::mat4, 1); + *e->model_xform = glm::mat4(1.f); e->name = arenaCopyCStr(arena, name); e->diffuse_texture = getGLTexture(gl_ctx, mdl->diffuse_texture); @@ -44,18 +44,19 @@ initEntity(Entity* e, void setEntityPosition(Entity* e, glm::vec3 pos) { - *e->xform = glm::translate(*e->xform, pos); + *e->model_xform = glm::translate(*e->model_xform, pos); } void rotateEntity(Entity* e, glm::vec3 axis, float radians) { - *e->xform = glm::rotate(*e->xform, radians, axis); + *e->model_xform = glm::rotate(*e->model_xform, radians, axis); } void scaleEntity(Entity* e, float scale) { - *e->xform = glm::scale(*e->xform, glm::vec3(scale, scale, scale)); + *e->model_xform = + glm::scale(*e->model_xform, glm::vec3(scale, scale, scale)); } diff --git a/src/entity.h b/src/entity.h index 4c5a1c0..721562b 100644 --- a/src/entity.h +++ b/src/entity.h @@ -12,7 +12,7 @@ struct Entity u32 num_meshes; GLmesh* meshes; GLTexture* diffuse_texture; // NOTE: pointer into gl_ctx->textures array - glm::mat4* xform; + glm::mat4* model_xform; char* name; }; diff --git a/src/shader.cpp b/src/shader.cpp index 59a1e6d..4010789 100644 --- a/src/shader.cpp +++ b/src/shader.cpp @@ -68,7 +68,7 @@ addShaderProgram(MemoryArena* arena, // NOTE: we call this here because we can only make the GL_MAX* // queries after at least one shader has been linked initCTXSizes(gl_ctx); - s->model_xform_id = glGetUniformLocation(s->prog_id, "model_xform"); + s->node_xform_id = glGetUniformLocation(s->prog_id, "node_xform"); // TODO: add sampler uniform detection in dynamic shader parsing s->sampler_id = glGetUniformLocation(s->prog_id, "sampler"); glDetachShader(s->prog_id, vs_id); @@ -166,14 +166,14 @@ getGLTexture(GLContext* gl_ctx, Texture* diffuse_img) void renderVAO(GLmesh* glmesh, - glm::mat4* model_xform, + glm::mat4* node_xform, ShaderProgram* shader, GLuint tex_id) { glUseProgram(shader->prog_id); glBindVertexArray(glmesh->vao_id); - glUniformMatrix4fv(shader->model_xform_id, 1, GL_FALSE, - (float*) model_xform); + glUniformMatrix4fv(shader->node_xform_id, 1, GL_FALSE, + (float*) node_xform); if (tex_id > 0) { glBindTexture(GL_TEXTURE_2D, tex_id); @@ -237,8 +237,8 @@ initGLmesh(const Mesh& m, u32 num_mappings, GLenum draw_mode) glm.num_vertex_attrib_buffers = num_mappings; glm.vertex_attrib_buffers = UTIL_ALLOC(num_mappings, GLBuffer); glm.element_buf = UTIL_ALLOC(1, GLBuffer); - glm.model_xform = UTIL_ALLOC(1, glm::mat4); - *glm.model_xform = glm::mat4(1); + glm.node_xform = UTIL_ALLOC(1, glm::mat4); + *glm.node_xform = glm::mat4(1); return glm; } diff --git a/src/shader.h b/src/shader.h index 28add00..9dff3a4 100644 --- a/src/shader.h +++ b/src/shader.h @@ -64,7 +64,7 @@ struct ShaderProgram { GLuint prog_id; GLuint xforms_ubo_id; - GLuint model_xform_id; + GLuint node_xform_id; GLint sampler_id; u32 num_blocks; @@ -131,7 +131,7 @@ struct GLmesh GLenum draw_mode; // NOTE: GL_LINES, GL_TRIANGLES GLenum usage; // NOTE: GL_STATIC_DRAW, GL_DYNAMIC_DRAW - glm::mat4* model_xform; + glm::mat4* node_xform; u32 num_vertex_attrib_buffers; GLBuffer* vertex_attrib_buffers; @@ -164,7 +164,7 @@ const glm::vec3 DEFAULT_LOOK_POS = { 0, 0, 0 }; // NOTE: every shader program is assumed to have one uniform block named // "matrices" that contains the projection and view matrices, and one uniform -// named "model_xform" for the model matrix +// named "node_xform" for the node matrix bool addShaderProgram(MemoryArena* arena, GLContext* gl_ctx, const char* vs, @@ -182,7 +182,7 @@ ShaderProgram* getFreeShader(GLContext* gl_ctx); GLTexture* getGLTexture(GLContext* gl_ctx, Texture* diffuse_img); void renderVAO(GLmesh* glmesh, - glm::mat4* model_xform, + glm::mat4* node_xform, ShaderProgram* shader, GLuint tex_id = 0); diff --git a/src/tangerine.cpp b/src/tangerine.cpp index 08994ed..0115e54 100644 --- a/src/tangerine.cpp +++ b/src/tangerine.cpp @@ -174,7 +174,8 @@ renderFrame(RenderState* rs, const GLClearColor& clear_col) for (u32 k = 0; k < e->num_meshes; k++) { GLmesh& glm = e->meshes[k]; - renderVAO(&glm, e->xform, rg->shader, e->diffuse_texture->id); + renderVAO(&glm, e->model_xform, rg->shader, + e->diffuse_texture->id); } } } diff --git a/src/tangerine.h b/src/tangerine.h index 0112195..b6cf09a 100644 --- a/src/tangerine.h +++ b/src/tangerine.h @@ -14,8 +14,7 @@ /* * === TODO: === -* - rename instances of 'model_xform' that refer to a mesh node to something -* like node_xform. model_xform should be reserved for the entity node +* - move default shaders out of git-lfs * - full lighting model * - test complex entities * - need a separate GLBufferToAttribMapping for each mesh on an entity @@ -45,6 +44,8 @@ * - add a LOGF macro for printf style logging * - replace instances of printf * - rename data structures to be in the new format, eg) UpperCaseStyleNames +* - rename instances of 'model_xform' that refer to a mesh node to something +* like node_xform. model_xform should be reserved for the entity node */