我使用此代码加载纹理:
HRESULT hr = D3DXCreateTextureFromFile(d3ddev, "test.bmp", &g_texture);
但它始终返回D3DXERR_INVALIDDATA
错误!
我正在渲染的三角形工作正常,所以程序的其余部分正在工作,除了纹理加载。
我错过了什么?该文件肯定存在。我尝试使用jpg和png,以及尺寸为256x256的小图像。图像对我来说效果很好..所以它不能是无效数据,即使它是这样说的。
答案 0 :(得分:3)
很可能,即使文件可用,它也不在程序访问的正确路径中。
如果从Visual Studio中运行程序,请确保工作目录指向包含test.bmp
的文件夹。不幸的是,此设置的位置在不同版本的VS之间发生了很大变化,但在VS 2005中它是Project->Properties->Debugging->Working Directory
。确保调试和释放模式的设置相同。
您可以使用GetCurrentDirectory代码检查当前目录。