summaryrefslogtreecommitdiffstats
path: root/Projects
diff options
context:
space:
mode:
authorassiduous <assiduous@diligentgraphics.com>2020-01-31 05:37:55 +0000
committerassiduous <assiduous@diligentgraphics.com>2020-01-31 05:37:55 +0000
commitfd1ed1c23713de58b817ad2bbe2d027c9d1e04cb (patch)
treefb3e6908266f9862c4db5cca846cd1d50eae4c0d /Projects
parentMerge pull request #71 from ahcox/ahc-001-build_instructions_ubuntu (diff)
downloadDiligentEngine-fd1ed1c23713de58b817ad2bbe2d027c9d1e04cb.tar.gz
DiligentEngine-fd1ed1c23713de58b817ad2bbe2d027c9d1e04cb.zip
Implemented C API
Diffstat (limited to 'Projects')
-rw-r--r--Projects/Asteroids/src/WinWrapper.cpp6
-rw-r--r--Projects/Asteroids/src/asteroids_DE.cpp44
-rw-r--r--Projects/Asteroids/src/asteroids_DE.h8
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
{