翻译自 gb2.6 sdk文档
NiDynamicTexture
: public NiTexture
<NiDynamicTexture.h>
Description
NiDynamicTexture 纹理类是指那些由程序动态生成的,而不是通过3D pipeline渲染的那些纹理。这些纹理通常是用作程序上的一些效果或者是视频切图。
Constructors
没有构造函数,纹理数据都是通过下面的静态函数Create()创建的。
Static Member Functions
static NiDynamicTexture* Create(unsigned int uiWidth, unsigned int uiHeight,FormatPrefs& kPrefs = ms_kDefaultPrefs, bool bTiledTexture = false)
试图创建一个给定渲染尺寸的动态纹理,生成的纹理对象可能会被当成一个纹理使用。
记住:NiDynamicTextures 的析构函数调用应先于渲染器的析构调用。
如果给定的渲染器或者当前的硬件不支持动态纹理,或者渲染器用给定的参数创建动态纹理失败时,Create函数将会返回NULL,格式选项的值将会通知应用程序为动态纹理指定一个特定的格式。特定格式请求仅仅是个请求,渲染器会根据实际情况尽力实现或者忽略该请求。
bTiledTexture 字段标示:允许用户创建一个动态纹理对象是hardware tiled format;当用图形硬件帮助视频压缩或者做其它动态纹理操作时,就必须在某种特定的硬件上实现。当你在不能产生动态纹理的硬件上做创建请求时 此时将创建动态纹理失败。
提供的函数
virtual void* Lock(int& iPitch)
锁定设备动态纹理,标示设备正在等待应用程序编辑。
virtual bool UnLock() const
解锁设备动态纹理,标示应用程序纹理编辑结束。
virtual unsigned int GetWidth() const
virtual unsigned int GetHeight() const
NiDynamicTexturesNotes的宽和高、
Mipmapping and Dynamic Textures
目前还没有渲染器同时支持mipmapped dynamic textures