public BlurStageModel(IFrameworkMessenger frameworkMessenger, IStartupPropertiesCache startUpPropertiesCache, ISystemComponents systemComponents, IGpuSurfaceManager surfaceManager, IGaussianBlurWeightsAndOffsetsCache gaussianWeightsAndOffsetsCache, uint sampleSurfaceWidth, uint sampleSurfaceHeight) { _frameworkMessenger = frameworkMessenger; _startUpPropertiesCache = startUpPropertiesCache; _systemComponents = systemComponents; _surfaceManager = surfaceManager; _gaussianWeightsAndOffsetsCache = gaussianWeightsAndOffsetsCache; _sampleSurfaceWidth = sampleSurfaceWidth; _sampleSurfaceHeight = sampleSurfaceHeight; TexelShiftSize = new Vector2(1.0f / (1.0f * _sampleSurfaceWidth), 1.0f / (1.0f * _sampleSurfaceHeight)); CreateSurfaces(); _current = new BlurEffectConfiguration() { MixAmount = 0.0f, NumberOfBlurSamples = 4, ReSamplerType = ResizeSamplerType.NearestNeighbour }; _isTransitioning = false; }
public void SetBlurConfig(IBlurStage effect, BlurEffectConfiguration config, float transitionSeconds) { if (effect == null) { throw new Yak2DException("Unable to set blur2d effect as stage passed is null"); } SetBlurConfig(effect.Id, config, transitionSeconds); }
public void SetBlurConfig(ulong effect, BlurEffectConfiguration config, float transitionSeconds) { config.MixAmount = Utility.Clamper.Clamp(config.MixAmount, 0.0f, float.MaxValue); config.NumberOfBlurSamples = Utility.Clamper.Clamp(config.NumberOfBlurSamples, 0, MAX_BLUR_SAMPLE_STEPS_FROM_CENTRE); transitionSeconds = Utility.Clamper.Clamp(transitionSeconds, 0.0f, float.MaxValue); CacheRenderStageModelInVisitor(effect); _renderStageVisitor.CachedBlur2dEffectModel?.SetEffectTransition(ref config, ref transitionSeconds); }
public void SetEffectTransition(ref BlurEffectConfiguration config, ref float transitionSeconds) { transitionSeconds = Utility.Clamper.Clamp(transitionSeconds, 0.0f, float.MaxValue); //Might be duplicated clamp for this value if (transitionSeconds == 0.0f) { _current = config; _isTransitioning = false; return; } _previous = _current; _target = config; _transitionTotalTime = transitionSeconds; _transitionCurrentTime = 0.0f; _isTransitioning = true; }