如何更改分辨率并将整个游戏扩展到新的分辨率?我希望我的游戏有一个基本分辨率,当我改变它以拉伸到新的分辨率时。我看到了一些类似的问题,但所有答案都表明我应该更改演示参数。如果我这样做,我的屏幕分辨率会改变,但我所有其他对象的大小保持不变并且绘制在错误的位置。
我使用 LPD3DXSPRITE 对象将纹理绘制到屏幕上,一些 DirectX 文本和定义如下的顶点:
#define D3DFVF_VERTEX (D3DFVF_XYZRHW | D3DFVF_DIFFUSE)
我尝试将 D3DXSPRITE_OBJECTSPACE 放在 sprite->Begin() 并使用投影、视图和世界矩阵,但没有成功。
有人可以告诉我这种方法是否可行,我该怎么做?我还阅读了另一种建议渲染到表面,然后拉伸表面的方法,但我不知道如何实现。我是 DirectX 的初学者。我用谷歌搜索了第二种方法,但找不到解释它的人,而且我认为我不能从精灵绘制到表面。
编辑:
我设法使用 CreateRenderTarget、SetRenderTarget 和 StretchRect 方法做到这一点,首先打印到表面,然后在后台缓冲区上拉伸它。