首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网络游戏 >

DirectX3D无法从内存文件创建纹理后显示?解决思路

2012-03-20 
DirectX3D无法从内存文件创建纹理后显示?情况是这样的:我是基于多个DirectX的窗口的程序,一个窗口用来生成

DirectX3D无法从内存文件创建纹理后显示?
情况是这样的:我是基于多个DirectX的窗口的程序,一个窗口用来生成图像,第二个窗口想用第一个窗口生成的图像来作为纹理贴到第二个窗口中的一块矩形区域
我是利用D3DLOCKED_RECT 来获取第一个窗口图像的像素buffer,然后用D3DXCreateTextureFromFileInMemory()函数将这段图像buffer生成纹理然后贴过去,但D3DXCreateTextureFromFileInMemory() 为什么老是失败
然后Google搜索了一下发现这样一句话
-----------------------------------------------------------
DirectX3D无法从内存文件创建纹理后显示
------------------------------------------------------------
来自于:http://bbs.eyuyan.com/simple/?t224962.html

[解决办法]
D3DXCreateTextureFromFileInMemory()
顾名思义,FromFile,你的内存数据格式必须是个“完整的文件”,要包含文件头的,而且必须是:bmp/jpg/png/...那几种D3D支持的格式才行;你如果仅仅是数据块,那当然不行了。
还不如创建一个纹理,Lock后直接填充像素,然后UnLock即可。

热点排行