public void DispatchToRenderStage(IBlur1DStageModel stage, CommandList cl, RenderCommandQueueItem command) { var surface = _surfaceManager.RetrieveSurface(command.Surface, new GpuSurfaceType[] { GpuSurfaceType.Texture, GpuSurfaceType.Internal }); var source = _surfaceManager.RetrieveSurface(command.Texture0, new GpuSurfaceType[] { GpuSurfaceType.SwapChainOutput, GpuSurfaceType.Internal });; _blur1DEffectStageRenderer.Render(cl, stage, source, surface); }
public void Render(CommandList cl, IBlur1DStageModel stage, GpuSurface source, GpuSurface target) { if (cl == null || stage == null || source == null || target == null) { _frameworkMessenger.Report("Warning: you are feeding the Blur1D Stage Renderer null inputs, aborting"); return; } //Downsample _blurSamplingRenderer.Render(cl, source, stage.LinearSampledSurface, stage.SampleType); //Blur _singlePassGaussianBlurRenderer.Render(cl, stage.TexelShiftSize, stage.NumberSamples, stage.LinearSampledSurface, stage.AnistropicallySampledSurface); //Mix _blurResultMixingRenderer.Render(cl, stage.MixAmount, source, stage.AnistropicallySampledSurface, target); }
public void CacheStageModel(IBlur1DStageModel model) => CachedBlur1dEffectModel = model;