【发布时间】:2013-09-05 04:14:17
【问题描述】:
我正在尝试在 directx 中加载纹理以绘制带纹理的四边形。
但 D3DXCreateTextureFromFile 永远不会返回 D3D_OK ....
这是我加载纹理的代码......
FeralTexture(string Name,FeralVector2 Position,IDirect3DDevice9 *device)
{
FileName = Name;
m_pDevice = device;
x= Position.x;
y= Position.y;
if(D3DXCreateTextureFromFile(m_pDevice,FileName.c_str(),&m_pTextureFile) != D3D_OK)
{
TextureCreated = false;
m_pTextureFile = NULL;
D3DXCreateTextureFromFile(m_pDevice,FileName.c_str(),&m_pTextureFile);
}
else
{
if(D3DXGetImageInfoFromFile(FileName.c_str(),&ImageInfo) == D3D_OK)
{
TextureCreated = true;
Width = ImageInfo.Width;
Height = ImageInfo.Height;
MinVector = FeralVector2(x,y);
MaxVector = FeralVector2(x+Width,y+Height);
//BoundingRect = FeralRect2(MinVector,MaxVector);
}
else
{
Width = 0;
Height = 0;
}
}
}
我将图像的副本放在项目的调试文件夹和项目的主文件夹中... 两者都不起作用....
任何意见将不胜感激......
【问题讨论】:
-
建议:如果您从 IDE 运行,那么工作目录可以不同于输出目录。究竟是什么代码返回加载函数?
-
D3DXCreateTextureFromFile的返回值是多少。您应该将它放入一个变量中以进一步调试:HRESULT result = D3DXCreateTextureFromFile(...);您可以查看作为返回值获得的错误值并从那里获取。
标签: c++ directx textures directx-9