Mat*_*Mat 2 c# out-of-memory xna-4.0
我正在尝试将我的XNA游戏的每个渲染帧保存到硬盘.所以在每一帧中,我都称这个代码:
protected override void LoadContent()
{
....
colorRT = new RenderTarget2D(GraphicsDevice, backbufferWidth, backbufferHeight, false, SurfaceFormat.Color, DepthFormat.Depth24);
lightRT = new RenderTarget2D(GraphicsDevice, backbufferWidth, backbufferHeight, false, SurfaceFormat.Color, DepthFormat.None);
specRT = new RenderTarget2D(GraphicsDevice, backbufferWidth, backbufferHeight, false, SurfaceFormat.Color, DepthFormat.None);
....
}
using (Stream stream = File.OpenWrite("color_"+frameNumber+".png"))
{
colorRT.SaveAsPng(stream, colorRT.Width, colorRT.Height);
stream.Flush();
stream.Close();
stream.Dispose();
}
using (Stream stream = File.OpenWrite("light_" + frameNumber + ".png"))
{
lightRT.SaveAsPng(stream, lightRT.Width, lightRT.Height);
stream.Flush();
stream.Close();
stream.Dispose();
}
using (Stream stream = File.OpenWrite("spec_" + frameNumber + ".png"))
{
specRT.SaveAsPng(stream, specRT.Width, specRT.Height);
stream.Flush();
stream.Close();
stream.Dispose();
}
System.GC.Collect();
frameNumber++;
Run Code Online (Sandbox Code Playgroud)
但是如果这个代码打开了,内存消耗会上升和上升,大约半分钟后我会得到一个outOfMemory异常.我添加了flush,close,dispose和GC调用以尝试解决问题,但它并没有改变一件事.
谁知道我做错了什么?
| 归档时间: |
|
| 查看次数: |
1073 次 |
| 最近记录: |