2012-01-09 77 views
2

即時通訊使用此代碼加載質地:如何在DirectX上加載紋理?

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

但它總是返回D3DXERR_INVALIDDATA錯誤!

我正在渲染的三角形工作得很好,所以程序的其餘部分工作,除了紋理加載。

我錯過了什麼?該文件肯定存在。我也嘗試過使用jpg和png,並使用尺寸爲256x256的較小圖像。圖像對我來說工作得很好..所以它不能是無效的數據,即使它是這樣說的。

回答

3

即使文件可用,它也很可能不在程序訪問的正確路徑中。

如果您在Visual Studio中運行程序,請確保工作目錄指向包含test.bmp的文件夾。不幸的是,這個設置的位置在不同版本的VS之間有很大的變化,但在VS 2005中它是Project->Properties->Debugging->Working Directory。確保您在Debug和Release模式下具有相同的設置。

您可以通過GetCurrentDirectory的代碼檢查您的當前目錄。

+0

非常好!就是這樣。這可能爲我節省數小時的調試時間!謝謝! – Rookie 2012-01-09 01:22:39