void construct_shaders() { IShader* global_shader = shader_for_remap("*"); unsigned int numSurfaces = m_model->GetNumSurfaces(); m_shaders.reserve(numSurfaces); // now go through our surface and find our shaders, remap if needed for(unsigned int j = 0; j < numSurfaces; j++ ) { const char* surfShaderName = m_model->GetShaderNameForSurface(j); IShader* shader = shader_for_remap(surfShaderName); // Determine which shader it is going to be if( !shader ) { if( global_shader ) { shader = global_shader; } else { shader = QERApp_Shader_ForName(surfShaderName); } } // Add reference shader->IncRef(); // Done, continue m_shaders.push_back( shader ); } }
void construct_shaders() { IShader* global_shader = shader_for_remap("*"); unsigned int numSurfaces = m_model->GetNumSurfaces(); m_shaders.reserve(numSurfaces); // now go through our surface and find our shaders, remap if needed for(unsigned int j = 0; j < numSurfaces; j++ ) { const char* surfShaderName = m_model->GetShaderNameForSurface(j); IShader* shader = shader_for_remap(surfShaderName); // m_shaders.push_back((shader) ? shader : (global_shader) ? global_shader : QERApp_Shader_ForName(surfShaderName)); if( shader ) { m_shaders.push_back(shader); } else if( global_shader ) { m_shaders.push_back(global_shader); } else { m_shaders.push_back(QERApp_Shader_ForName(surfShaderName)); } } }