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测试
就可以让指定的颜色透明。在公告和粒子系统中可能常用到这个函数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值