使独立的DX9游戏分辨率

我怎样才能改变分辨率,把我的整个游戏扩展到新的分辨率? 我希望我的游戏有一个基本的解决scheme,当我改变它,以扩展到新的分辨率。 我看到一些类似的问题,但所有的答案都建议我改变表示参数。 如果我这样做,我的屏幕分辨率会发生变化,但是我所有的其他物体仍然保持相同的大小,并且画错了位置。

我使用LPD3DXSPRITE对象将纹理绘制到屏幕上,某些DirectX文本和顶点定义为:

#define D3DFVF_VERTEX (D3DFVF_XYZRHW | D3DFVF_DIFFUSE) 

我试图把D3DXSPRITE_OBJECTSPACE放在sprite-> Begin()中,并且使用投影,视图和世界matrix,但没有成功。

有人可以告诉我,如果这种方法是可能的,我应该怎么做? 我还读了另外一种方法,提出渲染到一个表面,然后拉伸表面,但我不知道如何实现。 我是DirectX的初学者。 我search了第二种方法,但我找不到解释它的人,我不认为我可以从一个精灵画到表面。

您可以使用direcx 9函数SetRenderTarget( http://msdn.microsoft.com/en-us/library/windows/desktop/bb174455 (v=vs.85) .aspx )来指定任意数量的可呈现目标。 这通常会被设置为一个缓冲区,该缓冲区将与前台缓冲区交换,以产生所谓的双缓冲渲染。

尽管你所处的窗口已经解决了,但是你想要做的是以不同的分辨率渲染游戏。 为此,您可以调整视口的大小,以调整呈现到渲染目标的分辨率。 这与窗口分辨率无关,但如果不保持正确的宽高比,可能会产生令人厌恶的结果。

视口信息http://msdn.microsoft.com/en-us/library/windows/desktop/bb206341(v=vs.85).aspx