26#ifndef TGUI_TEXTURE_HPP
27#define TGUI_TEXTURE_HPP
31#include <TGUI/TextureData.hpp>
32#include <TGUI/Vector2.hpp>
33#include <TGUI/String.hpp>
34#include <TGUI/Global.hpp>
35#include <TGUI/Color.hpp>
36#include <TGUI/Rect.hpp>
39#if TGUI_HAS_RENDERER_BACKEND_SFML_GRAPHICS
55 using CallbackFunc = std::function<void(std::shared_ptr<TextureData>)>;
56 using BackendTextureLoaderFunc = std::function<bool(
BackendTexture&,
const String&,
bool smooth)>;
57 using TextureLoaderFunc = std::function<std::shared_ptr<TextureData>(
Texture&,
const String&,
bool smooth)>;
80 bool smooth = m_defaultSmooth)
101 bool smooth = m_defaultSmooth);
103#if TGUI_HAS_RENDERER_BACKEND_SFML_GRAPHICS
159 bool smooth = m_defaultSmooth);
161#if TGUI_HAS_RENDERER_BACKEND_SFML_GRAPHICS
173 void load(
const sf::Texture& texture,
189 void loadFromMemory(
const std::uint8_t* data, std::size_t dataSize,
const UIntRect& partRect = {},
const UIntRect& middleRect = {},
bool smooth = m_defaultSmooth);
277#if TGUI_HAS_RENDERER_BACKEND_SFML_GRAPHICS
427 void setTextureData(std::shared_ptr<TextureData> data,
const UIntRect& partRect,
const UIntRect& middleRect);
433#if TGUI_HAS_RENDERER_BACKEND_SFML_GRAPHICS
434 sf::Shader* m_shader =
nullptr;
437 std::shared_ptr<TextureData> m_data =
nullptr;
444 CallbackFunc m_copyCallback;
445 CallbackFunc m_destructCallback;
447 static bool m_defaultSmooth;
449 static TextureLoaderFunc m_textureLoader;
450 static BackendTextureLoaderFunc m_backendTextureLoader;
Base class for texture implementations that depend on the backend.
Definition: BackendTexture.hpp:41
Wrapper for colors.
Definition: Color.hpp:63
static const Color White
White predefined color.
Definition: Color.hpp:254
Wrapper class to store strings.
Definition: String.hpp:79
Definition: Texture.hpp:52
UIntRect getMiddleRect() const
Returns the middle rect of the texture which is used for 9-slice scaling.
static void setTextureLoader(const TextureLoaderFunc &func)
Sets a different texture loader.
Texture(const Texture &)
Copy constructor.
static void setDefaultSmooth(bool smooth)
Changes whether textures are smoothed by default or not.
bool isTransparentPixel(Vector2u pos) const
Checks if a certain pixel is transparent.
std::shared_ptr< TextureData > getData() const
Returns the texture data.
sf::Shader * getShader() const
Returns the shader used to draw the texture.
Texture(Texture &&) noexcept
Move constructor.
static const BackendTextureLoaderFunc & getBackendTextureLoader()
Returns the used backend texture loader.
static bool getDefaultSmooth()
Returns whether textures are smoothed by default or not.
bool operator==(const Texture &right) const
Compares the texture with another one.
Texture(const char *id, const UIntRect &partRect=UIntRect(0, 0, 0, 0), const UIntRect &middlePart=UIntRect(0, 0, 0, 0), bool smooth=m_defaultSmooth)
Constructor that created the texture.
Definition: Texture.hpp:77
void setShader(sf::Shader *shader)
Sets the shader used to draw the texture.
Texture(const sf::Texture &texture, const UIntRect &partRect=UIntRect(0, 0, 0, 0), const UIntRect &middlePart=UIntRect(0, 0, 0, 0))
Constructor that created the texture from an existing sf::Texture.
bool operator!=(const Texture &right) const
Compares the texture with another one.
static const TextureLoaderFunc & getTextureLoader()
Returns the used texture loader.
void setColor(const Color &color)
Sets the global color of the texture.
UIntRect getPartRect() const
Returns which part of the image was loaded.
Texture()
Default constructor.
Definition: Texture.hpp:64
bool isSmooth() const
Tells whether the smooth filter is enabled or not.
void load(const sf::Texture &texture, const UIntRect &partRect={}, const UIntRect &middleRect={})
Creates the texture from an existing sf::Texture.
void loadFromPixelData(Vector2u size, const std::uint8_t *pixels, const UIntRect &partRect={}, const UIntRect &middleRect={}, bool smooth=m_defaultSmooth)
Loads the texture from an array of 32-bits RGBA pixels.
void loadFromMemory(const std::uint8_t *data, std::size_t dataSize, const UIntRect &partRect={}, const UIntRect &middleRect={}, bool smooth=m_defaultSmooth)
Loads the texture from memory (data in memory should contain the entire file, not just the pixels)
static void setBackendTextureLoader(const BackendTextureLoaderFunc &func)
Sets a different backend texture loader.
void setCopyCallback(const CallbackFunc &func)
Sets a callback function for when this texture is copied.
const Color & getColor() const
Returns the global color of the texture.
const String & getId() const
Returns the id that was used to load the texture (for the default loader, the id is the filename)
void setDestructCallback(const CallbackFunc &func)
Sets a callback function for when this texture is destroyed.
Texture(const String &id, const UIntRect &partRect=UIntRect(0, 0, 0, 0), const UIntRect &middlePart=UIntRect(0, 0, 0, 0), bool smooth=m_defaultSmooth)
Constructor that created the texture.
Vector2u getImageSize() const
Returns the size that the loaded image, or the size of the part if only a part of the image is loaded...
Namespace that contains all TGUI functions and classes.
Definition: AbsoluteOrRelativeValue.hpp:36