Gamedev Framework (gf) 1.2.0
A C++17 framework for 2D games
RenderTexture.h
1/*
2 * Gamedev Framework (gf)
3 * Copyright (C) 2016-2022 Julien Bernard
4 *
5 * This software is provided 'as-is', without any express or implied
6 * warranty. In no event will the authors be held liable for any damages
7 * 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
11 * freely, subject to the following restrictions:
12 *
13 * 1. The origin of this software must not be misrepresented; you must not
14 * claim that you wrote the original software. If you use this software
15 * in a product, an acknowledgment in the product documentation would be
16 * appreciated but is not required.
17 * 2. Altered source versions must be plainly marked as such, and must not be
18 * misrepresented as being the original software.
19 * 3. This notice may not be removed or altered from any source distribution.
20 *
21 * Part of this file comes from SFML, with the same license:
22 * Copyright (C) 2007-2015 Laurent Gomila (laurent@sfml-dev.org)
23 */
24#ifndef GF_RENDER_TEXTURE_H
25#define GF_RENDER_TEXTURE_H
26
27#include "GraphicsApi.h"
28#include "RenderTarget.h"
29
30namespace gf {
31#ifndef DOXYGEN_SHOULD_SKIP_THIS
32inline namespace v1 {
33#endif
34
98 class GF_GRAPHICS_API RenderTexture : public RenderTarget {
99 public:
106
117 void setSmooth(bool smooth = true) {
118 m_texture.setSmooth(smooth);
119 }
120
128 bool isSmooth() const {
129 return m_texture.isSmooth();
130 }
131
142 void setRepeated(bool repeated = true) {
143 m_texture.setRepeated(repeated);
144 }
145
153 bool isRepeated() const {
154 return m_texture.isRepeated();
155 }
156
157 Vector2i getSize() const override;
158
164 void resize(Vector2i size);
165
166 void setActive() override;
167
176 void display();
177
184 Image capture() const;
185
200 const Texture& getTexture() const {
201 return m_texture;
202 }
203
204 private:
206 Texture m_texture;
207 };
208
209#ifndef DOXYGEN_SHOULD_SKIP_THIS
210}
211#endif
212}
213
214#endif // GF_RENDER_TEXTURE_H
Class for loading, manipulating and saving images.
Definition: Image.h:81
Base class for all render targets (window, texture, ...)
Definition: RenderTarget.h:102
Target for off-screen 2D rendering into a texture.
Definition: RenderTexture.h:98
void resize(Vector2i size)
Resize the underlying texture.
bool isSmooth() const
Check if the smooth filtering is enabled or not.
Definition: RenderTexture.h:128
RenderTexture(Vector2i size)
Create the render-texture.
void setSmooth(bool smooth=true)
Enable or disable texture smoothing.
Definition: RenderTexture.h:117
void setRepeated(bool repeated=true)
Enable or disable texture repeating.
Definition: RenderTexture.h:142
void display()
Update the contents of the target texture.
void setActive() override
Activate the render target for rendering.
Image capture() const
Copy the current contents of the render texture to an image.
Vector2i getSize() const override
Return the size of the rendering region of the target.
bool isRepeated() const
Check if the texture is repeated or not.
Definition: RenderTexture.h:153
const Texture & getTexture() const
Get a read-only reference to the target texture.
Definition: RenderTexture.h:200
A texture for colored images.
Definition: Texture.h:313
The namespace for gf classes.