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

  • 相关阅读:
    HDU 1087 Super Jumping! Jumping! Jumping!
    HDU 1159 Common Subsequence
    HDU 1003 Maxsum
    HDU 2604 Queuing
    HDU 2045 不容易系列之(3)—— LELE的RPG难题
    HDU 2501 Tiling_easy version
    HDU 2050 折线分割平面
    HDU 2018 母牛的故事
    HDU 2046 骨牌铺方格
    HDU 2044 一只小蜜蜂...
  • 原文地址:https://www.cnblogs.com/wonderKK/p/2240306.html
Copyright © 2011-2022 走看看