【问题标题】:Dynamically resize texture on the fly动态调整纹理大小
【发布时间】:2012-12-01 14:26:26
【问题描述】:

我使用 RenderTarget2D 将我的地图绘制到屏幕上,然后再将其渲染到屏幕上,因为它很少更改,而且地图本身由许多非常小的图块组成。因此,我不是每帧都将所有图块绘制到缓冲区,而是将它们绘制到 RenderTarget2D,然后再绘制到缓冲区。

我的问题是关于 RenderTarget2D “纹理”。如果玩家要调整窗口的大小,我希望至少能够玩一点,那么在尺寸方面修改 RenderTarget2D 对象的正确方法是什么?

目前我只是在调整窗口大小时重新创建对象,这可能很好,但我想我应该要求安全,我不会错过更简单的东西。

texMap = new RenderTarget2D(GraphicsDevice, GraphicsDevice.Viewport.Width, GraphicsDevice.Viewport.Height);

【问题讨论】:

  • 请注意,我并没有真正理解我在做什么,所以应该提到我目前的方法是一个相当糟糕的方法,因为它会导致内存泄漏。也许我需要在重新创建之前手动取消分配 RenderTarget2D?

标签: c# dynamic xna texture2d rendertarget


【解决方案1】:

在创建渲染目标后无法调整其大小。在现有渲染目标上调用Dispose()(如果存在),然后创建一个新目标。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-12-09
    • 2014-07-24
    • 1970-01-01
    • 2012-10-24
    • 2014-03-19
    • 2015-11-02
    • 2023-03-14
    • 1970-01-01
    相关资源
    最近更新 更多