diff --git a/src/shader.cpp b/src/shader.cpp index 32ecaa4..026c17e 100644 --- a/src/shader.cpp +++ b/src/shader.cpp @@ -159,6 +159,16 @@ getShaderByID(GLContext* gl_ctx, GLuint prog_id) return nullptr; } +GLBuffer* +getFreeUBO(GLContext* gl_ctx) +{ + if (gl_ctx->num_ubos < gl_ctx->max_ubos) + return &gl_ctx->uniform_buffers[gl_ctx->num_ubos++]; + + LOGF(Error, "no free Uniform Buffer Objects\n"); + return nullptr; +} + GLTexture* getGLTexture(GLContext* gl_ctx, Texture* diffuse_img) { diff --git a/src/shader.h b/src/shader.h index 1c6f42f..63bcaae 100644 --- a/src/shader.h +++ b/src/shader.h @@ -186,6 +186,8 @@ ShaderProgram* getShaderByHash(GLContext* gl_ctx, u64 hash); ShaderProgram* getFreeShader(GLContext* gl_ctx); +GLBuffer* getFreeUBO(GLContext* gl_ctx); + GLTexture* getGLTexture(GLContext* gl_ctx, Texture* diffuse_img); void renderVAO(GLMesh* glmesh,