我想知道我是否可以在我的 DirectX 窗口中绘制一个 .PNG Sprite 作为背景,我目前的设置如下:
d3ddev->Clear(0, NULL, D3DCLEAR_TARGET, D3DCOLOR_ARGB(255, 0, 40, 100), 1.0f, 0);
它使背景变成蓝色,但是否可以替换那条线以便在那里绘制 Sprite ?
或者我应该只在背景上绘制 Sprite 吗?
最佳答案
要覆盖背景,只需渲染一个全屏 Sprite 。在这种情况下,您不需要 Clear
渲染目标的颜色部分,因为您将绘制每个像素。您仍然可以将 Clear
与 D3DCLEAR_STENCIL
和/或 D3DCLEAR_ZBUFFER
一起使用,并且您应该在不写入或读取 z 缓冲区的情况下绘制 Sprite (如果任何)。
当然,理想情况下,您将使用 Direct3D 11 而不是旧版 Direct3D 9 API 或任何版本的 D3DX。参见 MSDN . SpriteBatch
在 DirectX Tool Kit可以根据 this tutorial 在 Direct3D 11 的背景中轻松绘制全屏图像.
关于C++ DirectX 绘制一个 .PNG Sprite 作为窗口背景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34297756/