MaterialX 1.39.1
Loading...
Searching...
No Matches
ImageHandler Class Reference

Base image handler class. More...

#include <ImageHandler.h>

Inheritance diagram for ImageHandler:
GLTextureHandler

Public Member Functions

void addLoader (ImageLoaderPtr loader)
 Add another image loader to the handler, which will be invoked if existing loaders cannot load a given image.
 
StringSet supportedExtensions ()
 Get a list of extensions supported by the handler.
 
bool saveImage (const FilePath &filePath, ConstImagePtr image, bool verticalFlip=false)
 Save image to disk. More...
 
ImagePtr acquireImage (const FilePath &filePath, const Color4 &defaultColor=Color4(0.0f))
 Acquire an image from the cache or file system. More...
 
virtual bool bindImage (ImagePtr image, const ImageSamplingProperties &samplingProperties)
 Bind an image for rendering. More...
 
virtual bool unbindImage (ImagePtr image)
 Unbind an image, making it no longer active for rendering. More...
 
void unbindImages ()
 Unbind all images that are currently stored in the cache.
 
void setSearchPath (const FileSearchPath &path)
 Set the search path to be used for finding images on the file system.
 
const FileSearchPathgetSearchPath () const
 Return the image search path.
 
void setFilenameResolver (StringResolverPtr resolver)
 Set the filename resolver for images.
 
StringResolverPtr getFilenameResolver () const
 Return the filename resolver for images.
 
virtual bool createRenderResources (ImagePtr image, bool generateMipMaps, bool useAsRenderTarget=false)
 Create rendering resources for the given image. More...
 
virtual void releaseRenderResources (ImagePtr image=nullptr)
 Release rendering resources for the given image, or for all cached images if no image pointer is specified. More...
 
void clearImageCache ()
 Clear the contents of the image cache, first releasing any render resources associated with cached images.
 
ImagePtr getZeroImage () const
 Return a fallback image with zeroes in all channels.
 
ImageVec getReferencedImages (ConstDocumentPtr doc)
 Acquire all images referenced by the given document, and return the images in a vector.
 

Static Public Member Functions

static ImageHandlerPtr create (ImageLoaderPtr imageLoader)
 

Protected Member Functions

 ImageHandler (ImageLoaderPtr imageLoader)
 
ImagePtr loadImage (const FilePath &filePath)
 
void cacheImage (const string &filePath, ImagePtr image)
 
ImagePtr getCachedImage (const FilePath &filePath)
 

Protected Attributes

ImageLoaderMap _imageLoaders
 
ImageMap _imageCache
 
FileSearchPath _searchPath
 
StringResolverPtr _resolver
 
ImagePtr _zeroImage
 

Detailed Description

Base image handler class.

Keeps track of images which are loaded from disk via supplied ImageLoader. Derived classes are responsible for determinining how to perform the logic for "binding" of these resources for a given target (such as a given shading language).

Member Function Documentation

◆ acquireImage()

ImagePtr acquireImage ( const FilePath filePath,
const Color4 defaultColor = Color4(0.0f) 
)

Acquire an image from the cache or file system.

If the image is not found in the cache, then each image loader will be applied in turn. If the image cannot be found by any loader, then a uniform image of the given default color will be returned.

Parameters
filePathFile path of the image.
defaultColorDefault color to use as a fallback for missing images.
Returns
On success, a shared pointer to the acquired image.

◆ bindImage()

virtual bool bindImage ( ImagePtr  image,
const ImageSamplingProperties samplingProperties 
)
virtual

Bind an image for rendering.

Parameters
imageThe image to bind.
samplingPropertiesSampling properties for the image.

Reimplemented in GLTextureHandler.

◆ createRenderResources()

virtual bool createRenderResources ( ImagePtr  image,
bool  generateMipMaps,
bool  useAsRenderTarget = false 
)
virtual

Create rendering resources for the given image.

Reimplemented in GLTextureHandler.

◆ releaseRenderResources()

virtual void releaseRenderResources ( ImagePtr  image = nullptr)
virtual

Release rendering resources for the given image, or for all cached images if no image pointer is specified.

Reimplemented in GLTextureHandler.

◆ saveImage()

bool saveImage ( const FilePath filePath,
ConstImagePtr  image,
bool  verticalFlip = false 
)

Save image to disk.

This method must be implemented by derived classes. The first image loader which supports the file name extension will be used.

Parameters
filePathFile path to be written
imageThe image to be saved
verticalFlipWhether the image should be flipped in Y during save
Returns
if save succeeded

◆ unbindImage()

virtual bool unbindImage ( ImagePtr  image)
virtual

Unbind an image, making it no longer active for rendering.

Parameters
imageThe image to unbind.

Reimplemented in GLTextureHandler.


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