From 11ca6d181df62a7ff3f7dee1c0f6724d895dbe36 Mon Sep 17 00:00:00 2001 From: Egor Yusov Date: Wed, 5 Dec 2018 22:22:12 -0800 Subject: Added cmd line option to select render backend in asteroids demo --- Projects/Asteroids/src/WinWrapper.cpp | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) (limited to 'Projects/Asteroids/src/WinWrapper.cpp') diff --git a/Projects/Asteroids/src/WinWrapper.cpp b/Projects/Asteroids/src/WinWrapper.cpp index adcb287..bb49888 100644 --- a/Projects/Asteroids/src/WinWrapper.cpp +++ b/Projects/Asteroids/src/WinWrapper.cpp @@ -410,6 +410,7 @@ int main(int argc, char** argv) gSettings.windowWidth *= dpi / 96; gSettings.windowHeight *= dpi / 96; + gSettings.mode = Settings::RenderMode::Undefined; for (int a = 1; a < argc; ++a) { if (_stricmp(argv[a], "-close_after") == 0 && a + 1 < argc) { gSettings.closeAfterSeconds = atof(argv[++a]); @@ -434,6 +435,12 @@ int main(int argc, char** argv) gSettings.lockedFrameRate = atoi(argv[++a]); } else if (_stricmp(argv[a], "-threads") == 0 && a + 1 < argc) { gSettings.numThreads = atoi(argv[++a]); + } else if (_stricmp(argv[a], "-d3d11") == 0) { + gSettings.mode = Settings::RenderMode::DiligentD3D11; + } else if (_stricmp(argv[a], "-d3d12") == 0) { + gSettings.mode = gd3d12Available ? Settings::RenderMode::DiligentD3D12 : Settings::RenderMode::Undefined; + } else if (_stricmp(argv[a], "-vk") == 0) { + gSettings.mode = gVulkanAvailable ? Settings::RenderMode::DiligentVulkan : Settings::RenderMode::Undefined; } else { fprintf(stderr, "error: unrecognized argument '%s'\n", argv[a]); fprintf(stderr, "usage: asteroids_d3d12 [options]\n"); @@ -471,13 +478,15 @@ int main(int argc, char** argv) AsteroidsSimulation asteroids(1337, NUM_ASTEROIDS, NUM_UNIQUE_MESHES, MESH_MAX_SUBDIV_LEVELS, NUM_UNIQUE_TEXTURES); - if (gVulkanAvailable) - gSettings.mode = Settings::RenderMode::DiligentVulkan; - else if (gd3d12Available) - gSettings.mode = Settings::RenderMode::DiligentD3D12; - else - gSettings.mode = Settings::RenderMode::DiligentD3D11; - + if (gSettings.mode == Settings::RenderMode::Undefined) + { + if (gVulkanAvailable) + gSettings.mode = Settings::RenderMode::DiligentVulkan; + else if (gd3d12Available) + gSettings.mode = Settings::RenderMode::DiligentD3D12; + else + gSettings.mode = Settings::RenderMode::DiligentD3D11; + } // init window class WNDCLASSEX windowClass; -- cgit v1.2.3