C++ DirectX 绘制一个 .PNG 精灵作为 window 背景

C++ DirectX Draw a .PNG sprite as window background

我想知道是否可以在我的 DirectX 中绘制 .PNG 精灵作为背景 window 我目前的设置如下:

    d3ddev->Clear(0, NULL, D3DCLEAR_TARGET, D3DCOLOR_ARGB(255, 0, 40, 100), 1.0f, 0);

它使背景变成蓝色,但是否可以替换那条线,以便在那里绘制精灵?

或者我应该只在背景上绘制 sprite 吗?

要覆盖背景,只需渲染一个全屏精灵。在这种情况下,您不需要 Clear 渲染目标的颜色部分,因为您将绘制每个像素。您仍然会使用 ClearD3DCLEAR_STENCIL and/or D3DCLEAR_ZBUFFER,并且您应该在不写入或读取 z 缓冲区(如果有)的情况下绘制精灵。

当然,理想情况下,您将使用 Direct3D 11 而不是旧版 Direct3D 9 API 或任何版本的 D3DX。参见 MSDN. SpriteBatch in the DirectX Tool Kit can easily draw a full-screen image in the background for Direct3D 11 as per this tutorial