mirror of https://github.com/bkaradzic/bgfx
Shaderc console out (#2758)
* Add support to output compiled shader to stdout * Whitespace formating fixes * Updated shaderc cli stdout output option to "--stdout"
This commit is contained in:
parent
cb857c3cd3
commit
11ba8de2d1
|
@ -1007,6 +1007,7 @@ namespace bgfx
|
|||
" -f <file path> Input file path.\n"
|
||||
" -i <include path> Include path (for multiple paths use -i multiple times).\n"
|
||||
" -o <file path> Output file path.\n"
|
||||
" --stdout Output to console.\n"
|
||||
" --bin2c [array name] Generate C header file. If array name is not specified base file name will be used as name.\n"
|
||||
" --depends Generate makefile style depends file.\n"
|
||||
" --platform <platform> Target platform.\n"
|
||||
|
@ -1068,7 +1069,7 @@ namespace bgfx
|
|||
return word;
|
||||
}
|
||||
|
||||
bool compileShader(const char* _varying, const char* _comment, char* _shader, uint32_t _shaderLen, Options& _options, bx::FileWriter* _writer)
|
||||
bool compileShader(const char* _varying, const char* _comment, char* _shader, uint32_t _shaderLen, Options& _options, bx::WriterI* _writer)
|
||||
{
|
||||
uint32_t profile_id = 0;
|
||||
|
||||
|
@ -2633,10 +2634,11 @@ namespace bgfx
|
|||
return bx::kExitFailure;
|
||||
}
|
||||
|
||||
bool consoleOut = cmdLine.hasArg("stdout");
|
||||
const char* outFilePath = cmdLine.findOption('o');
|
||||
if (NULL == outFilePath)
|
||||
if (NULL == outFilePath && !consoleOut)
|
||||
{
|
||||
help("Output file name must be specified.");
|
||||
help("Output file name must be specified or use \"--stdout\" to output to stdout.");
|
||||
return bx::kExitFailure;
|
||||
}
|
||||
|
||||
|
@ -2649,7 +2651,7 @@ namespace bgfx
|
|||
|
||||
Options options;
|
||||
options.inputFilePath = filePath;
|
||||
options.outputFilePath = outFilePath;
|
||||
options.outputFilePath = consoleOut ? "" : outFilePath;
|
||||
options.shaderType = bx::toLower(type[0]);
|
||||
|
||||
options.disasm = cmdLine.hasArg('\0', "disasm");
|
||||
|
@ -2815,25 +2817,31 @@ namespace bgfx
|
|||
|
||||
bx::FileWriter* writer = NULL;
|
||||
|
||||
if (!bin2c.isEmpty() )
|
||||
if (!consoleOut)
|
||||
{
|
||||
writer = new Bin2cWriter(bin2c);
|
||||
}
|
||||
else
|
||||
{
|
||||
writer = new bx::FileWriter;
|
||||
if (!bin2c.isEmpty())
|
||||
{
|
||||
writer = new Bin2cWriter(bin2c);
|
||||
}
|
||||
else
|
||||
{
|
||||
writer = new bx::FileWriter;
|
||||
}
|
||||
|
||||
if (!bx::open(writer, outFilePath))
|
||||
{
|
||||
bx::printf("Unable to open output file '%s'.\n", outFilePath);
|
||||
return bx::kExitFailure;
|
||||
}
|
||||
}
|
||||
|
||||
if (!bx::open(writer, outFilePath) )
|
||||
compiled = compileShader(varying, commandLineComment.c_str(), data, size, options, consoleOut ? bx::getStdOut() : writer);
|
||||
|
||||
if (!consoleOut)
|
||||
{
|
||||
bx::printf("Unable to open output file '%s'.\n", outFilePath);
|
||||
return bx::kExitFailure;
|
||||
bx::close(writer);
|
||||
delete writer;
|
||||
}
|
||||
|
||||
compiled = compileShader(varying, commandLineComment.c_str(), data, size, options, writer);
|
||||
|
||||
bx::close(writer);
|
||||
delete writer;
|
||||
}
|
||||
|
||||
if (compiled)
|
||||
|
|
Loading…
Reference in New Issue