También se busca archivos de shader en carpeta padre

En entornos como CLion el ejecutable se ejecuta en una carpeta "build" en vez de directamente
donde el código. En ese caso, los shaders no se encuentran en el directorio local sino en el padre.

Para que el programa se ejecute correctamente en estos entornos, primero busca en el directorio local
y si no los encuentra, en el padre.
parent f185c956
Showing with 16 additions and 2 deletions
......@@ -153,7 +153,14 @@ namespace PAG {
vertexShader = leerArchivo(nombreVertexShader);
} catch (std::runtime_error &e) {
PAG::log << "No se pudo leer el archivo \"" << nombreVertexShader << "\"" << std::endl;
return;
PAG::log << "Intentando en carpeta padre (\"../" << nombreVertexShader << "\"). ";
try {
vertexShader = leerArchivo("../" + nombreVertexShader);
} catch (std::runtime_error &e) {
PAG::log << "No encontrado" << std::endl;
return;
}
PAG::log << "Encontrado" << std::endl;
}
std::string fragmentShader;
......@@ -161,7 +168,14 @@ namespace PAG {
fragmentShader = leerArchivo(nombreFragmentShader);
} catch (std::runtime_error &e) {
PAG::log << "No se pudo leer el archivo \"" << nombreFragmentShader << "\"" << std::endl;
return;
PAG::log << "Intentando en carpeta padre (\"../" << nombreFragmentShader << "\"). ";
try {
fragmentShader = leerArchivo("../" + nombreFragmentShader);
} catch (std::runtime_error &e) {
PAG::log << "No encontrado" << std::endl;
return;
}
PAG::log << "Encontrado" << std::endl;
}
idVS = glCreateShader(GL_VERTEX_SHADER);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment