summaryrefslogtreecommitdiff
path: root/tools/graphics-app-framework
diff options
context:
space:
mode:
authorYong He <yonghe@outlook.com>2021-01-11 09:11:52 -0800
committerGitHub <noreply@github.com>2021-01-11 09:11:52 -0800
commit5554777188225266e2295db3588f6cb17cae0c4d (patch)
tree9d15992cd24d752cde1047745cf75a25e841f494 /tools/graphics-app-framework
parente24c5a6cb9c3347477b83abe084a09ae8f9fde0a (diff)
Make `gfx::Renderer` a COM interface. (#1653)
* Make `gfx::Renderer` a COM interface. This is a first step towards making the `gfx` library expose a COM compatible DLL interface. Remaining classes will come as separate PRs. * Fixup project files * Fix calling conventions * Make gfx::create*Renderer() functions increase ref count by 1 * Make renderer createFunc return via out parameter
Diffstat (limited to 'tools/graphics-app-framework')
-rw-r--r--tools/graphics-app-framework/gui.cpp2
-rw-r--r--tools/graphics-app-framework/gui.h6
-rw-r--r--tools/graphics-app-framework/model.cpp2
-rw-r--r--tools/graphics-app-framework/model.h10
4 files changed, 10 insertions, 10 deletions
diff --git a/tools/graphics-app-framework/gui.cpp b/tools/graphics-app-framework/gui.cpp
index 8208bd606..3d6039f27 100644
--- a/tools/graphics-app-framework/gui.cpp
+++ b/tools/graphics-app-framework/gui.cpp
@@ -36,7 +36,7 @@ void setNativeWindowHook(Window* window, WNDPROC proc);
#endif
-GUI::GUI(Window* window, Renderer* inRenderer)
+GUI::GUI(Window* window, IRenderer* inRenderer)
: renderer(inRenderer)
{
ImGui::CreateContext();
diff --git a/tools/graphics-app-framework/gui.h b/tools/graphics-app-framework/gui.h
index d2c52de3c..fa6fda1d1 100644
--- a/tools/graphics-app-framework/gui.h
+++ b/tools/graphics-app-framework/gui.h
@@ -4,21 +4,21 @@
#include "tools/gfx/render.h"
#include "vector-math.h"
#include "window.h"
-
+#include "slang-com-ptr.h"
#include "external/imgui/imgui.h"
namespace gfx {
struct GUI : RefObject
{
- GUI(Window* window, Renderer* renderer);
+ GUI(Window* window, IRenderer* renderer);
~GUI();
void beginFrame();
void endFrame();
private:
- RefPtr<Renderer> renderer;
+ Slang::ComPtr<IRenderer> renderer;
RefPtr<PipelineState> pipelineState;
RefPtr<DescriptorSetLayout> descriptorSetLayout;
RefPtr<PipelineLayout> pipelineLayout;
diff --git a/tools/graphics-app-framework/model.cpp b/tools/graphics-app-framework/model.cpp
index 5d3a850e4..6a61c64e5 100644
--- a/tools/graphics-app-framework/model.cpp
+++ b/tools/graphics-app-framework/model.cpp
@@ -98,7 +98,7 @@ namespace gfx
{
RefPtr<TextureResource> loadTextureImage(
- Renderer* renderer,
+ IRenderer* renderer,
char const* path)
{
int extentX = 0;
diff --git a/tools/graphics-app-framework/model.h b/tools/graphics-app-framework/model.h
index e86940244..446f57943 100644
--- a/tools/graphics-app-framework/model.h
+++ b/tools/graphics-app-framework/model.h
@@ -3,7 +3,7 @@
#include "tools/gfx/render.h"
#include "vector-math.h"
-
+#include "slang-com-ptr.h"
#include <vector>
#include <string>
@@ -65,10 +65,10 @@ struct ModelLoader
FlipWinding = 1 << 0,
};
- ICallbacks* callbacks = nullptr;
- RefPtr<Renderer> renderer;
- LoadFlags loadFlags = 0;
- float scale = 1.0f;
+ ICallbacks* callbacks = nullptr;
+ Slang::ComPtr<IRenderer> renderer;
+ LoadFlags loadFlags = 0;
+ float scale = 1.0f;
Result load(char const* inputPath, void** outModel);
};