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); }