This reference page is linked to from the following overview topics: Textures, Sampling Texture Values, Render to Texture and Multi-Target Rendering.
Represents a texture tile inside a texture pool.
Textures are like images (see the Image class) in that they are a 2d array of pixel values. Like images, Textures support many formats. Textures can also be used internally as the target of OpenGL rendering operations -- that is, Mudbox scenes can be rendered into Textures. Textures have the ability to keep old versions of themselves around for undo/redo purposes.
SampleViewportFilter/SampleViewportFilter.cpp, SampleViewportFilter/SampleViewportFilter.h, and TextureSwapperViewportFilter/TextureSwapperViewportFilter.h.
Definition at line 632 of file material.h.
#include <material.h>
Public Member Functions |
|
virtual void | Create (unsigned int iWidth, unsigned int iHeight, unsigned int iChannelCount, enum Image::Format eFormat, const Color &cColor) |
Create/allocate the content of the texture.
|
|
virtual void | Create (unsigned int iWidth, unsigned int iHeight, unsigned int iChannelCount, enum Image::Format eFormat) |
Create/allocate the content of the texture.
|
|
virtual bool | CreateFromFile (const QString &sFileName) |
Create the texture from an image file.
|
|
virtual const Image * | AsImage (void) |
Returns the content as an image. |
|
virtual void | CopyTo (Texture &cTexture) const |
Copy the content of the texture into another
one, using the current opengl pipeline settings. |
|
virtual unsigned int | Width (void) const |
Returns the width of the texture in pixels.
|
|
virtual unsigned int | Height (void) const |
Returns the height of the texture in pixels.
|
|
virtual unsigned int | BitDepth (void) const |
Returns the bit depth of the texture (per
channel) |
|
virtual enum Image::Format | Format (void) const |
Returns the format of the texture. |
|
virtual bool | Activate (void) const |
Binds the texture node. |
|
virtual bool | Deactivate (void) const |
UnBinds the texture node, but does not
restore the previous active texture. |
|
virtual unsigned int | OpenGLName (void) const |
Returns the opengl name of the texture.
|
|
virtual bool | SetAsRenderTarget (void) |
Sets the texture as a render target.
Subsequent renderings will render into that texture. |
|
virtual bool | RestoreRenderTarget (void) |
Restore previous render target. |
|
virtual abool * | getFilteringPref () |
virtual void | CopyFrom (Image *pImage) |
Create the texture content from an image.
|
|
virtual void | ReplaceWith (Image *pImage) |
Replace the texture with the content from an
image. |
|
virtual void | CopyTo (Image *pImage, bool tiled=true, const ImgTile *region=0, ImageDescriptor::MemoryChannelOrder eOrder=ImageDescriptor::orderRGBA) |
Copy the texture or a region thereof to an
image. |
|
virtual void | SetLocation (unsigned int iLocation) |
Sets the location for the texture pool.
|
|
virtual unsigned int | Location (void) const |
Gets the location for the texture pool.
|
|
virtual int64 | TotalMemoryUsage (void) const |
Return the memory usage of all texture
instances of the class in bytes. |
|
virtual qint64 | GPUMemoryUsageInBytes () const |
Returns the GPU memory usage in bytes.
|
|
virtual void | SetLive (bool bLive) |
For internal use only. |
|
virtual bool | IsLive (void) const |
For internal use only. |
|
virtual void | SetFiltered (bool bFiltered) |
Set the texture filtering on this texture.
|
|
virtual void | SetConvert32To16bitFloat (bool bConvert) |
Set to true to automatically convert 32 bit
floating point textures to 16 bit floating point textures on the
gpu. |
|
virtual void | setProxyLevel (unsigned char level) |
set the proxy level -- 0 == no proxy, 1 ==
0.5x, 2 = 0.25x, 3 = 0.125 etc... |
|
virtual unsigned char | getProxyLevel () const |
get the proxy level -- 0 == no proxy, 1 ==
0.5x, 2 = 0.25x, 3 = 0.125 etc... |
|
virtual bool | IsDirty (void) const |
Returns if the texture is modified since
last load/save. |
|
virtual void | SetDirty (bool bDirty) |
Returns if the texture is modified since
last load/save. |
|
Undo Mechanism
|
|
These methods provide a multi-level undo and redo system for textures. |
|
virtual bool | NewVersion () |
Caches a copy of the current texture.
|
|
virtual bool | PrevVersion () |
Makes the previous version of the texture
current. |
|
virtual bool | NextVersion () |
Makes the 'next' version of the texture
current. |
|
virtual int | NumVersions () |
Returns the number of versions of this
texture. |
|
virtual bool | MergeOldestVersions () |
Merges the oldest two versions of this
texture. |
|
virtual bool | PurgeNewerVersions () |
Purges any versions of this texture after
the current one (i.e. |
|
virtual bool | PurgeAllButCurrentVersion () |
Purges all but the current version of this
Texture.
|
|
virtual bool | BeginUndoableOperation () |
Notifies the texture that you are about to
start making undoable changes to it (such as a brush stroke).
|
|
virtual bool | EndUndoableOperation () |
Notifies the texture that you have finished
making undoable changes to it (such as a brush stroke). |
|
Dirty Tile Methods
|
|
The dirty tile methods are used by the undo mechanism so that it only has to save those portions of the texture that has been modified. |
|
void | ResetDirtyTile () |
Resets the dirty region to be empty.
|
|
virtual void | AddToDirtyTile (int x, int y) |
Notifies the texture that part of it has
changed. |
|
virtual void | AddToDirtyTile (const ImgTile &t) |
Notifies the texture that part of it has
changed. |
|
const ImgTile & | DirtyTile () const |
Returns the dirty rectangle of the texture.
|
|
Protected Member Functions |
|
Texture (void) | |
Constructor. |
|
Protected Attributes |
|
ImgTile | m_DirtyTile |
Texture | ( | void | ) | [protected] |
Constructor.
Do not use it directly; Use CreateInstance() instead.
Texture *myTexture = CreateInstance<Texture>();
virtual void Create | ( | unsigned int | iWidth, |
unsigned int | iHeight, | ||
unsigned int | iChannelCount, | ||
enum Image::Format | eFormat, | ||
const Color & | cColor | ||
) | [virtual] |
Create/allocate the content of the texture.
[in] | iWidth | The width |
[in] | iHeight | The height |
[in] | iChannelCount | The number of channels (for example, RGBA would be 4) |
[in] | eFormat | The image format (see the Image class for details) |
[in] | cColor | The initial color that the texture should be set to |
virtual void Create | ( | unsigned int | iWidth, |
unsigned int | iHeight, | ||
unsigned int | iChannelCount, | ||
enum Image::Format | eFormat | ||
) | [virtual] |
Create/allocate the content of the texture.
[in] | iWidth | The width |
[in] | iHeight | The height |
[in] | iChannelCount | The number of channels (for example, RGBA would be 4) |
[in] | eFormat | The image format (see the Image class for details) |
virtual bool CreateFromFile | ( | const QString & | sFileName | ) | [virtual] |
Create the texture from an image file.
[in] | sFileName | The name of the image file to be read in |
virtual const Image* AsImage | ( | void | ) | [virtual] |
Returns the content as an image.
virtual void CopyTo | ( | Texture & | cTexture | ) | const [virtual] |
Copy the content of the texture into another one, using the current opengl pipeline settings.
[in] | cTexture | The texture to be copied to |
virtual unsigned int Width | ( | void | ) | const [virtual] |
Returns the width of the texture in pixels.
virtual unsigned int Height | ( | void | ) | const [virtual] |
Returns the height of the texture in pixels.
virtual unsigned int BitDepth | ( | void | ) | const [virtual] |
Returns the bit depth of the texture (per channel)
virtual enum Image::Format Format | ( | void | ) | const [virtual] |
Returns the format of the texture.
virtual bool Activate | ( | void | ) | const [virtual] |
Binds the texture node.
This call makes the texture active, so that opengl operations will be able to use it. It calls glBindTexture() internally.
virtual bool Deactivate | ( | void | ) | const [virtual] |
UnBinds the texture node, but does not restore the previous active texture.
The active opengl texture after this call is undefined.
virtual unsigned int OpenGLName | ( | void | ) | const [virtual] |
Returns the opengl name of the texture.
virtual bool SetAsRenderTarget | ( | void | ) | [virtual] |
Sets the texture as a render target. Subsequent renderings will render into that texture.
virtual bool RestoreRenderTarget | ( | void | ) | [virtual] |
Restore previous render target.
virtual abool* getFilteringPref | ( | ) | [virtual] |
virtual void CopyFrom | ( | Image * | pImage | ) | [virtual] |
Create the texture content from an image.
[in] | pImage | the Image to copy the texture from |
virtual void ReplaceWith | ( | Image * | pImage | ) | [virtual] |
Replace the texture with the content from an image.
[in] | pImage | the Image to copy the texture from |
virtual void CopyTo | ( | Image * | pImage, |
bool | tiled = true , |
||
const ImgTile * | region = 0 , |
||
ImageDescriptor::MemoryChannelOrder | eOrder =
ImageDescriptor::orderRGBA |
||
) | [virtual] |
Copy the texture or a region thereof to an image.
If region == 0, it copies the entire texture
[in] | pImage | A pointer to the image target |
[in] | tiled | Set to true if this is a tiled image |
[in] | region | Specifies a region to copy (see the ImgTile class) |
[in] | eOrder | Specify what order you want the color channels stored |
virtual void SetLocation | ( | unsigned int | iLocation | ) | [virtual] |
Sets the location for the texture pool.
[in] | iLocation | Location can be one of TexturePool::locationGPU, TexturePool::locationCPU, or TexturePool::locationDisk |
virtual unsigned int Location | ( | void | ) | const [virtual] |
Gets the location for the texture pool.
Possible values are TexturePool::locationUnknown, TexturePool::locationGPU, TexturePool::locationCPU, or TexturePool::locationDisk
virtual int64 TotalMemoryUsage | ( | void | ) | const [virtual] |
Return the memory usage of all texture instances of the class in bytes.
virtual qint64 GPUMemoryUsageInBytes | ( | ) | const [virtual] |
Returns the GPU memory usage in bytes.
virtual void SetLive | ( | bool | bLive | ) | [virtual] |
For internal use only.
virtual bool IsLive | ( | void | ) | const [virtual] |
For internal use only.
virtual bool NewVersion | ( | ) | [virtual] |
Caches a copy of the current texture.
Returns true if successful.
This is part of a Texture's built-in undo mechanism. Effectively, the current version of the texture becomes the previous version, and a fresh copy is now the current version. Any 'next' versions are purged.
virtual bool PrevVersion | ( | ) | [virtual] |
Makes the previous version of the texture current.
Returns true if successful.
This is part of a Texture's built-in undo mechanism. The current version of the texture becomes the next version, and the previous version becomes the current version.
virtual bool NextVersion | ( | ) | [virtual] |
Makes the 'next' version of the texture current.
Returns true if successful.
This is part of a Texture's built-in undo mechanism. The current version of the texture becomes the previous version, and the next version becomes the current version.
virtual int NumVersions | ( | ) | [virtual] |
Returns the number of versions of this texture.
Returns 1 for unversioned textures.
virtual bool MergeOldestVersions | ( | ) | [virtual] |
Merges the oldest two versions of this texture.
Returns true if successful.
This is used to limit the number of items on the undo queue.
virtual bool PurgeNewerVersions | ( | ) | [virtual] |
Purges any versions of this texture after the current one (i.e.
all "next" versions). Returns true if successful.
Creating a new version will implicitly purge newer versions, but if another operation takes place that puts a new item on the undo queue, this should be called to purge newer versions of this texture.
virtual bool PurgeAllButCurrentVersion | ( | ) | [virtual] |
Purges all but the current version of this Texture.
Used to flush the undo queue. Returns true if successful.
virtual bool BeginUndoableOperation | ( | ) | [virtual] |
Notifies the texture that you are about to start making undoable changes to it (such as a brush stroke).
Returns true if successful.
This method calls NewVersion() internally.
virtual bool EndUndoableOperation | ( | ) | [virtual] |
Notifies the texture that you have finished making undoable changes to it (such as a brush stroke).
Returns true if successful.
virtual void SetFiltered | ( | bool | bFiltered | ) | [virtual] |
Set the texture filtering on this texture.
[in] | bFiltered | true to turn filtering on, false to turn filtering off. |
virtual void SetConvert32To16bitFloat | ( | bool | bConvert | ) | [virtual] |
Set to true to automatically convert 32 bit floating point textures to 16 bit floating point textures on the gpu.
[in] | bConvert | true to convert, false to leave 32 bit float textures as is. |
virtual void setProxyLevel | ( | unsigned char | level | ) | [virtual] |
set the proxy level -- 0 == no proxy, 1 == 0.5x, 2 = 0.25x, 3 = 0.125 etc...
virtual unsigned char getProxyLevel | ( | ) | const [virtual] |
get the proxy level -- 0 == no proxy, 1 == 0.5x, 2 = 0.25x, 3 = 0.125 etc...
virtual bool IsDirty | ( | void | ) | const [virtual] |
Returns if the texture is modified since last load/save.
virtual void SetDirty | ( | bool | bDirty | ) | [virtual] |
Returns if the texture is modified since last load/save.
void ResetDirtyTile | ( | ) | [inline] |
Resets the dirty region to be empty.
Definition at line 857 of file material.h.
{ m_DirtyTile = ImgTile(0, 0, 0, 0); }
virtual void AddToDirtyTile | ( | int | x, |
int | y | ||
) | [inline, virtual] |
Notifies the texture that part of it has changed.
Call this when you are modifying a texture, to indicate what part has changed.
[in] | x | The X coordinate of the changed pixel |
[in] | y | The Y coordinate of the changed pixel |
Definition at line 866 of file material.h.
{ m_DirtyTile.ExpandToInclude(x, y); }
virtual void AddToDirtyTile | ( | const ImgTile & | t | ) | [inline, virtual] |
Notifies the texture that part of it has changed.
This is used by the undo mechanism so that it only has to save those portions of the image that have been modified. Call this when you are modifying a texture.
[in] | t | The X coordinate of the changed pixel |
Definition at line 879 of file material.h.
{ m_DirtyTile.ExpandToInclude(t.x, t.y); m_DirtyTile.ExpandToInclude(t.x+t.nx, t.y+t.ny); }
const ImgTile& DirtyTile | ( | ) | const [inline] |
Returns the dirty rectangle of the texture.
Definition at line 888 of file material.h.
{ return m_DirtyTile; }
ImgTile m_DirtyTile
[protected] |
Definition at line 839 of file material.h.