Refactor glslc usage
This commit is contained in:
parent
bd5cfaebd3
commit
8c1190d923
1 changed files with 16 additions and 14 deletions
|
@ -320,26 +320,28 @@ image::Bl dither::blue_noise(int width, int height, int threads,
|
||||||
|
|
||||||
// Check and compile compute shader.
|
// Check and compile compute shader.
|
||||||
{
|
{
|
||||||
std::ifstream ifs("src/blue_noise.glsl");
|
std::array<const char *, 3> filenames{
|
||||||
if (ifs.good()) {
|
"blue_noise.glsl", "src/blue_noise.glsl", "../src/blue_noise.glsl"};
|
||||||
ifs.close();
|
bool success = false;
|
||||||
if (std::system("glslc -fshader-stage=compute -o compute.spv src/blue_noise.glsl") != 0) {
|
for (const auto filename : filenames) {
|
||||||
std::clog << "WARNING: Failed to compile src/blue_noise.glsl!\n";
|
std::ifstream ifs(filename);
|
||||||
goto ENDOF_VULKAN;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
ifs = std::ifstream("../src/blue_noise.glsl");
|
|
||||||
if (ifs.good()) {
|
if (ifs.good()) {
|
||||||
ifs.close();
|
ifs.close();
|
||||||
if (std::system("glslc -fshader-stage=compute -o compute.spv ../src/blue_noise.glsl") != 0) {
|
std::string command("glslc -fshader-stage=compute -o compute.spv ");
|
||||||
std::clog << "WARNING: Failed to compile ../src/blue_noise.glsl!\n";
|
command.append(filename);
|
||||||
|
if (std::system(command.c_str()) != 0) {
|
||||||
|
std::clog << "WARNING: Failed to compile " << filename << "!\n";
|
||||||
goto ENDOF_VULKAN;
|
goto ENDOF_VULKAN;
|
||||||
|
} else {
|
||||||
|
success = true;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
std::clog << "WARNING: Unable to find blue_noise.glsl!\n";
|
|
||||||
goto ENDOF_VULKAN;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (!success) {
|
||||||
|
std::clog << "WARNING: Could not find blue_noise.glsl!\n";
|
||||||
|
goto ENDOF_VULKAN;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
ENDOF_VULKAN:
|
ENDOF_VULKAN:
|
||||||
|
|
Loading…
Reference in a new issue