|
|
|
@ -68,7 +68,7 @@ addShaderProgram(MemoryArena* arena, |
|
|
|
// NOTE: we call this here because we can only make the GL_MAX*
|
|
|
|
// NOTE: we call this here because we can only make the GL_MAX*
|
|
|
|
// queries after at least one shader has been linked
|
|
|
|
// queries after at least one shader has been linked
|
|
|
|
initCTXSizes(gl_ctx); |
|
|
|
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
|
|
|
|
// TODO: add sampler uniform detection in dynamic shader parsing
|
|
|
|
s->sampler_id = glGetUniformLocation(s->prog_id, "sampler"); |
|
|
|
s->sampler_id = glGetUniformLocation(s->prog_id, "sampler"); |
|
|
|
glDetachShader(s->prog_id, vs_id); |
|
|
|
glDetachShader(s->prog_id, vs_id); |
|
|
|
@ -166,14 +166,14 @@ getGLTexture(GLContext* gl_ctx, Texture* diffuse_img) |
|
|
|
|
|
|
|
|
|
|
|
void |
|
|
|
void |
|
|
|
renderVAO(GLmesh* glmesh, |
|
|
|
renderVAO(GLmesh* glmesh, |
|
|
|
glm::mat4* model_xform, |
|
|
|
glm::mat4* node_xform, |
|
|
|
ShaderProgram* shader, |
|
|
|
ShaderProgram* shader, |
|
|
|
GLuint tex_id) |
|
|
|
GLuint tex_id) |
|
|
|
{ |
|
|
|
{ |
|
|
|
glUseProgram(shader->prog_id); |
|
|
|
glUseProgram(shader->prog_id); |
|
|
|
glBindVertexArray(glmesh->vao_id); |
|
|
|
glBindVertexArray(glmesh->vao_id); |
|
|
|
glUniformMatrix4fv(shader->model_xform_id, 1, GL_FALSE, |
|
|
|
glUniformMatrix4fv(shader->node_xform_id, 1, GL_FALSE, |
|
|
|
(float*) model_xform); |
|
|
|
(float*) node_xform); |
|
|
|
|
|
|
|
|
|
|
|
if (tex_id > 0) { |
|
|
|
if (tex_id > 0) { |
|
|
|
glBindTexture(GL_TEXTURE_2D, tex_id); |
|
|
|
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.num_vertex_attrib_buffers = num_mappings; |
|
|
|
glm.vertex_attrib_buffers = UTIL_ALLOC(num_mappings, GLBuffer); |
|
|
|
glm.vertex_attrib_buffers = UTIL_ALLOC(num_mappings, GLBuffer); |
|
|
|
glm.element_buf = UTIL_ALLOC(1, GLBuffer); |
|
|
|
glm.element_buf = UTIL_ALLOC(1, GLBuffer); |
|
|
|
glm.model_xform = UTIL_ALLOC(1, glm::mat4); |
|
|
|
glm.node_xform = UTIL_ALLOC(1, glm::mat4); |
|
|
|
*glm.model_xform = glm::mat4(1); |
|
|
|
*glm.node_xform = glm::mat4(1); |
|
|
|
|
|
|
|
|
|
|
|
return glm; |
|
|
|
return glm; |
|
|
|
} |
|
|
|
} |
|
|
|
|