예제 #1
0
파일: Stages.cs 프로젝트: AlzPatz/yak2d
        public void SetColourEffectsConfig(IColourEffectsStage effect, ColourEffectConfiguration config, float transitionSeconds)
        {
            if (effect == null)
            {
                throw new Yak2DException("Unable to set colour effect as stage passed is null");
            }

            SetColourEffectsConfig(effect.Id, config, transitionSeconds);
        }
예제 #2
0
파일: Stages.cs 프로젝트: AlzPatz/yak2d
        public void SetColourEffectsConfig(ulong effect, ColourEffectConfiguration config, float transitionSeconds)
        {
            config.SingleColour = Utility.Clamper.Clamp(config.SingleColour, 0.0f, 1.0f);
            config.GrayScale    = Utility.Clamper.Clamp(config.GrayScale, 0.0f, 1.0f);
            config.Colourise    = Utility.Clamper.Clamp(config.Colourise, 0.0f, 1.0f);
            config.Negative     = Utility.Clamper.Clamp(config.Negative, 0.0f, 1.0f);
            config.Opacity      = Utility.Clamper.Clamp(config.Opacity, 0.0f, 1.0f);
            transitionSeconds   = Utility.Clamper.Clamp(transitionSeconds, 0.0f, float.MaxValue);

            CacheRenderStageModelInVisitor(effect);
            _renderStageVisitor.CachedColourEffectModel?.SetEffectTransition(ref config, ref transitionSeconds);
        }
예제 #3
0
        public void SetEffectTransition(ref ColourEffectConfiguration config, ref float transitionSeconds)
        {
            transitionSeconds = Clamper.Clamp(transitionSeconds, 0.0f, float.MaxValue); //Might be duplicated clamp for this value

            if (transitionSeconds == 0.0f)
            {
                _current         = config;
                _isTransitioning = false;
                UpdateBufferAndClearColour();
                return;
            }

            _previous              = _current;
            _target                = config;
            _transitionTotalTime   = transitionSeconds;
            _transitionCurrentTime = 0.0f;
            _isTransitioning       = true;
        }
예제 #4
0
        public ColourEffectsStageModel(IFrameworkMessenger frameworkMessenger,
                                       ISystemComponents systemComponents)
        {
            _frameworkMessenger = frameworkMessenger;
            _systemComponents   = systemComponents;

            _current = new ColourEffectConfiguration()
            {
                ColourForSingleColourAndColourise = new Colour(1.0f, 1.0f, 1.0f, 1.0f),
                BackgroundClearColour             = new Colour(0.0f, 0.0f, 0.0f, 0.0f),
                SingleColour = 0.0f,
                Negative     = 0.0f,
                Colourise    = 0.0f,
                GrayScale    = 0.0f,
                Opacity      = 1.0f
            };

            _isTransitioning = false;

            CreateBuffer();

            UpdateBufferAndClearColour();
        }