class EE::Graphics::TextureLoader

Overview

The Texture loader loads a texture in synchronous or asynchronous mode. More…

#include <textureloader.hpp>

class TextureLoader {
public:
    // typedefs

    typedef std::function<void(Uint32, Texture*)> OnTextureLoaded;

    // construction

    TextureLoader(IOStream& Stream, const bool& Mipmap = false, const Texture::ClampMode& ClampMode = Texture::ClampMode::ClampToEdge, const bool& CompressTexture = false, const bool& KeepLocalCopy = false);
    TextureLoader(const std::string& filepath, const bool& Mipmap = false, const Texture::ClampMode& ClampMode = Texture::ClampMode::ClampToEdge, const bool& CompressTexture = false, const bool& KeepLocalCopy = false);
    TextureLoader(const unsigned char* ImagePtr, const unsigned int& Size, const bool& Mipmap = false, const Texture::ClampMode& ClampMode = Texture::ClampMode::ClampToEdge, const bool& CompressTexture = false, const bool& KeepLocalCopy = false);
    TextureLoader(Pack* Pack, const std::string& FilePackPath, const bool& Mipmap = false, const Texture::ClampMode& ClampMode = Texture::ClampMode::ClampToEdge, const bool& CompressTexture = false, const bool& KeepLocalCopy = false);

    TextureLoader(
        const unsigned char* Pixels,
        const unsigned int& Width,
        const unsigned int& Height,
        const unsigned int& Channels,
        const bool& Mipmap = false,
        const Texture::ClampMode& ClampMode = Texture::ClampMode::ClampToEdge,
        const bool& CompressTexture = false,
        const bool& KeepLocalCopy = false,
        const std::string& FileName = std::string("")
    );
    virtual ~TextureLoader();

    // methods

    static Uint32 pushLoadedCallback(const OnTextureLoaded& cb);
    static void popLoadedCallback(const Uint32& cbId);
    void setColorKey(RGB Color);
    void unload();
    const std::string& getFilepath() const;
    Uint32 getId() const;
    Texture* getTexture() const;
    Image::FormatConfiguration getFormatConfiguration() const;
    void setFormatConfiguration(const Image::FormatConfiguration& formatConfiguration);
    void load();
};

Detailed Documentation

The Texture loader loads a texture in synchronous or asynchronous mode.

Construction

TextureLoader(IOStream& Stream, const bool& Mipmap = false, const Texture::ClampMode& ClampMode = Texture::ClampMode::ClampToEdge, const bool& CompressTexture = false, const bool& KeepLocalCopy = false)

Load a Texture from stream

Parameters:

Stream

The io stream instance

Mipmap

Use mipmaps?

ClampMode

Defines the CLAMP MODE

CompressTexture

If use the DXT compression on the texture loading ( if the card can display them, will convert RGB to DXT1, RGBA to DXT5 )

KeepLocalCopy

Keep the array data copy. ( useful if want to reload the texture )

TextureLoader(const std::string& filepath, const bool& Mipmap = false, const Texture::ClampMode& ClampMode = Texture::ClampMode::ClampToEdge, const bool& CompressTexture = false, const bool& KeepLocalCopy = false)

Load a Texture from a file path

Parameters:

filepath

The path for the texture

Mipmap

Use mipmaps?

ClampMode

Defines the CLAMP MODE

CompressTexture

If use the DXT compression on the texture loading ( if the card can display them, will convert RGB to DXT1, RGBA to DXT5 )

KeepLocalCopy

Keep the array data copy. ( useful if want to reload the texture )

TextureLoader(const unsigned char* ImagePtr, const unsigned int& Size, const bool& Mipmap = false, const Texture::ClampMode& ClampMode = Texture::ClampMode::ClampToEdge, const bool& CompressTexture = false, const bool& KeepLocalCopy = false)

Load a texture from memory

Parameters:

ImagePtr

The image data in memory just as if it were still in a file

Size

The size of the texture ( Width * Height * BytesPerPixel )

Mipmap

Use mipmaps?

ClampMode

Defines the CLAMP MODE

CompressTexture

If use the DXT compression on the texture loading ( if the card can display them, will convert RGB to DXT1, RGBA to DXT5 )

KeepLocalCopy

Keep the array data copy. ( useful if want to reload the texture )

TextureLoader(Pack* Pack, const std::string& FilePackPath, const bool& Mipmap = false, const Texture::ClampMode& ClampMode = Texture::ClampMode::ClampToEdge, const bool& CompressTexture = false, const bool& KeepLocalCopy = false)

Load a texture from a Pack file

Parameters:

Pack

Pointer to the pack instance

FilePackPath

The path of the file inside the pack

Mipmap

Create Mipmap?

ClampMode

Defines the CLAMP MODE

CompressTexture

If use the DXT compression on the texture loading ( if the card can display them, will convert RGB to DXT1, RGBA to DXT5 )

KeepLocalCopy

Keep the array data copy. ( useful if want to reload the texture )

TextureLoader(
    const unsigned char* Pixels,
    const unsigned int& Width,
    const unsigned int& Height,
    const unsigned int& Channels,
    const bool& Mipmap = false,
    const Texture::ClampMode& ClampMode = Texture::ClampMode::ClampToEdge,
    const bool& CompressTexture = false,
    const bool& KeepLocalCopy = false,
    const std::string& FileName = std::string("")
)

Loads a RAW Texture from Memory

Parameters:

Pixels

The Texture array

Width

Texture Width

Height

Texture Height

Channels

Texture Number of Channels (in bytes)

Mipmap

Create Mipmap?

ClampMode

Defines the CLAMP MODE

CompressTexture

If use the DXT compression on the texture loading ( if the card can display them, will convert RGB to DXT1, RGBA to DXT5 )

KeepLocalCopy

Keep the array data copy. ( useful if want to reload the texture )

FileName

A filename to recognize the texture ( the path in case that was loaded from outside the texture factory ).

Methods

void setColorKey(RGB Color)

A color key can be set to be transparent in the texture. This must be set before the loading is done.

void unload()

Releases the texture loaded ( if was already loaded ), it will destroy the texture from memory.

const std::string& getFilepath() const

Returns:

The file path to the texture ( if any )

Uint32 getId() const

Returns:

The texture internal id

Texture* getTexture() const

Returns:

The texture instance ( if it was loaded ).

void load()

Starts loading the texture