void gDrawCircle(GContext *context) { Program *prog = context->programs.circle; glUseProgram(prog->id); { setVectorUniforms(prog,context->translation,context->modelview_matrix,context->projection_matrix); setColorUniform(prog,context->color); drawArray(context, prog); } glUseProgram(0); #ifdef DEBUG checkError(); #endif }
void gFill(GContext *context) { Program *prog = context->programs.fill; glUseProgram(prog->id); { setVectorUniforms(prog,NULLVEC,UNIMAT,UNIMAT); setColorUniform(prog,context->color); drawArray(context, prog); } glUseProgram(0); #ifdef DEBUG checkError(); #endif }
void gDrawRing(GContext *context, float in) { Program *prog = context->programs.ring; glUseProgram(prog->id); { setVectorUniforms(prog,context->translation,context->modelview_matrix,context->projection_matrix); setColorUniform(prog,context->color); glUniform1fv(getUniform(prog,U_INNER_MUL), 1, &in); drawArray(context, prog); } glUseProgram(0); #ifdef DEBUG checkError(); #endif }
void gDrawImage(GContext *context, GImage *image) { Program *prog = context->programs.tex; glUseProgram(prog->id); { setVectorUniforms(prog,context->translation,context->modelview_matrix,context->projection_matrix); setColorUniform(prog,context->color); glActiveTexture(GL_TEXTURE0); glBindTexture(GL_TEXTURE_2D, image->_id); glUniform1i(getUniform(prog,U_TEXTURE),0); drawArray(context, prog); } glUseProgram(0); #ifdef DEBUG checkError(); #endif }
void Lib3dapp::setBaseUniforms(Program& shader, unsigned int nTex, LightingState lights, vec4 color, float opacity) { setTextureUniforms(shader, nTex); setLightingUniforms(shader, lights); setColorUniform(shader, color); setOpacityUniform(shader, opacity); }