예제 #1
0
파일: Stages.cs 프로젝트: AlzPatz/yak2d
        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);
        }
예제 #2
0
파일: Stages.cs 프로젝트: AlzPatz/yak2d
        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);
        }
예제 #3
0
        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;
        }
예제 #4
0
        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
            };
        }