Ejemplo n.º 1
0
        public bool RenderTransition(IFrameBuffer from, IFrameBuffer to)
        {
            if (_tween.Task.IsCompleted)
            {
                return(false);
            }
            _visitTween();
            var oldShader = AGSGame.Shader;

            _screenVectors.Render(to.Texture);
            var shader = GLShader.FromText(_graphics.GetStandardVertexShader(), FRAGMENT_SHADER, _graphics).Compile();

            if (shader == null)
            {
                return(false);
            }
            shader.Bind();
            if (!shader.SetVariable("time", _time))
            {
                shader.Unbind();
                return(false);
            }
            _screenVectors.Render(from.Texture);

            if (oldShader != null)
            {
                oldShader.Bind();
            }
            else
            {
                shader.Unbind();
            }

            return(true);
        }
Ejemplo n.º 2
0
        public IShader FromText(string vertexSource, string fragmentSource)
        {
            vertexSource   = vertexSource ?? _graphics.GetStandardVertexShader();
            fragmentSource = fragmentSource ?? _graphics.GetStandardFragmentShader();
            NamedParameter vertexParam   = new NamedParameter(nameof(vertexSource), vertexSource);
            NamedParameter fragmentParam = new NamedParameter(nameof(fragmentSource), fragmentSource);

            return(_resolver.Container.Resolve <IShader>(vertexParam, fragmentParam));
        }