summaryrefslogtreecommitdiffstats
path: root/tools/gfx/render.cpp
diff options
context:
space:
mode:
authorjsmall-nvidia <jsmall@nvidia.com>2019-09-13 15:59:15 -0400
committerGitHub <noreply@github.com>2019-09-13 15:59:15 -0400
commitc2e5d2468ad6a38cdb8a067da0678302f6cc6066 (patch)
tree97c448d28e54068d84c422e9f172996b7a95f1ed /tools/gfx/render.cpp
parent0b6321b3f08c48e37e6b8256d420f05d9727fb5a (diff)
Refactor render-test to make cross platform (#1053)
* First pass of render-test refactor. * Make window construction a function that can choose an implementation. * Remove OpenGL as currently has windows dependency. * Disable Vulkan as Renderer impl has dependency on windows. * Pass Window in as parameter of 'update'. * Add win-window.cpp as was missing. * Fix warning on windows about signs during comparison.
Diffstat (limited to 'tools/gfx/render.cpp')
-rw-r--r--tools/gfx/render.cpp33
1 files changed, 33 insertions, 0 deletions
diff --git a/tools/gfx/render.cpp b/tools/gfx/render.cpp
index 44bb4fb04..785343927 100644
--- a/tools/gfx/render.cpp
+++ b/tools/gfx/render.cpp
@@ -3,6 +3,11 @@
#include "../../source/core/slang-math.h"
+#include "d3d11/render-d3d11.h"
+#include "d3d12/render-d3d12.h"
+#include "open-gl/render-gl.h"
+#include "vulkan/render-vk.h"
+
namespace gfx {
using namespace Slang;
@@ -404,4 +409,32 @@ ProjectionStyle RendererUtil::getProjectionStyle(RendererType type)
}
}
+/* static */ RendererUtil::CreateFunc RendererUtil::getCreateFunc(RendererType type)
+{
+ switch (type)
+ {
+#if SLANG_WINDOWS_FAMILY
+ case RendererType::DirectX11:
+ {
+ return &createD3D11Renderer;
+ }
+ case RendererType::DirectX12:
+ {
+ return &createD3D12Renderer;
+ }
+ case RendererType::OpenGl:
+ {
+ return &createGLRenderer;
+ }
+ case RendererType::Vulkan:
+ {
+ return &createVKRenderer;
+ }
+#endif
+
+ default: return nullptr;
+ }
+}
+
+
} // renderer_test