TGUI  0.9-dev
BackendTexture.hpp
1
2//
3// TGUI - Texus' Graphical User Interface
4// Copyright (C) 2012-2021 Bruno Van de Velde (vdv_b@tgui.eu)
5//
6// This software is provided 'as-is', without any express or implied warranty.
7// In no event will the authors be held liable for any damages arising from the use of this software.
8//
9// Permission is granted to anyone to use this software for any purpose,
10// including commercial applications, and to alter it and redistribute it freely,
11// subject to the following restrictions:
12//
13// 1. The origin of this software must not be misrepresented;
14// you must not claim that you wrote the original software.
15// If you use this software in a product, an acknowledgment
16// in the product documentation would be appreciated but is not required.
17//
18// 2. Altered source versions must be plainly marked as such,
19// and must not be misrepresented as being the original software.
20//
21// 3. This notice may not be removed or altered from any source distribution.
22//
24
25
26#ifndef TGUI_BACKEND_TEXTURE_HPP
27#define TGUI_BACKEND_TEXTURE_HPP
28
29#include <TGUI/Font.hpp>
30#include <TGUI/String.hpp>
31#include <memory>
32
34
35namespace tgui
36{
40 class TGUI_API BackendTexture
41 {
42 public:
43
47 virtual ~BackendTexture() = default;
48
49
57 bool load(Vector2u size, std::unique_ptr<std::uint8_t[]> pixels, bool smooth);
58
59
69 virtual bool loadTextureOnly(Vector2u size, const std::uint8_t* pixels, bool smooth);
70
71
76#ifdef TGUI_NEXT
77 Vector2u getSize() const;
78#else
79 virtual Vector2u getSize() const;
80#endif
81
82
88 virtual void setSmooth(bool smooth);
89
90
96#ifdef TGUI_NEXT
97 bool isSmooth() const;
98#else
99 virtual bool isSmooth() const;
100#endif
101
102
110 bool isTransparentPixel(Vector2u pixel) const;
111
112
114 protected:
115
116 Vector2u m_imageSize;
117 std::unique_ptr<std::uint8_t[]> m_pixels;
118 bool m_isSmooth = true;
119 };
120
121#ifndef TGUI_REMOVE_DEPRECATED_CODE
122 using BackendTextureBase TGUI_DEPRECATED("BackendTextureBase was renamed to BackendTexture") = BackendTexture;
123#endif
124}
125
127
128#endif // TGUI_BACKEND_TEXTURE_HPP
Base class for texture implementations that depend on the backend.
Definition: BackendTexture.hpp:41
virtual bool isSmooth() const
Returns whether the smooth filter is enabled or not.
virtual void setSmooth(bool smooth)
Changes whether the smooth filter is enabled or not.
bool isTransparentPixel(Vector2u pixel) const
Checks if a certain pixel is transparent.
virtual bool loadTextureOnly(Vector2u size, const std::uint8_t *pixels, bool smooth)
Loads the texture from an array of 32-bits RGBA pixels, but don't take ownership of the pixels.
bool load(Vector2u size, std::unique_ptr< std::uint8_t[]> pixels, bool smooth)
Loads the texture from an array of 32-bits RGBA pixels.
virtual ~BackendTexture()=default
Virtual destructor.
virtual Vector2u getSize() const
Returns the size of the entire image.
Namespace that contains all TGUI functions and classes.
Definition: AbsoluteOrRelativeValue.hpp:36