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); }
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)); }