DualParaboloidConversion(const GLShaderManager& shaderManager) :
     m_Program(shaderManager.buildProgram({
         "cube_mapping/cubeMapUtils.cs",
         getCubeMapSphereTextureShader(".cs"),
         "cube_mapping/cubeMapsToDualParaboloidMapBuffers.cs"
     })) {
 }
 ConvertPass2(const GLShaderManager& shaderManager) :
     m_Program(shaderManager.buildProgram({
         "cube_mapping/cubeMapUtils.cs",
         getCubeMapSphereTextureShader(".cs"),
         "cube_mapping/cubeMapsToSphericalMapBuffers.cs"
     })) {
 }
 RenderPass(const GLShaderManager& shaderManager,
            const std::vector<std::string>& shaders):
     m_Program(shaderManager.buildProgram(
                 concat(std::vector<std::string>({
                           "cube_mapping/cubeMapping.vs",
                           "cube_mapping/cubeMapping.gs"}),
                          shaders))) {
 }
 DrawPass(const GLShaderManager& shaderManager):
     m_Program(shaderManager.buildProgram({
         "utils.fs",
         "image.vs",
         "cube_mapping/cubeMapUtils.fs",
         getCubeMapSphereTextureShader(".fs"),
         "cube_mapping/drawCubeMap.fs"
     })) {
 }
GLFlatForwardRenderPass::GLFlatForwardRenderPass(const GLShaderManager &shaderManager):
    m_Program(shaderManager.buildProgram({"forwardPass.vs", "flatForwardPass.fs"})) {
}
GLVoxelizerTripiana2009::GLVoxelizerTripiana2009(const GLShaderManager& shaderManager):
    m_Program(shaderManager.buildProgram({ "voxskel/Voxskel.vs", "voxskel/Voxskel.gs", "voxskel/Voxskel.fs" })) {
}