diff options
| author | Yong He <yonghe@outlook.com> | 2021-04-05 13:31:05 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-04-05 13:31:05 -0700 |
| commit | 086ecf41fa21138899960bb9805bc8ced91690f0 (patch) | |
| tree | c98af81ffc28371a9334e71987a85f9e88bce678 /examples/shader-toy | |
| parent | dd662f5cda97e7a6720ef526509a772a06112d4a (diff) | |
Transient root shader object. (#1782)
Diffstat (limited to 'examples/shader-toy')
| -rw-r--r-- | examples/shader-toy/main.cpp | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/examples/shader-toy/main.cpp b/examples/shader-toy/main.cpp index a142c3c15..40c97e0f4 100644 --- a/examples/shader-toy/main.cpp +++ b/examples/shader-toy/main.cpp @@ -286,7 +286,6 @@ Result loadShaderProgram(gfx::IDevice* device, ComPtr<gfx::IShaderProgram>& outS } ComPtr<IShaderProgram> gShaderProgram; -ComPtr<gfx::IShaderObject> gRootObject[kSwapchainImageCount]; ComPtr<gfx::IPipelineState> gPipelineState; ComPtr<gfx::IBufferResource> gVertexBuffer; @@ -371,10 +370,7 @@ virtual void renderFrame(int frameIndex) override uniforms.iResolution[1] = float(windowHeight); } - gRootObject[frameIndex] = gDevice->createRootShaderObject(gShaderProgram); - auto constantBuffer = gRootObject[frameIndex]->getObject(ShaderOffset()); - constantBuffer->setData(ShaderOffset(), &uniforms, sizeof(uniforms)); - + // Encode render commands. auto encoder = commandBuffer->encodeRenderCommands(gRenderPass, gFramebuffers[frameIndex]); @@ -383,8 +379,10 @@ virtual void renderFrame(int frameIndex) override viewport.extentX = (float)windowWidth; viewport.extentY = (float)windowHeight; encoder->setViewportAndScissor(viewport); - encoder->setPipelineState(gPipelineState); - encoder->bindRootShaderObject(gRootObject[frameIndex]); + auto rootObject = encoder->bindPipeline(gPipelineState); + auto constantBuffer = rootObject->getObject(ShaderOffset()); + constantBuffer->setData(ShaderOffset(), &uniforms, sizeof(uniforms)); + encoder->setVertexBuffer(0, gVertexBuffer, sizeof(FullScreenTriangle::Vertex)); encoder->setPrimitiveTopology(PrimitiveTopology::TriangleList); encoder->draw(3); |
