如何在XNA中保存RenderTarget

时间:2018-10-29 16:46:16

标签: c# xna drawing rendertarget

'你好,

我正在尝试绘制到RenderTarget2D,然后将其绘制到屏幕上。问题是我在何时何地执行此方法的方法称为在我使用的SpriteBatch中分配给GraphicsDevice的RenderTarget不一定是后缓冲区,因此调用SetRenderTarget(null)不会削减它。不幸的是,GraphicsDevice仅具有GetRenderTargets()方法,该方法返回RenderTargetBindings数组,而该数组又仅包含纹理,而不是RenderTarget2D-s。因此,在切换到新版本之前,我无法将当前使用的RenderTarget2D保存为RenderTarget2D。

代码

public static void drawingMethod(SpriteBatch sb/*, stuff for drawing*/)
            {
            RenderTarget2D temp = new RenderTarget2D(sb.GraphicsDevice, X, Y);
            RenderTarget2D save = ????
            sb.GraphicsDevice.SetRenderTarget(temp);
            sb.Begin();

            //Drawing things here.

            sb.End();

            sb.GraphicsDevice.SetRenderTarget(save);

            sb.Begin();

            sb.Draw(temp, new Vector(0, 0), Color.White);

            sb.End();
            }

有什么想法吗?

Ty,
僵尸

0 个答案:

没有答案