如何在DirectX上加载纹理?

时间:2012-01-09 00:47:47

标签: c++ visual-c++ directx

我使用此代码加载纹理:

HRESULT hr = D3DXCreateTextureFromFile(d3ddev, "test.bmp", &g_texture);

但它始终返回D3DXERR_INVALIDDATA错误!

我正在渲染的三角形工作正常,所以程序的其余部分正在工作,除了纹理加载。

我错过了什么?该文件肯定存在。我尝试使用jpg和png,以及尺寸为256x256的小图像。图像对我来说效果很好..所以它不能是无效数据,即使它是这样说的。

1 个答案:

答案 0 :(得分:3)

很可能,即使文件可用,它也不在程序访问的正确路径中。

如果从Visual Studio中运行程序,请确保工作目录指向包含test.bmp的文件夹。不幸的是,此设置的位置在不同版本的VS之间发生了很大变化,但在VS 2005中它是Project->Properties->Debugging->Working Directory。确保调试和释放模式的设置相同。

您可以使用GetCurrentDirectory代码检查当前目录。