diff options
| author | Egor Yusov <egor.yusov@gmail.com> | 2017-11-13 04:14:15 +0000 |
|---|---|---|
| committer | Egor Yusov <egor.yusov@gmail.com> | 2017-11-13 04:14:15 +0000 |
| commit | 1b2530749ea3dc4937cdd7aa37e5a144e6d10183 (patch) | |
| tree | de2a77d6c8ce8a33c2b3070c66549f429e43a017 /Projects/Asteroids/src/WinWrapper.cpp | |
| parent | Updated submodules (diff) | |
| download | DiligentEngine-1b2530749ea3dc4937cdd7aa37e5a144e6d10183.tar.gz DiligentEngine-1b2530749ea3dc4937cdd7aa37e5a144e6d10183.zip | |
Updated to version 2.1
Diffstat (limited to 'Projects/Asteroids/src/WinWrapper.cpp')
| -rw-r--r-- | Projects/Asteroids/src/WinWrapper.cpp | 28 |
1 files changed, 22 insertions, 6 deletions
diff --git a/Projects/Asteroids/src/WinWrapper.cpp b/Projects/Asteroids/src/WinWrapper.cpp index 2771709..9fabd17 100644 --- a/Projects/Asteroids/src/WinWrapper.cpp +++ b/Projects/Asteroids/src/WinWrapper.cpp @@ -201,6 +201,12 @@ LRESULT CALLBACK WindowProc( gSettings.submitRendering = !gSettings.submitRendering; std::cout << "Submit Rendering: " << gSettings.submitRendering << std::endl; return 0; + case 'B': + if (gSettings.mode == Settings::RenderMode::DiligentD3D12) { + gSettings.resourceBindingMode = (gSettings.resourceBindingMode + 1) % 3; + gLastFrameRenderMode = static_cast<Settings::RenderMode>(-1); + } + return 0; case VK_ADD: case VK_OEM_PLUS: @@ -217,7 +223,7 @@ LRESULT CALLBACK WindowProc( case '2': gSettings.mode = gd3d12Available ? Settings::RenderMode::NativeD3D12 : gSettings.mode; return 0; case '3': gSettings.mode = gd3d11Available ? Settings::RenderMode::DiligentD3D11 : gSettings.mode; return 0; case '4': gSettings.mode = gd3d12Available ? Settings::RenderMode::DiligentD3D12 : gSettings.mode; return 0; - //case '5': gSettings.mode = Settings::RenderMode::DiligentGL; return 0; + case '5': gSettings.mode = Settings::RenderMode::DiligentGL; return 0; case VK_ESCAPE: SendMessage(hWnd, WM_CLOSE, 0, 0); @@ -325,15 +331,15 @@ int InitWorkload(HWND hWnd, AsteroidsSimulation &asteroids) break; case Settings::RenderMode::DiligentD3D11: - gWorkloadDE = new AsteroidsDE::Asteroids(gSettings.numThreads, &asteroids, &gGUI, hWnd, Diligent::DeviceType::D3D11); + gWorkloadDE = new AsteroidsDE::Asteroids(gSettings, &asteroids, &gGUI, hWnd, Diligent::DeviceType::D3D11); break; case Settings::RenderMode::DiligentD3D12: - gWorkloadDE = new AsteroidsDE::Asteroids(gSettings.numThreads, &asteroids, &gGUI, hWnd, Diligent::DeviceType::D3D12); + gWorkloadDE = new AsteroidsDE::Asteroids(gSettings, &asteroids, &gGUI, hWnd, Diligent::DeviceType::D3D12); break; case Settings::RenderMode::DiligentGL: - gWorkloadDE = new AsteroidsDE::Asteroids(gSettings.numThreads, &asteroids, &gGUI, hWnd, Diligent::DeviceType::OpenGL); + gWorkloadDE = new AsteroidsDE::Asteroids(gSettings, &asteroids, &gGUI, hWnd, Diligent::DeviceType::OpenGL); break; } @@ -363,6 +369,8 @@ int main(int argc, char** argv) gSettings.closeAfterSeconds = atof(argv[++a]); } else if (_stricmp(argv[a], "-nod3d11") == 0) { gd3d11Available = false; + } else if (_stricmp(argv[a], "-singlethreaded") == 0) { + gSettings.multithreadedRendering = false; } else if (_stricmp(argv[a], "-warp") == 0) { gSettings.warp = true; } else if (_stricmp(argv[a], "-nod3d12") == 0) { @@ -522,6 +530,7 @@ int main(int argc, char** argv) // Update GUI { const char *ModeStr = nullptr; + const char *resBindModeStr = ""; float updateTime = 0; float renderTime = 0; switch (gSettings.mode) @@ -544,6 +553,12 @@ int main(int argc, char** argv) case Settings::RenderMode::DiligentD3D12: ModeStr = "Diligent D3D12"; gWorkloadDE->GetPerfCounters(updateTime, renderTime); + switch (gSettings.resourceBindingMode) + { + case 0: resBindModeStr = "-d";break; + case 1: resBindModeStr = "-m";break; + case 2: resBindModeStr = "-tm";break; + } break; case Settings::RenderMode::DiligentGL: @@ -551,13 +566,14 @@ int main(int argc, char** argv) gWorkloadDE->GetPerfCounters(updateTime, renderTime); break; } - float filterScale = 0.05f; + + float filterScale = 0.02f; filteredUpdateTime = filteredUpdateTime * (1.f - filterScale) + filterScale * updateTime; filteredRenderTime = filteredRenderTime * (1.f - filterScale) + filterScale * renderTime; filteredFrameTime = filteredFrameTime * (1.f - filterScale) + filterScale * (float)frameTime; char buffer[256]; - sprintf(buffer, "Asteroids %s (%dt) - %4.2f ms (%4.2f ms / %4.2f ms)", ModeStr, gSettings.multithreadedRendering ? gSettings.numThreads : 1, + sprintf(buffer, "Asteroids %s%s (%dt) - %4.2f ms (%4.2f ms / %4.2f ms)", ModeStr, resBindModeStr, gSettings.multithreadedRendering ? gSettings.numThreads : 1, 1000.f * filteredFrameTime, 1000.f * filteredUpdateTime, 1000.f * filteredRenderTime); SetWindowText(hWnd, buffer); |
