Browse Source

move getShader functions to shader interface

main
cinnaboot 5 years ago
parent
commit
0cf86ec626
  1. 26
      src/main.cpp
  2. 26
      src/shader.cpp
  3. 2
      src/shader.h

26
src/main.cpp

@ -68,32 +68,6 @@ initCubeMesh()
return m;
}
shader_program*
getShaderByName(const char* name, GLContext* gl_ctx)
{
u64 hash = utilFNV64a_str(name);
for (u32 i = 0; i < gl_ctx->num_shaders; i++) {
if (utilFNV64a_str(gl_ctx->shaders[i].name) == hash)
return &gl_ctx->shaders[i];
}
printf("%s(), shader not found, %s\n", __FUNCTION__, name);
return nullptr;
}
shader_program*
getShaderByID(GLContext* gl_ctx, GLuint prog_id)
{
for (u32 i = 0; i < gl_ctx->num_shaders; i++) {
if (gl_ctx->shaders[i].prog_id)
return &gl_ctx->shaders[i];
}
printf("%s(), shader not found, %d\n", __FUNCTION__, prog_id);
return nullptr;
}
// NOTE: equivalent to rgAppend() in libTangerine
model*
getModel(RenderState* rs, const char* filepath)

26
src/shader.cpp

@ -107,6 +107,32 @@ addShaderProgram(memory_arena* arena,
return false;
}
shader_program*
getShaderByName(const char* name, GLContext* gl_ctx)
{
u64 hash = utilFNV64a_str(name);
for (u32 i = 0; i < gl_ctx->num_shaders; i++) {
if (utilFNV64a_str(gl_ctx->shaders[i].name) == hash)
return &gl_ctx->shaders[i];
}
printf("%s(), shader not found, %s\n", __FUNCTION__, name);
return nullptr;
}
shader_program*
getShaderByID(GLContext* gl_ctx, GLuint prog_id)
{
for (u32 i = 0; i < gl_ctx->num_shaders; i++) {
if (gl_ctx->shaders[i].prog_id)
return &gl_ctx->shaders[i];
}
printf("%s(), shader not found, %d\n", __FUNCTION__, prog_id);
return nullptr;
}
void
renderVAO(GLmesh* glmesh)
{

2
src/shader.h

@ -137,6 +137,8 @@ bool addShaderProgram(memory_arena* arena,
const char* vs,
const char* fs,
const char* name);
shader_program* getShaderByName(const char* name, GLContext* gl_ctx);
shader_program* getShaderByID(GLContext* gl_ctx, GLuint prog_id);
void renderVAO(GLmesh* glmesh);
GLmesh loadGLMesh(shader_program* s,
const mesh& m,

Loading…
Cancel
Save