D3DXCreateTextureFromFileEx
D3DXCreateTextureFromFileEx
上次在玩公告板时,用到了D3DXCreateTextureFromFileEx函数,上次的主要目的是公告板,对这个函数没太多的关心,现在发现这个函数是D3DXCreateTextureFromFile的高级板本,还是有它优势的,不然它就没有存在的意义了。D3DXCreateTextureFromFileEx这个函数有14个参数,在MSDN中的原型(后面中文解释为本人理解,仅供参考,原文请查看MSDN):
HRESULT D3DXCreateTextureFromFileEx(
LPDIRECT3DDEVICE9 pDevice, //调入是IDirect3DDevice9对象指针
LPCTSTR pSrcFile, //文件名
UINT Width, //图像的宽
UINT Height, //图像的长
UINT MipLevels, //图片的图层,一般用D3DX_DEFAULT,但也用1的
DWORD Usage, //设定这个纹理的使用方法,这个参数可以是0,
//D3DUSAGE_RENDERTARGET,和
//D3DUSAGE_DYNAMIC。一般我用的是0,你也可以使用了D3DUSAGE_DYNAMIC,
//这样可以动态改变纹理中的数据。如果你纹理不需要动态性改变,就不需要设定这
//个参数为D3DUSAGE_DYNAMIC。
D3DFORMAT Format, // 纹理的格式,可以自己定义,也可以直接定义为D3DFMT_UNKNOWN,让程序
//在载入图像文件时定义象素深度
D3DPOOL Pool, //这是如何管理这些纹理,一般使用D3DPOOL_MANAGED
DWORD Filter, //图像像素的过滤方式
DWORD MipFilter, //MIP的像素过滤方式
D3DCOLOR ColorKey, //透明色,设定这个颜色,在显示时,这图像中的这个颜色将忽略
D3DXIMAGE_INFO * pSrcInfo, //记录载入图片信息
PALETTEENTRY * pPalette, //记录调色板信息
LPDIRECT3DTEXTURE9 * ppTexture //用来储存载入图片的纹理对象实例
);
在上次的公告板中,调用为:
D3DXCreateTextureFromFileEx(
Device,
"Billboard.bmp",
D3DX_DEFAULT,
D3DX_DEFAULT,
D3DX_DEFAULT,
0,
D3DFMT_A1R5G5B5,
D3DPOOL_MANAGED,
D3DX_FILTER_TRIANGLE,
D3DX_FILTER_TRIANGLE,
D3DCOLOR_RGBA(0,0,0,255),
NULL,
NULL,
&BillboardTexture);
在这里,关键颜色值为D3DFMT_A1R5G5B5(就是RGB都少于5的颜色),将载入的图片里面的关键颜色值设置为透明色.只要在画时加上
Device->SetRenderState(D3DRS_ALPHATESTENABLE, TRUE); //启用alpha测试
就可以让指定的颜色透明。在公告和粒子系统中可能常用到这个函数。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 字符编码:从基础到乱码解决