コード例 #1
0
        internal void Record(CommandBuffer commandbuffer, int swapchainIndex)
        {
            ThrowIfDisposed();

            BeginDebugMarker(commandbuffer, "RenderScene");
            {
                //First render the gbuffer and shadow targets
                gbufferTechnique.Record(commandbuffer, swapchainIndex);
                shadowTechnique.Record(commandbuffer, swapchainIndex);

                //Insert barrier because bloom and ao depend on gbuffer output
                Renderer.InsertOutputReadBarrier(commandbuffer);

                bloomTechnique.Record(commandbuffer);
                aoTechnique.Record(commandbuffer, swapchainIndex);

                //Insert barrier because deferred pass depends on all other outputs
                Renderer.InsertOutputReadBarrier(commandbuffer);

                deferredTechnique.Record(commandbuffer, swapchainIndex);
            }
            EndDebugMarker(commandbuffer);

            //All added / removed objects have been taking into account so we can unset the dirty flag
            dirty = false;
        }