arsa
2.7
|
Interface of a Video Driver dependent Texture. More...
#include <ITexture.h>
Public Member Functions | |
ITexture (const io::path &name, E_TEXTURE_TYPE type) | |
constructor More... | |
virtual void * | lock (E_TEXTURE_LOCK_MODE mode=ETLM_READ_WRITE, u32 mipmapLevel=0, u32 layer=0, E_TEXTURE_LOCK_FLAGS lockFlags=ETLF_FLIP_Y_UP_RTT)=0 |
Lock function. More... | |
virtual void | unlock ()=0 |
Unlock function. Must be called after a lock() to the texture. More... | |
virtual void | regenerateMipMapLevels (void *data=0, u32 layer=0)=0 |
Regenerates the mip map levels of the texture. More... | |
const core::dimension2d< u32 > & | getOriginalSize () const |
Get original size of the texture. More... | |
const core::dimension2d< u32 > & | getSize () const |
Get dimension (=size) of the texture. More... | |
E_DRIVER_TYPE | getDriverType () const |
Get driver type of texture. More... | |
ECOLOR_FORMAT | getColorFormat () const |
Get the color format of texture. More... | |
ECOLOR_FORMAT | getOriginalColorFormat () const |
Get the original color format. More... | |
u32 | getPitch () const |
Get pitch of the main texture (in bytes). More... | |
bool | hasMipMaps () const |
Check whether the texture has MipMaps. More... | |
bool | isRenderTarget () const |
Check whether the texture is a render target. More... | |
const io::SNamedPath & | getName () const |
Get name of texture (in most cases this is the filename) More... | |
E_TEXTURE_SOURCE | getSource () const |
Check where the last IVideoDriver::getTexture found this texture. More... | |
void | updateSource (E_TEXTURE_SOURCE source) |
Used internally by the engine to update Source status on IVideoDriver::getTexture calls. More... | |
bool | hasAlpha () const |
Returns if the texture has an alpha channel. More... | |
E_TEXTURE_TYPE | getType () const |
Returns the type of texture. More... | |
Public Member Functions inherited from irr::IReferenceCounted | |
IReferenceCounted () | |
Constructor. More... | |
virtual | ~IReferenceCounted () |
Destructor. More... | |
void | grab () const |
Grabs the object. Increments the reference counter by one. More... | |
bool | drop () const |
Drops the object. Decrements the reference counter by one. More... | |
s32 | getReferenceCount () const |
Get the reference count. More... | |
const c8 * | getDebugName () const |
Returns the debug name of the object. More... | |
Protected Member Functions | |
E_TEXTURE_CREATION_FLAG | getTextureFormatFromFlags (u32 flags) |
Helper function, helps to get the desired texture creation format from the flags. More... | |
Protected Member Functions inherited from irr::IReferenceCounted | |
void | setDebugName (const c8 *newName) |
Sets the debug name of the object. More... | |
Protected Attributes | |
io::SNamedPath | NamedPath |
core::dimension2d< u32 > | OriginalSize |
core::dimension2d< u32 > | Size |
E_DRIVER_TYPE | DriverType |
ECOLOR_FORMAT | OriginalColorFormat |
ECOLOR_FORMAT | ColorFormat |
u32 | Pitch |
bool | HasMipMaps |
bool | IsRenderTarget |
E_TEXTURE_SOURCE | Source |
E_TEXTURE_TYPE | Type |
Interface of a Video Driver dependent Texture.
An ITexture is created by an IVideoDriver by using IVideoDriver::addTexture or IVideoDriver::getTexture. After that, the texture may only be used by this VideoDriver. As you can imagine, textures of the DirectX and the OpenGL device will, e.g., not be compatible. An exception is the Software device and the NULL device, their textures are compatible. If you try to use a texture created by one device with an other device, the device will refuse to do that and write a warning or an error message to the output buffer.
Definition at line 177 of file ITexture.h.
|
inline |
constructor
Definition at line 182 of file ITexture.h.
|
inline |
Get the color format of texture.
Definition at line 252 of file ITexture.h.
|
inline |
Get driver type of texture.
This is the driver, which created the texture. This method is used internally by the video devices, to check, if they may use a texture because textures may be incompatible between different devices.
Definition at line 248 of file ITexture.h.
|
inline |
|
inline |
Get the original color format.
When create textures from image data we will often use different color formats. For example depending on driver TextureCreationFlag's. This can give you the original format which the image used to create the texture had
Definition at line 258 of file ITexture.h.
|
inline |
Get original size of the texture.
The texture is usually scaled, if it was created with an unoptimal size. For example if the size was not a power of two. This method returns the size of the texture it had before it was scaled. Can be useful when drawing 2d images on the screen, which should have the exact size of the original texture. Use ITexture::getSize() if you want to know the real size it has now stored in the system.
Definition at line 237 of file ITexture.h.
|
inline |
Get pitch of the main texture (in bytes).
The pitch is the amount of bytes used for a row of pixels in a texture.
Definition at line 264 of file ITexture.h.
|
inline |
Get dimension (=size) of the texture.
Definition at line 241 of file ITexture.h.
|
inline |
Check where the last IVideoDriver::getTexture found this texture.
Definition at line 281 of file ITexture.h.
|
inlineprotected |
Helper function, helps to get the desired texture creation format from the flags.
Definition at line 319 of file ITexture.h.
|
inline |
|
inline |
Returns if the texture has an alpha channel.
Definition at line 287 of file ITexture.h.
|
inline |
Check whether the texture has MipMaps.
Definition at line 268 of file ITexture.h.
|
inline |
Check whether the texture is a render target.
Render targets can be set as such in the video driver, in order to render a scene into the texture. Once unbound as render target, they can be used just as usual textures again.
Definition at line 275 of file ITexture.h.
|
pure virtual |
Lock function.
Locks the Texture and returns a pointer to access the pixels. After lock() has been called and all operations on the pixels are done, you must call unlock(). Locks are not accumulating, hence one unlock will do for an arbitrary number of previous locks. You should avoid locking different levels without unlocking in between, though, because only the last level locked will be unlocked. The size of the i-th mipmap level is defined as max(getSize().Width>>i,1) and max(getSize().Height>>i,1)
mode | Specifies what kind of changes to the locked texture are allowed. Unspecified behavior will arise if texture is written in read only mode or read from in write only mode. Support for this feature depends on the driver, so don't rely on the texture being write-protected when locking with read-only, etc. |
mipmapLevel | NOTE: Currently broken, sorry, we try if we can repair it for 1.9 release. Number of the mipmapLevel to lock. 0 is main texture. Non-existing levels will silently fail and return 0. |
layer | It determines which cubemap face or texture array layer should be locked. |
lockFlags | See E_TEXTURE_LOCK_FLAGS documentation. |
|
pure virtual |
Regenerates the mip map levels of the texture.
Required after modifying the texture, usually after calling unlock().
data | Optional parameter to pass in image data which will be used instead of the previously stored or automatically generated mipmap data. The data has to be a continuous pixel data for all mipmaps until 1x1 pixel. Each mipmap has to be half the width and height of the previous level. At least one pixel will be always kept. |
layer | It informs a texture about which cubemap or texture array layer needs mipmap regeneration. |
|
pure virtual |
Unlock function. Must be called after a lock() to the texture.
One should avoid to call unlock more than once before another lock. The last locked mip level will be unlocked. You may want to call regenerateMipMapLevels() after this when you changed any data.
|
inline |
Used internally by the engine to update Source status on IVideoDriver::getTexture calls.
Definition at line 284 of file ITexture.h.
|
protected |
Definition at line 337 of file ITexture.h.
|
protected |
Definition at line 335 of file ITexture.h.
|
protected |
Definition at line 339 of file ITexture.h.
|
protected |
Definition at line 340 of file ITexture.h.
|
protected |
Definition at line 332 of file ITexture.h.
|
protected |
Definition at line 336 of file ITexture.h.
|
protected |
Definition at line 333 of file ITexture.h.
|
protected |
Definition at line 338 of file ITexture.h.
|
protected |
Definition at line 334 of file ITexture.h.
|
protected |
Definition at line 341 of file ITexture.h.
|
protected |
Definition at line 342 of file ITexture.h.