protected override ITextureFilter CreateFilter(ITextureFilter sourceFilter) { // get MPDN to scale image to target size first sourceFilter += new Resizer { ResizerOption = ResizerOption.TargetSize100Percent }; // apply our blue tint var blueTint = CompileShader("BlueTintSm3.hlsl") .Configure(linearSampling: false, arguments: new[] { 0.25f, 0.5f, 0.75f }); return(sourceFilter.Apply(blueTint)); }
protected override ITextureFilter CreateFilter(ITextureFilter sourceFilter) { // get MPDN to scale image to target size first sourceFilter += new Resizer { ResizerOption = ResizerOption.TargetSize100Percent }; // apply our blue tint var blueTint = new Shader(FromFile("BlueTintSm3.hlsl")) { LinearSampling = false, Arguments = new[] { 0.25f, 0.5f, 0.75f } }; return(sourceFilter.Apply(blueTint)); }
protected override ITextureFilter CreateFilter(ITextureFilter input) { if (!Renderer.IsDx11Avail) { return(new NullFilter()); // display blank screen on purpose } // get MPDN to scale image to target size first input += new Resizer { ResizerOption = ResizerOption.TargetSize100Percent }; // apply our blue tint var blueTint = new Shader11(FromFile("BlueTintSm5.hlsl", "ps_5_0")) { LinearSampling = false, Arguments = new[] { 0.25f, 0.5f, 0.75f } }; return(input.Apply(blueTint)); }
protected override ITextureFilter CreateFilter(ITextureFilter sourceFilter) { if (!Renderer.IsDx11Avail || Renderer.RenderQuality.PerformanceMode()) { return(new NullFilter()); // display blank screen on purpose } // get MPDN to scale image to target size first sourceFilter += new Resizer { ResizerOption = ResizerOption.TargetSize100Percent }; // apply our blue tint var width = sourceFilter.Size().Width; var height = sourceFilter.Size().Height; var blueTint = new ComputeShader(FromFile("BlueTintDirectCompute.hlsl", "cs_5_0")) { ThreadGroupX = width / 32 + 1, ThreadGroupY = height / 32 + 1, Arguments = new[] { 0.25f, 0.5f, 0.75f } }; return(sourceFilter.Apply(blueTint)); }