fix some broken samples and add -a option
- disable material optimizations in debug builds - add backend selection - generate materials for all backends
This commit is contained in:
committed by
Mathias Agopian
parent
41baa7bcf0
commit
306f6e1ca3
@@ -78,6 +78,8 @@ static void printUsage(char* name) {
|
||||
"Options:\n"
|
||||
" --help, -h\n"
|
||||
" Prints this message\n\n"
|
||||
" --api, -a\n"
|
||||
" Specify the backend API: opengl (default), vulkan, or metal\n\n"
|
||||
" --ibl=<path to cmgen IBL>, -i <path>\n"
|
||||
" Applies an IBL generated by cmgen's deploy option\n\n"
|
||||
" --split-view, -v\n"
|
||||
@@ -99,9 +101,10 @@ static void printUsage(char* name) {
|
||||
}
|
||||
|
||||
static int handleCommandLineArgments(int argc, char* argv[], Config* config) {
|
||||
static constexpr const char* OPTSTR = "hi:vs:n:a:c:b:";
|
||||
static constexpr const char* OPTSTR = "ha:i:vs:n:a:c:b:";
|
||||
static const struct option OPTIONS[] = {
|
||||
{ "help", no_argument, nullptr, 'h' },
|
||||
{ "api", required_argument, nullptr, 'a' },
|
||||
{ "ibl", required_argument, nullptr, 'i' },
|
||||
{ "split-view", no_argument, nullptr, 'v' },
|
||||
{ "scale", required_argument, nullptr, 's' },
|
||||
@@ -119,6 +122,17 @@ static int handleCommandLineArgments(int argc, char* argv[], Config* config) {
|
||||
case 'h':
|
||||
printUsage(argv[0]);
|
||||
exit(0);
|
||||
case 'a':
|
||||
if (arg == "opengl") {
|
||||
config->backend = Engine::Backend::OPENGL;
|
||||
} else if (arg == "vulkan") {
|
||||
config->backend = Engine::Backend::VULKAN;
|
||||
} else if (arg == "metal") {
|
||||
config->backend = Engine::Backend::METAL;
|
||||
} else {
|
||||
std::cerr << "Unrecognized backend. Must be 'opengl'|'vulkan'|'metal'." << std::endl;
|
||||
}
|
||||
break;
|
||||
case 'i':
|
||||
config->iblDirectory = arg;
|
||||
break;
|
||||
@@ -277,6 +291,10 @@ static void setup(Engine* engine, View*, Scene* scene) {
|
||||
MaterialBuilder::init();
|
||||
MaterialBuilder builder = MaterialBuilder()
|
||||
.name("DefaultMaterial")
|
||||
.targetApi(MaterialBuilder::TargetApi::ALL)
|
||||
#ifndef NDEBUG
|
||||
.optimization(MaterialBuilderBase::Optimization::NONE)
|
||||
#endif
|
||||
.material(shader.c_str())
|
||||
.specularAntiAliasing(true)
|
||||
.shading(Shading::LIT);
|
||||
|
||||
Reference in New Issue
Block a user