Scaleform::Render::ImageUse

Scaleform::Render::ImageUse
enum ImageUse {
  ImageUse_Wrap = 0x0001,
  ImageUse_GenMipmaps = 0x0002,
  ImageUse_Update = 0x0010,
  ImageUse_PartialUpdate = 0x0020,
  ImageUse_MapSimThread = 0x0040,
  ImageUse_MapRenderThread = 0x0080,
  ImageUse_Map_Mask = ImageUse_MapSimThread|ImageUse_MapRenderThread,
  ImageUse_ReadOnly_Mask = (ImageUse_Update|ImageUse_PartialUpdate|ImageUse_Map_Mask),
  ImageUse_InitOnly = 0x0100,
  ImageUse_NoDataLoss = ImageUse_InitOnly,
  ImageUse_RenderTarget = 0x0400
};
Description

ImageUse describes how image is intended to be used, or what capabilities the image and its associated texture should have. ImageUse flags are associated with each image and texture, and are passed to Image::Create and TextureManager::CreateTexture. For best performance and memory use, the smallest necessary number of ImageUse flags should be applied. 

For textures, ImageUse flags are also used to determine what capabilities the renderer supports for a given texture type, as reported by TextureManager::GetTextureUseCaps. If a specified flag is not reported by this function, it should not be used to create a texture. 

Even if a certain ImageUse flag is not supported directly by the TextureManager, it may still be applicable to an Image. ImageUse_MapLocal flag, for example, cannot easily be supported by TextureManager implementations together with threaded rendering. It can, however, still be applied to an Image, since in that case it will be emulated by maintaining an additional system-memory copy of image data. 

ImageUse Map flags describe whether Image::Map and Texture::Map can be used to obtain the pointer to image data for updating.

Members
Members 
Description 
ImageUse_Wrap = 0x0001 
Image can be wrapped during rendering. If this flag is not specified, coordinate wrapping will not work for the image. This flag MUST be supported by all renderers. 
ImageUse_GenMipmaps = 0x0002 
Set this flag if texture mipmap pyramid should automatically be created for image on renderer side.
This flag can't be specified together with ImageUse_PartialUpdate; also MipLevels should be 1. If Update takes place, all of the mipmap levels will be re-generated. 
ImageUse_Update = 0x0010 
Update flags specify whether Update() can be called on the image, potentially uploading new data due to changes.
If Update flag is not set, image data is assumed not to change. In this case, Image can be updated in full. 
ImageUse_PartialUpdate = 0x0020 
Update flags specify whether Update() can be called on the image, potentially uploading new data due to changes.
If Update flag is not set, image data is assumed not to change. In this case, Image can support sub-rectangle update. 
ImageUse_MapSimThread = 0x0040 
Indicates that Texture::Map can be called within the update handler (executed on render thread only). This will typically be useful for updating font caches, etc; however, some renderers may not support this and require relying on ImageUse_PartialUpdate instead. 
ImageUse_MapRenderThread = 0x0080 
Indicates that Image::Map can be called from Advance/modify thread. This flag typically should NOT be set, as it will cause additional system-memory copy of the image to exist in threaded environments. ImageUse_MapSimThread may be reported by TextureManager::GetTextureCap only in single threaded environments. 
ImageUse_Map_Mask = ImageUse_MapSimThread|ImageUse_MapRenderThread 
ImageUse Map flags describe whether Image::Map and Texture::Map can be used to obtain the pointer to image data for updating. 
ImageUse_ReadOnly_Mask = (ImageUse_Update|ImageUse_PartialUpdate|ImageUse_Map_Mask) 
Combination of flags that specify that a texture must be initialized with an image, because it is not modifiable in any other way. 
ImageUse_InitOnly = 0x0100 
Indicates that Texture for the image should not hold an Image class pointer internally. When reported as a capability, it means that the renderer will never lose texture data, so Image backing store isn't necessary.
This is the behavior of textures loaded from the default implementation of GFx::ImageCreator
ImageUse_NoDataLoss = ImageUse_InitOnly 
Indicates that Texture for the image should not hold an Image class pointer internally. When reported as a capability, it means that the renderer will never lose texture data, so Image backing store isn't necessary. 
ImageUse_RenderTarget = 0x0400 
Texture associated with this image can be used as a render target. 
File

Render_Image.h