From f834f25794cfb746079e92d58c7410b767c57208 Mon Sep 17 00:00:00 2001 From: Yong He Date: Thu, 14 Jan 2021 15:48:54 -0800 Subject: COM-ify all slang-gfx interfaces. (#1656) * COM-ify all slang-gfx interfaces. --- examples/gpu-printing/main.cpp | 39 ++++++++++++++++++++------------------- 1 file changed, 20 insertions(+), 19 deletions(-) (limited to 'examples/gpu-printing') diff --git a/examples/gpu-printing/main.cpp b/examples/gpu-printing/main.cpp index 75c083a33..03b20b969 100644 --- a/examples/gpu-printing/main.cpp +++ b/examples/gpu-printing/main.cpp @@ -8,6 +8,7 @@ using Slang::ComPtr; #include "gfx/render.h" #include "gfx/d3d11/render-d3d11.h" #include "tools/graphics-app-framework/window.h" +#include "source/core/slang-basic.h" using namespace gfx; #include @@ -69,17 +70,17 @@ ComPtr gRenderer; ComPtr gSlangSession; ComPtr gSlangModule; -RefPtr gProgram; +ComPtr gProgram; -RefPtr gPipelineLayout; -RefPtr gPipelineState; -RefPtr gDescriptorSet; +ComPtr gPipelineLayout; +ComPtr gPipelineState; +ComPtr gDescriptorSet; -Dictionary gHashedStrings; +Slang::Dictionary gHashedStrings; GPUPrinting gGPUPrinting; -RefPtr loadComputeProgram(slang::IModule* slangModule, char const* entryPointName) +ComPtr loadComputeProgram(slang::IModule* slangModule, char const* entryPointName) { ComPtr entryPoint; slangModule->findEntryPointByName(entryPointName, entryPoint.writeRef()); @@ -95,12 +96,12 @@ RefPtr loadComputeProgram(slang::IModule* slangModule, char char const* code = (char const*) codeBlob->getBufferPointer(); char const* codeEnd = code + codeBlob->getBufferSize(); - gfx::ShaderProgram::KernelDesc kernelDescs[] = + gfx::IShaderProgram::KernelDesc kernelDescs[] = { { gfx::StageType::Compute, code, codeEnd }, }; - gfx::ShaderProgram::Desc programDesc; + gfx::IShaderProgram::Desc programDesc; programDesc.pipelineType = gfx::PipelineType::Compute; programDesc.kernels = &kernelDescs[0]; programDesc.kernelCount = 2; @@ -133,21 +134,21 @@ Result execute() gProgram = loadComputeProgram(gSlangModule, "computeMain"); if(!gProgram) return SLANG_FAIL; - DescriptorSetLayout::SlotRangeDesc slotRanges[] = + IDescriptorSetLayout::SlotRangeDesc slotRanges[] = { - DescriptorSetLayout::SlotRangeDesc(DescriptorSlotType::StorageBuffer), + IDescriptorSetLayout::SlotRangeDesc(DescriptorSlotType::StorageBuffer), }; - DescriptorSetLayout::Desc descriptorSetLayoutDesc; + IDescriptorSetLayout::Desc descriptorSetLayoutDesc; descriptorSetLayoutDesc.slotRangeCount = 1; descriptorSetLayoutDesc.slotRanges = &slotRanges[0]; auto descriptorSetLayout = gRenderer->createDescriptorSetLayout(descriptorSetLayoutDesc); if(!descriptorSetLayout) return SLANG_FAIL; - PipelineLayout::DescriptorSetDesc descriptorSets[] = + IPipelineLayout::DescriptorSetDesc descriptorSets[] = { - PipelineLayout::DescriptorSetDesc( descriptorSetLayout ), + IPipelineLayout::DescriptorSetDesc( descriptorSetLayout ), }; - PipelineLayout::Desc pipelineLayoutDesc; + IPipelineLayout::Desc pipelineLayoutDesc; pipelineLayoutDesc.renderTargetCount = 1; pipelineLayoutDesc.descriptorSetCount = 1; pipelineLayoutDesc.descriptorSets = &descriptorSets[0]; @@ -176,14 +177,14 @@ Result execute() size_t printBufferSize = 4 * 1024; // use a small-ish (4KB) buffer for print output - BufferResource::Desc printBufferDesc; + IBufferResource::Desc printBufferDesc; printBufferDesc.init(printBufferSize); printBufferDesc.elementSize = sizeof(uint32_t); - printBufferDesc.cpuAccessFlags = Resource::AccessFlag::Read; // | Resource::AccessFlag::Write; - auto printBuffer = gRenderer->createBufferResource(Resource::Usage::UnorderedAccess, printBufferDesc); + printBufferDesc.cpuAccessFlags = IResource::AccessFlag::Read; // | Resource::AccessFlag::Write; + auto printBuffer = gRenderer->createBufferResource(IResource::Usage::UnorderedAccess, printBufferDesc); - ResourceView::Desc printBufferViewDesc; - printBufferViewDesc.type = ResourceView::Type::UnorderedAccess; + IResourceView::Desc printBufferViewDesc; + printBufferViewDesc.type = IResourceView::Type::UnorderedAccess; auto printBufferView = gRenderer->createBufferView(printBuffer, printBufferViewDesc); // TODO: need to copy a zero into the start of the print buffer! -- cgit v1.2.3