【发布时间】:2014-06-01 11:23:04
【问题描述】:
我正在使用来自http://www.mikoweb.eu/index.php?node=28的how-to 1 sourceDX9
在该示例中一切正常,但现在我想使用 PNG(或任何具有 alpha 和更好压缩率的格式)而不是 BMP。
函数调用是:
D3DXCreateTextureFromResourceEx(m_pD3DDevice,
gl_hThisInstance,
MAKEINTRESOURCE(IDB_BITMAP1),
256,
128,
0,
NULL,
D3DFMT_UNKNOWN,
D3DPOOL_MANAGED,
D3DX_FILTER_NONE,
D3DX_FILTER_NONE,
0xFF000000,
NULL,
NULL,
&m_pBackgroundTexture);
资源文件:
IDB_BITMAP1 BITMAP "background.bmp"
我将资源更改为:
IDB_BITMAP1 RC_DATA "pic.png"
在我更改 D3DXCreateTextureFromResourceEx 后返回 D3D_OK,但是屏幕上没有显示任何内容。看到文档后,我的快速想法是我应该在 D3DXIMAGE_INFO 结构中指定格式(并将其余部分保留为 0,仍然没有。
我的最终目标是从文件中加载纹理,所以我尝试了:
D3DXCreateTextureFromFileEx(m_pD3DDevice, "pic.png", 200, 200, 0, 0, D3DFMT_UNKNOWN, D3DPOOL_MANAGED, D3DX_FILTER_NONE, D3DX_FILTER_NONE, D3DCOLOR_ARGB(150,100,100,100), NULL, NULL, &m_pBackgroundTexture);
但是没有用。
【问题讨论】:
-
原来我必须指定文件的确切 x 和 y 尺寸,或者将其设置为 0。
-
现在我遇到了新问题,无法将我的纹理设为 alpha,尝试了 png、dds、...
-
如果您有新问题,请更新您的帖子,而不是仅仅发表评论。
-
谢谢,我解决了这个问题。现在将其添加为答案。