我在寻找D3DXCOLOR
结构体时遇到了麻烦,似乎在DirectX 11.1 (d3d11_1.h
)中已不再存在。
我已经搜索过类似的替代品,但没有找到。有人能帮我吗?如果它发生了很大变化,你也能告诉我如何使用它吗?
我对这个完全不懂,我也遇到了一个样例教程的问题,他们在其中使用了它。
于是我花了很多时间在网上搜索。
咚咚咚。
塔达......
以下是我如何将其转换为我的代码:
旧代码
// clear the back buffer to a deep blue
devcon->ClearRenderTargetView(backbuffer, D3DXCOLOR{ 0.0f, 0.2f, 0.4f, 1.0f };
新代码
// clear the back buffer to a deep blue
float color[4] = { 0.0f, 0.2f, 0.4f, 1.0f };
devcon->ClearRenderTargetView(backbuffer, color);
使用XMCOLOR。它位于DirectXPackedVector.h中。
如何一次性声明
using RGBA = float[4]; //c++11
或者
typedef float RGBA[4]; //pre-c++11
然后在需要的地方像这样使用它
devcon->ClearRenderTargetView(backbuffer, RGBA{0.0f, 0.2f, 0.4f, 1.0f});
D3DX或DirectX实用程序库已被移除,取而代之的是微软希望您使用XNA Math Library的对应项(使用SSE等技术,但在我的情况下有时会崩溃,所以我停止使用它)。