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的纹理函数
D3DXCreateTextureFromFileInMemoryEx函数的更多相关文章
- D3D9和OpenGL加载纹理图片的API是哪个?
D3D9 创建一个空纹理,当返回 S_OK 且 ppTexture 纹理对象指针不为 NULL 时,则表示该函数调用成功. HRESULT D3DXCreateTexture( _In_ LPDIR ...
- Python 小而美的函数
python提供了一些有趣且实用的函数,如any all zip,这些函数能够大幅简化我们得代码,可以更优雅的处理可迭代的对象,同时使用的时候也得注意一些情况 any any(iterable) ...
- 探究javascript对象和数组的异同,及函数变量缓存技巧
javascript中最经典也最受非议的一句话就是:javascript中一切皆是对象.这篇重点要提到的,就是任何jser都不陌生的Object和Array. 有段时间曾经很诧异,到底两种数据类型用来 ...
- JavaScript权威指南 - 函数
函数本身就是一段JavaScript代码,定义一次但可能被调用任意次.如果函数挂载在一个对象上,作为对象的一个属性,通常这种函数被称作对象的方法.用于初始化一个新创建的对象的函数被称作构造函数. 相对 ...
- C++对C的函数拓展
一,内联函数 1.内联函数的概念 C++中的const常量可以用来代替宏常数的定义,例如:用const int a = 10来替换# define a 10.那么C++中是否有什么解决方案来替代宏代码 ...
- 菜鸟Python学习笔记第一天:关于一些函数库的使用
2017年1月3日 星期二 大一学习一门新的计算机语言真的很难,有时候连函数拼写出错查错都能查半天,没办法,谁让我英语太渣. 关于计算机语言的学习我想还是从C语言学习开始为好,Python有很多语言的 ...
- javascript中的this与函数讲解
前言 javascript中没有块级作用域(es6以前),javascript中作用域分为函数作用域和全局作用域.并且,大家可以认为全局作用域其实就是Window函数的函数作用域,我们编写的js代码, ...
- 复杂的 Hash 函数组合有意义吗?
很久以前看到一篇文章,讲某个大网站储存用户口令时,会经过十分复杂的处理.怎么个复杂记不得了,大概就是先 Hash,结果加上一些特殊字符再 Hash,结果再加上些字符.再倒序.再怎么怎么的.再 Hash ...
- JS核心系列:浅谈函数的作用域
一.作用域(scope) 所谓作用域就是:变量在声明它们的函数体以及这个函数体嵌套的任意函数体内都是有定义的. function scope(){ var foo = "global&quo ...
随机推荐
- 【百度地图API】百度API卫星图使用方法和卫星图对比工具
原文:[百度地图API]百度API卫星图使用方法和卫星图对比工具 百度地图API推出卫星图接口也有一个月啦~ 本文除了介绍如何使用百度地图API来操作卫星图外,还顺带制作了个卫星图对比工具. 一.百度 ...
- iOS_文章3党库SDWebImage
1,下载的文章3党库SDWebImage代码包增加到project 2,进入project的Build Phases,将源代码包里面的所有.m文件所有加入到project 3,导入第3方类库依赖的两个 ...
- WinForms C#:html编辑器工程源码,含直接写WebBrowser的文件流、IPersistStreamInit接口的声明和一些相关的小方法
原文:WinForms C#:html编辑器工程源码,含直接写WebBrowser的文件流.IPersistStreamInit接口的声明和一些相关的小方法 首先多谢朋友们的捧场: 今天给大家带来一个 ...
- Windows下结束tomcat进程,dos命令
Microsoft Windows [版本 6.1.7601]版权所有 (c) 2009 Microsoft Corporation.保留所有权利. C:\Users\Administrator> ...
- 空连接ipc$入侵
使用命令 net use url=file://\\IP\ipc$\\IP\ipc$ "" /user:"" 就可以简单地和目标建立一个空连接(需要目标开放ip ...
- jquery+html三级联动下拉框
jquery+html三级联动下拉框及详情页面加载时的select初始化问题 html写的三个下拉框,如下: <select name="ddlQYWZYJ" id=&q ...
- Ajax跨域原理及JQuery中的实现
浅析Ajax跨域原理及JQuery中的实现分析 AJAX 的出现使得网页可以通过在后台与服务器进行少量数据交换,实现网页的局部刷新.但是出于安全的考虑,ajax不允许跨域通信.如果尝试从不同的域请 ...
- c#开发之多国语言解决方案gnu.gettext + poedit
1.工具简介 1.1.关于i18n i18n其来源是英文单词 internationalization的首末字符i和n,18为中间的字符数是“国际化”的简称. i10n为资源本地化,全称为Locali ...
- Ping域名惊现65.49.2.178
--- 昨天新建的博,早晨起来进去看看,发现无法访问.这… 排错开始,ping域名出现如上图所示结果,请求超时…哪里的问题呢 有时常识是害人的,想起了前两月群里也有人说本地无法访问自己网站,别人能访问 ...
- 如何优雅的研究 RGSS3 (七) 加入LOGO屏幕
对于游戏 LOGO 屏幕. 首先设计 LOGO Scene类.我们知道,现场类 Scene_Base 子类. 让我们回顾一下现场的作品. 首先运行开始处理.其次是开始治疗.然后停止更新屏幕,最后,治疗 ...