Exemple #1
0
        public void ApplyPostEffect(
            D3D11.ShaderResourceView sourceRenderTarget,
            D3D11.ShaderResourceView sourceDepthStencil,
            D3D11.RenderTargetView destRenderTarget,
            PostProcessing.PostEffect effect)
        {
            D3D11.DeviceContext deviceContext = deviceResources.DeviceContext;
            // No rendering directly to DepthStencil
            deviceContext.OutputMerger.SetRenderTargets(null, destRenderTarget);

            deviceContext.InputAssembler.PrimitiveTopology = PrimitiveTopology.TriangleStrip;
            deviceContext.InputAssembler.InputLayout       = effect.Shader.InputLayout;

            deviceContext.VertexShader.Set(effect.Shader.VertexShader);
            deviceContext.PixelShader.Set(effect.Shader.PixelShader);

            deviceContext.PixelShader.SetShaderResource(0, sourceRenderTarget);
            deviceContext.PixelShader.SetShaderResource(1, sourceDepthStencil);

            deviceContext.PixelShader.SetSampler(0, sampler);

            deviceContext.Draw(4, 0);

            // Reset
            deviceContext.OutputMerger.SetRenderTargets(
                renderTargetHandler.GetDepthStencilView(),
                renderTargetHandler.GetRenderTargetView()
                );
        }
 public void AttachEffect(PostEffect effect)
 {
     AttachEffect(effect, effect.Shader.Alias);
 }
 public void AttachEffect(PostEffect effect, string alias)
 {
     Logger.Write(LogType.Debug, "Added effect using Shader: {0}", alias);
     effects.Add(alias, effect);
 }