|
|
|
@ -19,7 +19,7 @@ |
|
|
|
// NOTE: forward declarations
|
|
|
|
// NOTE: forward declarations
|
|
|
|
|
|
|
|
|
|
|
|
const std::string dumpTextFile(const char* filepath); |
|
|
|
const std::string dumpTextFile(const char* filepath); |
|
|
|
bool parseShader(memory_arena* arena, GLContext* gl_ctx, shader_program* s); |
|
|
|
bool parseShader(MemoryArena* arena, GLContext* gl_ctx, shader_program* s); |
|
|
|
void initCTXSizes(GLContext* gl_ctx); |
|
|
|
void initCTXSizes(GLContext* gl_ctx); |
|
|
|
bool compileAndLinkShader(shader_program* shader, |
|
|
|
bool compileAndLinkShader(shader_program* shader, |
|
|
|
const char* vert_src, |
|
|
|
const char* vert_src, |
|
|
|
@ -55,7 +55,7 @@ getShaderByHash(GLContext* gl_ctx, u64 hash) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
bool |
|
|
|
bool |
|
|
|
addShaderProgram(memory_arena* arena, |
|
|
|
addShaderProgram(MemoryArena* arena, |
|
|
|
GLContext* gl_ctx, |
|
|
|
GLContext* gl_ctx, |
|
|
|
const char* vs, |
|
|
|
const char* vs, |
|
|
|
const char* fs, |
|
|
|
const char* fs, |
|
|
|
@ -144,7 +144,7 @@ renderVAO(GLmesh* glmesh, glm::mat4* model_xform, shader_program* shader) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void |
|
|
|
void |
|
|
|
initTransforms(memory_arena* arena, |
|
|
|
initTransforms(MemoryArena* arena, |
|
|
|
transforms* xforms, |
|
|
|
transforms* xforms, |
|
|
|
gl_buffer* xform_ubo, |
|
|
|
gl_buffer* xform_ubo, |
|
|
|
GLContext* gl_ctx, |
|
|
|
GLContext* gl_ctx, |
|
|
|
@ -354,7 +354,7 @@ getGLTypeSizeStd140(GLenum e) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
const gl_uniform |
|
|
|
const gl_uniform |
|
|
|
parseUniform(memory_arena* arena, shader_program* s, u32 uniform_idx) |
|
|
|
parseUniform(MemoryArena* arena, shader_program* s, u32 uniform_idx) |
|
|
|
{ |
|
|
|
{ |
|
|
|
gl_uniform unif = {0}; |
|
|
|
gl_uniform unif = {0}; |
|
|
|
GLchar unif_name[256] = {0}; |
|
|
|
GLchar unif_name[256] = {0}; |
|
|
|
@ -378,7 +378,7 @@ parseUniform(memory_arena* arena, shader_program* s, u32 uniform_idx) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
bool |
|
|
|
bool |
|
|
|
parseShaderUniforms(memory_arena* arena, shader_program* s, GLContext* gl_ctx) |
|
|
|
parseShaderUniforms(MemoryArena* arena, shader_program* s, GLContext* gl_ctx) |
|
|
|
{ |
|
|
|
{ |
|
|
|
// NOTE: only add uniforms in the default block to the base uniform array
|
|
|
|
// NOTE: only add uniforms in the default block to the base uniform array
|
|
|
|
GLint num_uniforms_total = 0; |
|
|
|
GLint num_uniforms_total = 0; |
|
|
|
@ -417,6 +417,7 @@ initCTXSizes(GLContext* gl_ctx) |
|
|
|
glGetIntegerv(GL_MAX_FRAGMENT_UNIFORM_BLOCKS, |
|
|
|
glGetIntegerv(GL_MAX_FRAGMENT_UNIFORM_BLOCKS, |
|
|
|
&gl_ctx->max_fragment_blocks); |
|
|
|
&gl_ctx->max_fragment_blocks); |
|
|
|
glGetIntegerv(GL_MAX_UNIFORM_BLOCK_SIZE, &gl_ctx->max_ublock_size); |
|
|
|
glGetIntegerv(GL_MAX_UNIFORM_BLOCK_SIZE, &gl_ctx->max_ublock_size); |
|
|
|
|
|
|
|
glGetIntegerv(GL_MAX_VERTEX_ATTRIBS, &gl_ctx->max_vertex_attribs); |
|
|
|
|
|
|
|
|
|
|
|
#if 1 |
|
|
|
#if 1 |
|
|
|
printf("%s(), context size info set\n", __FUNCTION__); |
|
|
|
printf("%s(), context size info set\n", __FUNCTION__); |
|
|
|
@ -451,7 +452,7 @@ ctxGetUniformBlockBinding(GLContext* gl_ctx, const char* name) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
bool |
|
|
|
bool |
|
|
|
parseUniformBlocks(memory_arena* arena, shader_program* s, GLContext* gl_ctx) |
|
|
|
parseUniformBlocks(MemoryArena* arena, shader_program* s, GLContext* gl_ctx) |
|
|
|
{ |
|
|
|
{ |
|
|
|
glGetProgramiv(s->prog_id, GL_ACTIVE_UNIFORM_BLOCKS, |
|
|
|
glGetProgramiv(s->prog_id, GL_ACTIVE_UNIFORM_BLOCKS, |
|
|
|
(GLint*) &s->num_blocks); |
|
|
|
(GLint*) &s->num_blocks); |
|
|
|
@ -516,7 +517,7 @@ getAttribComponentType(GLenum type) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
bool |
|
|
|
bool |
|
|
|
parseAttributes(memory_arena* arena, shader_program* s, GLContext* gl_ctx) |
|
|
|
parseAttributes(MemoryArena* arena, shader_program* s, GLContext* gl_ctx) |
|
|
|
{ |
|
|
|
{ |
|
|
|
GLint num_attribs; |
|
|
|
GLint num_attribs; |
|
|
|
glGetProgramiv(s->prog_id, GL_ACTIVE_ATTRIBUTES, &num_attribs); |
|
|
|
glGetProgramiv(s->prog_id, GL_ACTIVE_ATTRIBUTES, &num_attribs); |
|
|
|
@ -546,7 +547,7 @@ parseAttributes(memory_arena* arena, shader_program* s, GLContext* gl_ctx) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
bool |
|
|
|
bool |
|
|
|
parseShader(memory_arena* arena, GLContext* gl_ctx, shader_program* s) |
|
|
|
parseShader(MemoryArena* arena, GLContext* gl_ctx, shader_program* s) |
|
|
|
{ |
|
|
|
{ |
|
|
|
if (parseShaderUniforms(arena, s, gl_ctx) |
|
|
|
if (parseShaderUniforms(arena, s, gl_ctx) |
|
|
|
&& parseUniformBlocks(arena, s, gl_ctx) |
|
|
|
&& parseUniformBlocks(arena, s, gl_ctx) |
|
|
|
|