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_BACKEND_SFML
40 #include <SFML/Graphics/Texture.hpp>
41 #include <SFML/Graphics/Shader.hpp>
52 using CallbackFunc = std::function<void(std::shared_ptr<TextureData>)>;
54 using TextureLoaderFunc = std::function<std::shared_ptr<TextureData>(
Texture&,
const String&,
bool smooth)>;
77 bool smooth = m_defaultSmooth)
98 bool smooth = m_defaultSmooth);
100#if TGUI_HAS_BACKEND_SFML
156 bool smooth = m_defaultSmooth);
158#if TGUI_HAS_BACKEND_SFML
170 void load(
const sf::Texture& texture,
175#ifndef TGUI_REMOVE_DEPRECATED_CODE
186 TGUI_DEPRECATED(
"Use loadFromPixelData instead") bool load(
Vector2u size, const std::uint8_t* pixels, const
UIntRect& partRect = {},
const UIntRect& middleRect = {});
200 void loadFromMemory(
const std::uint8_t* data, std::size_t dataSize,
const UIntRect& partRect = {},
const UIntRect& middleRect = {},
bool smooth = m_defaultSmooth);
288#if TGUI_HAS_BACKEND_SFML
438 void setTextureData(std::shared_ptr<TextureData> data,
const UIntRect& partRect,
const UIntRect& middleRect);
444#if TGUI_HAS_BACKEND_SFML
445 sf::Shader* m_shader =
nullptr;
448 std::shared_ptr<TextureData> m_data =
nullptr;
449 Color m_color = Color::White;
455 CallbackFunc m_copyCallback;
456 CallbackFunc m_destructCallback;
458 static bool m_defaultSmooth;
460 static TextureLoaderFunc m_textureLoader;
461 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
Wrapper class to store strings.
Definition String.hpp:79
Definition Texture.hpp:49
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:74
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:61
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