'你好,
我正在尝试绘制到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,
僵尸