public static void MergeTexturesGradient(RenderTarget2D textureBack, RenderTarget2D textureFront, ref RenderTarget2D output, int state, Graphics.Renderer renderer) { var fbo = renderer.CurFBO; renderer.EnableFBO(output); renderer.BeginUnscaled(); renderer.Draw(textureBack, new Rectangle(0, 0, output.Width, output.Height), Color.White); renderer.End(); renderer.MaskClear(); renderer.MaskBeginDrawOnUnScaled(); int h = output.Height; if (state > 0) { renderer.Draw(Graphics.GraphicsEngine.FadeTriangle, new Rectangle(0, 0, state, h), new Rectangle(0, 0, 1, 1), Color.White); } renderer.Draw(Graphics.GraphicsEngine.FadeTriangle, new Rectangle(state, 0, h, h), new Rectangle(0, 0, 256, 256), Color.White); if (state < output.Width - h) { //renderer.Draw(Graphics.GraphicsEngine.pixel, // new Rectangle(state + h, 0, // output.Width - state - h, h), Color.Black); } renderer.MaskUse(); renderer.Draw(textureFront, new Rectangle(0, 0, output.Width, output.Height), Color.White); renderer.End(); renderer.EnableFBO(fbo); }