OGRE: Ogre::DefaultTextureManager Class Reference

| OGRE 14.5 Object-Oriented Graphics Rendering Engine

Loading...
Searching...
No Matches
Ogre::DefaultTextureManager Class Reference
Core » Resources

Specialisation of TextureManager for offline processing. Cannot be used with an active RenderSystem. More...

`#include <OgreTextureManager.h>`

Inheritance diagram for Ogre::DefaultTextureManager:
[legend]

## Public Member Functions
PixelFormat | getNativeFormat (TextureType, PixelFormat, int) override
| Gets the format which will be natively used for a requested format given the constraints of the current device.
bool | isHardwareFilteringSupported (TextureType, PixelFormat, int, bool) override
| Returns whether this render system has hardware filtering supported for the texture format requested with the given usage options.
Public Member Functions inherited from Ogre::TextureManager
| TextureManager (void)
virtual | ~TextureManager ()
const TexturePtr & | _getWarningTexture ()
| Internal method to create a warning texture (bound when a texture unit is blank).
TexturePtr | create (const String &name, const String &group, bool isManual=false, ManualResourceLoader *loader=0, const NameValuePairList *createParams=0)
| Create a new texture.
TexturePtr | createManual (const String &name, const String &group, TextureType texType, uint width, uint height, int numMipmaps, PixelFormat format, int usage=TU_DEFAULT, ManualResourceLoader *loader=0, bool hwGammaCorrection=false, uint fsaa=0, const String &fsaaHint=BLANKSTRING)
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
virtual TexturePtr | createManual (const String &name, const String &group, TextureType texType, uint width, uint height, uint depth, int numMipmaps, PixelFormat format, int usage=TU_DEFAULT, ManualResourceLoader *loader=0, bool hwGammaCorrection=false, uint fsaa=0, const String &fsaaHint=BLANKSTRING)
| Create a manual texture with specified width, height and depth (not loaded from a file).
ResourceCreateOrRetrieveResult | createOrRetrieve (const String &name, const String &group, bool isManual, ManualResourceLoader *loader, const NameValuePairList *createParams, TextureType texType, int numMipmaps=MIP_DEFAULT, Real gamma=1.0f, bool isAlpha=false, PixelFormat desiredFormat=PF_UNKNOWN, bool hwGammaCorrection=false)
ResourceCreateOrRetrieveResult | createOrRetrieve (const String &name, const String &group, bool isManual=false, ManualResourceLoader *loader=0, const NameValuePairList *createParams=0)
| Create a new resource, or retrieve an existing one with the same name if it already exists.
SamplerPtr | createSampler (const String &name=BLANKSTRING)
| create a new sampler
TexturePtr | getByName (const String &name, const String &groupName=RGN_DEFAULT) const
| Retrieves a pointer to a resource by name, or null if the resource does not exist.
virtual uint32 | getDefaultNumMipmaps ()
| Gets the default number of mipmaps to be used for loaded textures.
const SamplerPtr & | getDefaultSampler ()
| get the default sampler
virtual ushort | getPreferredFloatBitDepth (void) const
| Gets preferred bit depth for float pixel format textures.
virtual ushort | getPreferredIntegerBitDepth (void) const
| Gets preferred bit depth for integer pixel format textures.
const SamplerPtr & | getSampler (const String &name) const
| retrieve an named sampler
virtual bool | isEquivalentFormatSupported (TextureType ttype, PixelFormat format, int usage)
| Returns whether this render system can support the texture format requested with the given usage options, or another format with no quality reduction.
virtual bool | isFormatSupported (TextureType ttype, PixelFormat format, int usage)
| Returns whether this render system can natively support the precise texture format requested with the given usage options.
TexturePtr | load (const String &name, const String &group, TextureType texType, int numMipmaps, Real gamma, bool isAlpha, PixelFormat desiredFormat=PF_UNKNOWN, bool hwGammaCorrection=false)
TexturePtr | load (const String &name, const String &group, TextureType texType=TEX_TYPE_2D, int numMipmaps=MIP_DEFAULT, Real gamma=1.0f, PixelFormat desiredFormat=PF_UNKNOWN, bool hwGammaCorrection=false)
| Loads a texture from a file.
virtual TexturePtr | loadImage (const String &name, const String &group, const Image &img, TextureType texType=TEX_TYPE_2D, int numMipmaps=MIP_DEFAULT, Real gamma=1.0f, bool isAlpha=false, PixelFormat desiredFormat=PF_UNKNOWN, bool hwGammaCorrection=false)
| Loads a texture from an Image object.
virtual TexturePtr | loadRawData (const String &name, const String &group, DataStreamPtr &stream, ushort width, ushort height, PixelFormat format, TextureType texType=TEX_TYPE_2D, int numMipmaps=MIP_DEFAULT, Real gamma=1.0f, bool hwGammaCorrection=false)
| Loads a texture from a raw data stream.
TexturePtr | prepare (const String &name, const String &group, TextureType texType=TEX_TYPE_2D, int numMipmaps=MIP_DEFAULT, Real gamma=1.0f, bool isAlpha=false, PixelFormat desiredFormat=PF_UNKNOWN, bool hwGammaCorrection=false)
| Prepares to loads a texture from a file.
void | removeAllNamedSamplers ()
| clear the list of named samplers
virtual void | setDefaultNumMipmaps (uint32 num)
| Sets the default number of mipmaps to be used for loaded textures, for when textures are loaded automatically (e.g.
virtual void | setPreferredBitDepths (ushort integerBits, ushort floatBits, bool reloadTextures=true)
| Sets preferred bit depth for integer and float pixel format.
virtual void | setPreferredFloatBitDepth (ushort bits, bool reloadTextures=true)
| Sets preferred bit depth for float pixel format textures.
virtual void | setPreferredIntegerBitDepth (ushort bits, bool reloadTextures=true)
| Sets preferred bit depth for integer pixel format textures.
Public Member Functions inherited from Ogre::ResourceManager
| ResourceManager ()
virtual | ~ResourceManager ()
virtual void | _notifyResourceLoaded (Resource *res)
| Notify this manager that a resource which it manages has been loaded.
virtual void | _notifyResourceTouched (Resource *res)
| Notify this manager that a resource which it manages has been 'touched', i.e.
virtual void | _notifyResourceUnloaded (Resource *res)
| Notify this manager that a resource which it manages has been unloaded.
ResourceCreateOrRetrieveResult | createOrRetrieve (const String &name, const String &group, bool isManual=false, ManualResourceLoader *loader=0, const NameValuePairList *createParams=0)
| Create a new resource, or retrieve an existing one with the same name if it already exists.
ResourcePtr | createResource (const String &name, const String &group, bool isManual=false, ManualResourceLoader *loader=0, const NameValuePairList *createParams=0)
| Creates a new blank resource, but does not immediately load it.
void | destroyAllResourcePools ()
| destroy all pools
void | destroyResourcePool (const String &name)
| Destroy a resource pool.
void | destroyResourcePool (ResourcePool *pool)
| Destroy a resource pool.
virtual ResourcePtr | getByHandle (ResourceHandle handle) const
| Retrieves a pointer to a resource by handle, or null if the resource does not exist.
Real | getLoadingOrder (void) const override
| Gets the loading order for scripts of this type.
size_t | getMemoryBudget (void) const
| Get the limit on the amount of memory this resource handler may use.
size_t | getMemoryUsage (void) const
| Gets the current memory usage, in bytes.
virtual ResourcePtr | getResourceByName (const String &name, const String &groupName=RGN_DEFAULT) const
| Retrieves a pointer to a resource by name, or null if the resource does not exist.
ResourceMapIterator | getResourceIterator (void)
| Returns an iterator over all resources in this manager.
ResourcePool * | getResourcePool (const String &name)
| Create a resource pool, or reuse one that already exists.
const String & | getResourceType (void) const
| Gets a string identifying the type of resource this manager handles.
const StringVector & | getScriptPatterns (void) const override
| Gets the file patterns which should be used to find scripts for this class.
bool | getVerbose (void)
| Gets whether this manager and its resources habitually produce log output.
ResourcePtr | load (const String &name, const String &group, bool isManual=false, ManualResourceLoader *loader=0, const NameValuePairList *loadParams=0, bool backgroundThread=false)
| Generic load method, used to create a Resource specific to this ResourceManager without using one of the specialised 'load' methods (containing per-Resource-type parameters).
void | parseScript (DataStreamPtr &stream, const String &groupName) override
| Parse a script file.
ResourcePtr | prepare (const String &name, const String &group, bool isManual=false, ManualResourceLoader *loader=0, const NameValuePairList *loadParams=0, bool backgroundThread=false)
| Generic prepare method, used to create a Resource specific to this ResourceManager without using one of the specialised 'prepare' methods (containing per-Resource-type parameters).
void | reloadAll (bool reloadableOnly=true)
| Caused all currently loaded resources to be reloaded.
virtual void | reloadAll (Resource::LoadingFlags flags)
| Caused all currently loaded resources to be reloaded.
void | reloadUnreferencedResources (bool reloadableOnly=true)
| Caused all currently loaded but not referenced by any other object resources to be reloaded.
void | remove (const ResourcePtr &r)
| Remove a single resource.
void | remove (const String &name, const String &group=RGN_DEFAULT)
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
void | remove (ResourceHandle handle)
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
virtual void | removeAll (void)
| Removes all resources.
virtual void | removeUnreferencedResources (bool reloadableOnly=true)
| Remove all resources which are not referenced by any other object.
bool | resourceExists (const String &name, const String &group=RGN_DEFAULT) const
| Returns whether the named resource exists in this manager.
bool | resourceExists (ResourceHandle handle) const
| Returns whether a resource with the given handle exists in this manager.
void | setMemoryBudget (size_t bytes)
| Set a limit on the amount of memory this resource handler may use.
void | setVerbose (bool v)
| Sets whether this manager and its resources habitually produce log output.
void | unload (const String &name, const String &group=RGN_DEFAULT)
| Unloads a single resource by name.
void | unload (ResourceHandle handle)
| Unloads a single resource by handle.
void | unloadAll (bool reloadableOnly=true)
| Unloads all resources.
virtual void | unloadAll (Resource::LoadingFlags flags)
| Unloads all resources.
void | unloadUnreferencedResources (bool reloadableOnly=true)
| Unload all resources which are not referenced by any other object.
Public Member Functions inherited from Ogre::ScriptLoader
virtual | ~ScriptLoader ()
Public Member Functions inherited from Ogre::Singleton< TextureManager >
| ~Singleton (void)

## Additional Inherited Members
Public Types inherited from Ogre::ResourceManager
typedef std::pair< ResourcePtr, bool > | ResourceCreateOrRetrieveResult
typedef std::map< ResourceHandle, ResourcePtr > | ResourceHandleMap
typedef std::unordered_map< String, ResourcePtr > | ResourceMap
typedef MapIterator< ResourceHandleMap > | ResourceMapIterator
typedef std::unordered_map< String, ResourceMap > | ResourceWithGroupMap
Static Public Member Functions inherited from Ogre::TextureManager
static TextureManager & | getSingleton (void)
| Get the singleton instance.
static TextureManager * | getSingletonPtr (void)
| Get the singleton instance.
Static Public Member Functions inherited from Ogre::Singleton< TextureManager >
static TextureManager & | getSingleton (void)
| Get the singleton instance.
static TextureManager * | getSingletonPtr (void)
| Get the singleton instance.

## Detailed Description

Specialisation of TextureManager for offline processing. Cannot be used with an active RenderSystem.

## Member Function Documentation

## ◆ isHardwareFilteringSupported()

bool Ogre::DefaultTextureManager::isHardwareFilteringSupported | ( | TextureType | ttype,
|  | PixelFormat | format,
|  | int | usage,
|  | bool | preciseFormatOnly )
| inlineoverridevirtual

Returns whether this render system has hardware filtering supported for the texture format requested with the given usage options.

Not all texture format are supports filtering by the hardware, i.e. some cards support floating point format, but it doesn't supports filtering on the floating point texture at all, or only a subset floating point formats have flitering supported.

  In the case you want to write shader to work with floating point texture, and you want to produce better visual quality, it's necessary to flitering the texture manually in shader (potential requires four or more texture fetch instructions, plus several arithmetic instructions) if filtering doesn't supported by hardware. But in case on the hardware that supports floating point filtering natively, it had better to adopt this capability for performance (because only one texture fetch instruction are required) and doesn't loss visual quality.

  This method allow you queries hardware texture filtering capability to deciding which version of the shader to be used. Note it's up to you to write multi-version shaders for support various hardware, internal engine can't do that for you automatically.

Note
  Under GL, texture filtering are always supported by driver, but if it's not supported by hardware natively, software simulation will be used, and you will end up with very slow speed (less than 0.1 fps for example). To slove this performance problem, you must disable filtering manually (by use filtering none in the material script's texture_unit section, or call TextureUnitState::setTextureFiltering with TFO_NONE if populate material in code).

Parameters

  ttype | The texture type requested
  format | The pixel format requested
  usage | The kind of usage this texture is intended for, a combination of the TextureUsage flags.
  preciseFormatOnly | Whether precise or fallback format mode is used to detecting. In case the pixel format doesn't supported by device, false will be returned if in precise mode, and natively used pixel format will be actually use to check if in fallback mode.

Returns
  true if the texture filtering is supported.

Reimplemented from Ogre::TextureManager.

## ◆ getNativeFormat()

PixelFormat Ogre::DefaultTextureManager::getNativeFormat | ( | TextureType | ttype,
|  | PixelFormat | format,
|  | int | usage )
| inlineoverridevirtual

Gets the format which will be natively used for a requested format given the constraints of the current device.

Implements Ogre::TextureManager.

References Ogre::PF_UNKNOWN.

The documentation for this class was generated from the following file:

- OgreTextureManager.h