diff options
| author | assiduous <assiduous@diligentgraphics.com> | 2020-01-31 05:37:55 +0000 |
|---|---|---|
| committer | assiduous <assiduous@diligentgraphics.com> | 2020-01-31 05:37:55 +0000 |
| commit | fd1ed1c23713de58b817ad2bbe2d027c9d1e04cb (patch) | |
| tree | fb3e6908266f9862c4db5cca846cd1d50eae4c0d /Projects | |
| parent | Merge pull request #71 from ahcox/ahc-001-build_instructions_ubuntu (diff) | |
| download | DiligentEngine-fd1ed1c23713de58b817ad2bbe2d027c9d1e04cb.tar.gz DiligentEngine-fd1ed1c23713de58b817ad2bbe2d027c9d1e04cb.zip | |
Implemented C API
Diffstat (limited to 'Projects')
| -rw-r--r-- | Projects/Asteroids/src/WinWrapper.cpp | 6 | ||||
| -rw-r--r-- | Projects/Asteroids/src/asteroids_DE.cpp | 44 | ||||
| -rw-r--r-- | Projects/Asteroids/src/asteroids_DE.h | 8 |
3 files changed, 28 insertions, 30 deletions
diff --git a/Projects/Asteroids/src/WinWrapper.cpp b/Projects/Asteroids/src/WinWrapper.cpp index 952c3ab..ebdfc33 100644 --- a/Projects/Asteroids/src/WinWrapper.cpp +++ b/Projects/Asteroids/src/WinWrapper.cpp @@ -339,15 +339,15 @@ int InitWorkload(HWND hWnd, AsteroidsSimulation &asteroids) break; case Settings::RenderMode::DiligentD3D11: - gWorkloadDE = new AsteroidsDE::Asteroids(gSettings, &asteroids, &gGUI, hWnd, Diligent::DeviceType::D3D11); + gWorkloadDE = new AsteroidsDE::Asteroids(gSettings, &asteroids, &gGUI, hWnd, Diligent::RENDER_DEVICE_TYPE_D3D11); break; case Settings::RenderMode::DiligentD3D12: - gWorkloadDE = new AsteroidsDE::Asteroids(gSettings, &asteroids, &gGUI, hWnd, Diligent::DeviceType::D3D12); + gWorkloadDE = new AsteroidsDE::Asteroids(gSettings, &asteroids, &gGUI, hWnd, Diligent::RENDER_DEVICE_TYPE_D3D12); break; case Settings::RenderMode::DiligentVulkan: - gWorkloadDE = new AsteroidsDE::Asteroids(gSettings, &asteroids, &gGUI, hWnd, Diligent::DeviceType::Vulkan); + gWorkloadDE = new AsteroidsDE::Asteroids(gSettings, &asteroids, &gGUI, hWnd, Diligent::RENDER_DEVICE_TYPE_VULKAN); break; } diff --git a/Projects/Asteroids/src/asteroids_DE.cpp b/Projects/Asteroids/src/asteroids_DE.cpp index 214315b..e017ccb 100644 --- a/Projects/Asteroids/src/asteroids_DE.cpp +++ b/Projects/Asteroids/src/asteroids_DE.cpp @@ -39,13 +39,13 @@ # include "EngineFactoryVk.h" #endif -#include "MapHelper.h" +#include "MapHelper.hpp" #include "util.h" #include "mesh.h" #include "noise.h" #include "texture.h" -#include "StringTools.h" +#include "StringTools.hpp" #include "TextureUtilities.h" using namespace Diligent; @@ -101,7 +101,7 @@ struct SkyboxConstantBuffer // Create Direct3D device and swap chain -void Asteroids::InitDevice(HWND hWnd, DeviceType DevType) +void Asteroids::InitDevice(HWND hWnd, RENDER_DEVICE_TYPE DevType) { SwapChainDesc SwapChainDesc; SwapChainDesc.BufferCount = NUM_SWAP_CHAIN_BUFFERS; @@ -114,7 +114,7 @@ void Asteroids::InitDevice(HWND hWnd, DeviceType DevType) switch (DevType) { #if D3D11_SUPPORTED - case DeviceType::D3D11: + case RENDER_DEVICE_TYPE_D3D11: { EngineD3D11CreateInfo EngineCI; EngineCI.NumDeferredContexts = mNumSubsets - 1; @@ -122,8 +122,8 @@ void Asteroids::InitDevice(HWND hWnd, DeviceType DevType) D3D11_DEBUG_FLAG_VERIFY_COMMITTED_SHADER_RESOURCES; # if ENGINE_DLL - if (!GetEngineFactoryD3D11) - LoadGraphicsEngineD3D11(GetEngineFactoryD3D11); + if (GetEngineFactoryD3D11 == nullptr) + GetEngineFactoryD3D11 = LoadGraphicsEngineD3D11(); # endif auto* pFactoryD3D11 = GetEngineFactoryD3D11(); pFactoryD3D11->CreateDeviceAndContextsD3D11(EngineCI, &mDevice, ppContexts.data()); @@ -134,7 +134,7 @@ void Asteroids::InitDevice(HWND hWnd, DeviceType DevType) #if D3D12_SUPPORTED - case DeviceType::D3D12: + case RENDER_DEVICE_TYPE_D3D12: { EngineD3D12CreateInfo EngineCI; EngineCI.NumDeferredContexts = mNumSubsets - 1; @@ -145,8 +145,8 @@ void Asteroids::InitDevice(HWND hWnd, DeviceType DevType) EngineCI.DynamicDescriptorAllocationChunkSize[0] = 8192; # endif # if ENGINE_DLL - if (!GetEngineFactoryD3D12) - LoadGraphicsEngineD3D12(GetEngineFactoryD3D12); + if (GetEngineFactoryD3D12 == nullptr) + GetEngineFactoryD3D12 = LoadGraphicsEngineD3D12(); # endif auto* pFactoryD3D12 = GetEngineFactoryD3D12(); pFactoryD3D12->CreateDeviceAndContextsD3D12(EngineCI, &mDevice, ppContexts.data()); @@ -157,14 +157,14 @@ void Asteroids::InitDevice(HWND hWnd, DeviceType DevType) #if VULKAN_SUPPORTED - case DeviceType::Vulkan: + case RENDER_DEVICE_TYPE_VULKAN: { EngineVkCreateInfo EngineCI; EngineCI.NumDeferredContexts = mNumSubsets - 1; EngineCI.DynamicHeapSize = 64 << 20; # if ENGINE_DLL - if (!GetEngineFactoryVulkan) - LoadGraphicsEngineVk(GetEngineFactoryVulkan); + if (GetEngineFactoryVulkan == nullptr) + GetEngineFactoryVulkan = LoadGraphicsEngineVk(); # endif auto* pFactoryVk = GetEngineFactoryVulkan(); pFactoryVk->CreateDeviceAndContextsVk(EngineCI, &mDevice, ppContexts.data()); @@ -175,13 +175,11 @@ void Asteroids::InitDevice(HWND hWnd, DeviceType DevType) #if GL_SUPPORTED - case DeviceType::OpenGL: + case RENDER_DEVICE_TYPE_GL: { # if ENGINE_DLL if (GetEngineFactoryOpenGL == nullptr) - { - LoadGraphicsEngineOpenGL(GetEngineFactoryOpenGL); - } + GetEngineFactoryOpenGL = LoadGraphicsEngineOpenGL(); # endif EngineGLCreateInfo CreationAttribs; CreationAttribs.pNativeWndHandle = hWnd; @@ -197,7 +195,7 @@ void Asteroids::InitDevice(HWND hWnd, DeviceType DevType) break; } - if (DevType == DeviceType::D3D11 || DevType == DeviceType::D3D12 || DevType == DeviceType::Vulkan) + if (DevType == RENDER_DEVICE_TYPE_D3D11 || DevType == RENDER_DEVICE_TYPE_D3D12 || DevType == RENDER_DEVICE_TYPE_VULKAN) { mDeviceCtxt.Attach(ppContexts[0]); mDeferredCtxt.resize(mNumSubsets - 1); @@ -206,7 +204,7 @@ void Asteroids::InitDevice(HWND hWnd, DeviceType DevType) } } -Asteroids::Asteroids(const Settings& settings, AsteroidsSimulation* asteroids, GUI* gui, HWND hWnd, Diligent::DeviceType DevType) : +Asteroids::Asteroids(const Settings& settings, AsteroidsSimulation* asteroids, GUI* gui, HWND hWnd, Diligent::RENDER_DEVICE_TYPE DevType) : mAsteroids(asteroids), mGUI(gui) { QueryPerformanceFrequency((LARGE_INTEGER*)&mPerfCounterFreq); @@ -230,10 +228,10 @@ Asteroids::Asteroids(const Settings& settings, AsteroidsSimulation* asteroids, G const char* spriteFile = nullptr; switch (DevType) { - case DeviceType::D3D11: spriteFile = "DiligentD3D11.dds"; break; - case DeviceType::D3D12: spriteFile = "DiligentD3D12.dds"; break; - case DeviceType::OpenGL: spriteFile = "DiligentGL.dds"; break; - case DeviceType::Vulkan: spriteFile = "DiligentVk.dds"; break; + case RENDER_DEVICE_TYPE_D3D11: spriteFile = "DiligentD3D11.dds"; break; + case RENDER_DEVICE_TYPE_D3D12: spriteFile = "DiligentD3D12.dds"; break; + case RENDER_DEVICE_TYPE_GL: spriteFile = "DiligentGL.dds"; break; + case RENDER_DEVICE_TYPE_VULKAN: spriteFile = "DiligentVk.dds"; break; default: UNEXPECTED("Unexpected device type"); } mSprite.reset(new GUISprite(5, 10, 140, 50, spriteFile)); @@ -305,7 +303,7 @@ Asteroids::Asteroids(const Settings& settings, AsteroidsSimulation* asteroids, G { LayoutElement{0, 0, 3, VT_FLOAT32, false, 0, sizeof(Vertex)}, LayoutElement{1, 0, 3, VT_FLOAT32}, - LayoutElement{2, 1, 1, VT_UINT32, False, LayoutElement::FREQUENCY_PER_INSTANCE}}; + LayoutElement{2, 1, 1, VT_UINT32, False, INPUT_ELEMENT_FREQUENCY_PER_INSTANCE}}; PSODesc.GraphicsPipeline.InputLayout.LayoutElements = inputDesc; // In bindless mode we will use instance ID buffer as the third input diff --git a/Projects/Asteroids/src/asteroids_DE.h b/Projects/Asteroids/src/asteroids_DE.h index 2857ac0..afa9d49 100644 --- a/Projects/Asteroids/src/asteroids_DE.h +++ b/Projects/Asteroids/src/asteroids_DE.h @@ -13,8 +13,8 @@ #include "RenderDevice.h" #include "SwapChain.h" #include "DeviceContext.h" -#include "RefCntAutoPtr.h" -#include "ThreadSignal.h" +#include "RefCntAutoPtr.hpp" +#include "ThreadSignal.hpp" #include <map> #include <mutex> #include <atomic> @@ -30,7 +30,7 @@ namespace AsteroidsDE { class Asteroids { public: - Asteroids(const Settings &settings, AsteroidsSimulation* asteroids, GUI* gui, HWND hWnd, Diligent::DeviceType DevType); + Asteroids(const Settings &settings, AsteroidsSimulation* asteroids, GUI* gui, HWND hWnd, Diligent::RENDER_DEVICE_TYPE DevType); ~Asteroids(); void Render(float frameTime, const OrbitCamera& camera, const Settings& settings); @@ -44,7 +44,7 @@ private: void InitializeTextureData(); void CreateGUIResources(); void RenderSubset(Diligent::Uint32 SubsetNum, Diligent::IDeviceContext *pCtx, const OrbitCamera& camera, Diligent::Uint32 startIdx, Diligent::Uint32 numAsteroids); - void InitDevice(HWND hWnd, Diligent::DeviceType DevType); + void InitDevice(HWND hWnd, Diligent::RENDER_DEVICE_TYPE DevType); enum class BindingMode { |
