zoukankan      html  css  js  c++  java
  • D3DXCreateTextureFromFileInMemoryEx函数

    注:限于翻译水平限制,详情请查阅MSDN

    D3DXCreateTextureFromFileInMemoryEx 函数
    从内存文件创建一个纹理,这是个比D3DXCreateTextureFromFileInMemory更高级的函数。

    语法
    HRESULT WINAPI
        D3DXCreateTextureFromFileInMemoryEx(
            LPDIRECT3DDEVICE9         pDevice,
            LPCVOID                   pSrcData,
            UINT                      SrcDataSize,
            UINT                      Width,
            UINT                      Height,
            UINT                      MipLevels,
            DWORD                     Usage,
            D3DFORMAT                 Format,
            D3DPOOL                   Pool,
            DWORD                     Filter,
            DWORD                     MipFilter,
            D3DCOLOR                  ColorKey,
            D3DXIMAGE_INFO*           pSrcInfo,
            PALETTEENTRY*             pPalette,
            LPDIRECT3DTEXTURE9*       ppTexture);

    注:LPDIRECT3DDEVICE8和LPDIRECT3DTEXTURE9因SDK版本而异。

    参数
    pDevice [输入]
    类型: LPDIRECT3DDEVICE9

    IDirect3DDevice9接口的指针,代表与纹理关联的设备。

    pSrcData [输入]
    类型: LPCVOID

    用以创建纹理的内存文件的指针。

    SrcDataSize [输入]
    类型: UINT

    内存文件的大小,以字节为单位。

    Width [输入]
    类型: UINT

    宽度,以像素为单位。如果值为零或D3DX_DEFAULT,则尺寸由文件决定。

    Height [输入]
    类型: UINT

    高度,以像素为单位。如果值为零或D3DX_DEFAULT,则尺寸由文件决定。

    MipLevels [输入]
    类型: UINT

    请求的Mip层级(mip levels), 如果值为零或D3DX_DEFAULT,完整mipmap链将被创建。

    Usage [输入]
    类型: DWORD

    0,D3DUSAGE_RENDERTARGET或D3DUSAGE_DYNAMIC。设此标志为D3DUSAGE_RENDERTARGET指明表面作为一个渲染目标。资源便可传递给

    SetRenderTarget方法的pNewRenderTarget参数。如果D3DUSAGE_RENDERTARGET和D3DUSAGE_DYNAMIC都不置位,则Pool必须设为

    D3DPOOL_DEFAULT,一个程序应该调用CheckDeviceFormat来检查设备是否支持此操作。关于动态纹理的更多信息,参阅使用动态纹理

    (Dynamic Textures)。

    Format [输入]
    类型: D3DFORMAT

    枚举类型D3DFORMAT的成员,描述纹理的像素模式。返回的纹理的格式可能与Format指定的不同。应用程序应该检查返回的纹理的格式。

    如果设为D3DFMT_UNKNOWN,则格式由文件决定。如果设为D3DFMT_FROM_FILE,则格式完全与文件相同,而格式与设备性能冲突时函数会失

    败。

    Pool [输入]
    类型: D3DPOOL

    枚举类型D3DPOOL成员,描述纹理应该置于何种内存类型。

    Filter [输入]
    类型: DWORD

    一个或多个标志的组合以控制图形的过滤,设置D3DX_DEFAULT位等效于设置D3DX_FILTER_TRIANGLE | D3DX_FILTER_DITHER。任何有效的标

    志应为D3DX_FILTER之一。

    MipFilter [输入]
    类型: DWORD

    一个或多个标志的组合以控制图形的过滤,设置D3DX_DEFAULT位等效于设置D3DX_FILTER_BOX。任何有效的标志应为D3DX_FILTER之一。另

    外,使用27-31来指定要忽略的mip层级(从mipmap链的顶部开始),当一个.dds纹理被加载到内存,允许最多忽略32个层级。

    ColorKey [输入]
    类型: D3DCOLOR

    被透明黑色取代的D3DCOLOR值,或设为0以禁用透明色。它总是一个32位ARGB颜色,与源文件的图像格式无关。Alpha字段是有意义的且常

    常设为FF填充(屏蔽)透明色,所以,要不透明黑色,其值应取0xFF000000。

    pSrcInfo [输入,输出]
    类型: D3DXIMAGE_INFO*

    D3DXIMAGE_INFO结构的指针,用以填充原始文件数据的描述,可设为NULL。

    pPalette [输出]
    类型: PALETTEENTRY*

    PALETTEENTRY结构的指针,代表一个要填充的256色调色板,或设为NULL,见备注。

    ppTexture [输出]
    类型: LPDIRECT3DTEXTURE9*

    IDirect3DTexture9接口指针的地址,代表创建的纹理对象。

    返回值
    类型: HRESULT

    如果函数执行成功,返回值是D3D_OK。如果函数执行失败,返回值可能是如下值之一:
    D3DERR_NOTAVAILABLE,D3DERR_OUTOFVIDEOMEMORY,D3DERR_INVALIDCALL,D3DXERR_INVALIDDATA,E_OUTOFMEMORY。

    备注
    次函数支持如下文件格式:.bmp,.dds,.dib,.hdr,.jpg,.pfm,.png,.ppm和.tga。见D3DXIMAGE_FILEFORMAT。

    关于PALETTEENTRY的详情,参考平台SDK。注意在DirectX 8.0,PALETTEENTRY结构的成员peFlags并不是平台SDK文档所说的那样工作。

    peFlags成员现在是8位调色板格式的alpha通道。

    当忽略mipmap层级来夹在一个.dds文件时,使用宏D3DX_SKIP_DDS_MIP_LEVELS来生成MipFilter的值。该宏使用忽略的层级数和过滤类型作

    为参数,返回一个能传递给MipFilter参数的过滤值。

    需求条件
    文件头
     D3dx9tex.h

     D3dx9.lib

    参阅
    D3DXCreateTextureFromFileInMemory
    D3DX9的纹理函数

  • 相关阅读:
    初探XML
    Hibernate 由实体类与配置文件的配置关系生成数据库中的表
    利用JSP中的过滤器解决中文乱码问题
    关于iBatis配置xml文件时出现中文注释出错的一个问题(很坑爹.)
    Myeclipse中xml文件里自动提示消失解决办法
    iBatis的基本配置+CRUD操作
    Myeclipse下配置svn
    Hibernate与iBastis 比较(转载)
    本人了解的分页查询
    Hibernate五大核心接口简介
  • 原文地址:https://www.cnblogs.com/jiangu66/p/3217912.html
Copyright © 2011-2022 走看看