|
|
|
|
@ -166,7 +166,7 @@ getGLTexture(GLContext* gl_ctx, Texture* diffuse_img)
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void |
|
|
|
|
renderVAO(GLmesh* glmesh, |
|
|
|
|
renderVAO(GLMesh* glmesh, |
|
|
|
|
glm::mat4* node_xform, |
|
|
|
|
ShaderProgram* shader, |
|
|
|
|
GLuint tex_id) |
|
|
|
|
@ -228,10 +228,10 @@ getVertexAttribByName(ShaderProgram* shader, const char* name)
|
|
|
|
|
return nullptr; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
GLmesh |
|
|
|
|
initGLmesh(const Mesh& m, u32 num_mappings, GLenum draw_mode) |
|
|
|
|
GLMesh |
|
|
|
|
initGLMesh(const Mesh& m, u32 num_mappings, GLenum draw_mode) |
|
|
|
|
{ |
|
|
|
|
GLmesh glm = {0}; |
|
|
|
|
GLMesh glm = {0}; |
|
|
|
|
glm.num_indices = m.num_indices; |
|
|
|
|
glm.draw_mode = draw_mode; |
|
|
|
|
glm.usage = GL_STATIC_DRAW; // TODO: logic for updating dynamic meshes
|
|
|
|
|
@ -254,9 +254,9 @@ initGLAttribBuffer(GLBuffer* buf, GLenum target, GLVertexAttrib* attrib)
|
|
|
|
|
buf->name = utilAllocateCStr(attrib->name); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// FIXME: might as well pass in pointer to GLmesh, since that's how we're
|
|
|
|
|
// going to use this, can void copying GLmesh twice that way
|
|
|
|
|
GLmesh |
|
|
|
|
// FIXME: might as well pass in pointer to GLMesh, since that's how we're
|
|
|
|
|
// going to use this, can void copying GLMesh twice that way
|
|
|
|
|
GLMesh |
|
|
|
|
loadGLMesh(const Mesh& m, |
|
|
|
|
GLenum draw_mode, |
|
|
|
|
GLuint diffuse_texture_id, |
|
|
|
|
@ -265,7 +265,7 @@ loadGLMesh(const Mesh& m,
|
|
|
|
|
{ |
|
|
|
|
// NOTE: need to use freeGLMesh() when freeing because we're not storing
|
|
|
|
|
// the GLBuffers on a memory arean (yet)
|
|
|
|
|
GLmesh glm = initGLmesh(m, num_mappings, draw_mode); |
|
|
|
|
GLMesh glm = initGLMesh(m, num_mappings, draw_mode); |
|
|
|
|
glm.tex_id = diffuse_texture_id; |
|
|
|
|
glGenVertexArrays(1, &glm.vao_id); |
|
|
|
|
glBindVertexArray(glm.vao_id); |
|
|
|
|
@ -308,7 +308,7 @@ loadGLMesh(const Mesh& m,
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void |
|
|
|
|
freeGLMesh(GLmesh* glm) |
|
|
|
|
freeGLMesh(GLMesh* glm) |
|
|
|
|
{ |
|
|
|
|
if (glm) { |
|
|
|
|
for (u32 i = 0; i < glm->num_vertex_attrib_buffers; i++) |
|
|
|
|
@ -316,7 +316,7 @@ freeGLMesh(GLmesh* glm)
|
|
|
|
|
|
|
|
|
|
utilSafeFree(glm->vertex_attrib_buffers); |
|
|
|
|
utilSafeFree(glm->element_buf); |
|
|
|
|
// NOTE: don't free the GLmesh because it is part of a memory arena
|
|
|
|
|
// NOTE: don't free the GLMesh because it is part of a memory arena
|
|
|
|
|
//utilSafeFree(glm);
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|