public void SetDistortionConfig(ulong effect, DistortionEffectConfiguration config, float transitionSeconds) { transitionSeconds = Utility.Clamper.Clamp(transitionSeconds, 0.0f, float.MaxValue); CacheRenderStageModelInVisitor(effect); _renderStageVisitor.CachedDistortionEffectStageModel?.SetEffectTransition(ref config, ref transitionSeconds); }
public void SetDistortionConfig(IDistortionStage effect, DistortionEffectConfiguration config, float transitionSeconds) { if (effect == null) { throw new Yak2DException("Unable to set distortion effect as stage passed is null"); } SetDistortionConfig(effect.Id, config, transitionSeconds); }
public void SetEffectTransition(ref DistortionEffectConfiguration 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; }
public DistortionStageModel(IDrawQueueGroup queues, IDrawStageBatcher batcher, ISystemComponents systemComponents, IGpuSurfaceManager surfaceManager, uint internalSurfaceWidth, uint internalSurfaceHeight) : base(batcher, queues, BlendState.Alpha) { _systemComponents = systemComponents; _surfaceManager = surfaceManager; CreateAndSetPixelSizeUniform(internalSurfaceWidth, internalSurfaceHeight); CreateSurfaces(internalSurfaceWidth, internalSurfaceHeight); _current = new DistortionEffectConfiguration { DistortionScalar = 20.0f //Should scale in relation to window height to keep effect consistent. is turned into a vector using aspect ratio in renderer }; }