// RB begin void idRenderProgManager::BindShader( int progIndex, int vIndex, int fIndex, bool builtin ) { if( currentVertexShader == vIndex && currentFragmentShader == fIndex ) { return; } if( builtin ) { currentVertexShader = vIndex; currentFragmentShader = fIndex; // vIndex denotes the GLSL program if( vIndex >= 0 && vIndex < glslPrograms.Num() ) { currentRenderProgram = vIndex; RENDERLOG_PRINTF( "Binding GLSL Program %s\n", glslPrograms[vIndex].name.c_str() ); glUseProgram( glslPrograms[vIndex].progId ); } } else { if( progIndex == -1 ) { // RB: FIXME linear search for( int i = 0; i < glslPrograms.Num(); ++i ) { if( ( glslPrograms[i].vertexShaderIndex == vIndex ) && ( glslPrograms[i].fragmentShaderIndex == fIndex ) ) { progIndex = i; break; } } } currentVertexShader = vIndex; currentFragmentShader = fIndex; if( progIndex >= 0 && progIndex < glslPrograms.Num() ) { currentRenderProgram = progIndex; RENDERLOG_PRINTF( "Binding GLSL Program %s\n", glslPrograms[progIndex].name.c_str() ); glUseProgram( glslPrograms[progIndex].progId ); } } }
/* =============== BindNull =============== */ void idImageManager::BindNull() { RENDERLOG_PRINTF( "BindNull()\n" ); }