gpt4 book ai didi

c++ - 在 Directx 中加载纹理

转载 作者:行者123 更新时间:2023-11-28 03:10:32 26 4
gpt4 key购买 nike

我正在尝试在 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;
}
}
}

我将图像的拷贝放在项目的调试文件夹和项目的主文件夹中...两者都不起作用....

任何输入将不胜感激......

最佳答案

  1. 确保纹理文件名正确
  2. 如果第 1 步不起作用,请尝试在您的程序中使用纹理文件的绝对路径。

如果仍然无效,请尝试使用 DirectX 调试运行时,从 C:\Program Files\Microsoft DirectX SDK(2010 年 6 月)\Utilities\bin\x86(路径取决于您所在的位置)打开 DirectX 控制面板 (dxcpl.exe)安装 DirectX SDK)并进行如下设置 enter image description here

然后在 Debug模式下运行您的应用程序,您将从 Visual Studio 的输出窗口中获得详细的错误消息,它会告诉您问题出在哪里。

D3DXCreateTextureFromFile 支持以下纹理格式

.bmp、.dds、.dib、.hdr、.jpg、.pfm、.png、.ppm 和 .tga

确保您的纹理格式在上面的列表中。

D3DXCreateTextureFromFile 有以下返回码,您可以检查返回值并修复您的应用。

  • D3D_OK
  • D3DERR_NOTAVAILABLE
  • D3DERR_OUTOFVIDEOMEMORY
  • D3DERR_INVALIDCALL
  • D3DXERR_INVALIDDATA
  • E_OUTOFMEMORY

关于c++ - 在 Directx 中加载纹理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18613229/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com