From 5554777188225266e2295db3588f6cb17cae0c4d Mon Sep 17 00:00:00 2001 From: Yong He Date: Mon, 11 Jan 2021 09:11:52 -0800 Subject: 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 --- examples/shader-toy/main.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'examples/shader-toy/main.cpp') diff --git a/examples/shader-toy/main.cpp b/examples/shader-toy/main.cpp index 403456036..89a40b794 100644 --- a/examples/shader-toy/main.cpp +++ b/examples/shader-toy/main.cpp @@ -88,7 +88,7 @@ void diagnoseIfNeeded(slang::IBlob* diagnosticsBlob) // The main interesting part of the host application code is where we // load, compile, inspect, and compose the Slang shader code. // -Result loadShaderProgram(gfx::Renderer* renderer, RefPtr& outShaderProgram) +Result loadShaderProgram(gfx::IRenderer* renderer, RefPtr& outShaderProgram) { // The first step in interacting with the Slang API is to create a "global session," // which represents an instance of the Slang API loaded from the library. @@ -366,7 +366,7 @@ int gWindowHeight = 768; gfx::ApplicationContext* gAppContext; gfx::Window* gWindow; -RefPtr gRenderer; +Slang::ComPtr gRenderer; RefPtr gConstantBuffer; RefPtr gPipelineLayout; @@ -385,8 +385,8 @@ Result initialize() windowDesc.userData = this; gWindow = createWindow(windowDesc); - gRenderer = createD3D11Renderer(); - Renderer::Desc rendererDesc; + createD3D11Renderer(gRenderer.writeRef()); + IRenderer::Desc rendererDesc; rendererDesc.width = gWindowWidth; rendererDesc.height = gWindowHeight; { -- cgit v1.2.3