Learn
Download
Community
Development
Home
»
Learn
»
2.3 Documentation
»
RenderTarget.hpp Source File
Français
Donate
Documentation of SFML 2.3
Warning:
this page refers to an old version of SFML. Click here to switch to the latest version.
Main Page
Related Pages
Modules
Classes
Files
File List
SFML
include
SFML
Graphics
RenderTarget.hpp
1
//
3
// SFML - Simple and Fast Multimedia Library
4
// Copyright (C) 2007-2015 Laurent Gomila (laurent@sfml-dev.org)
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
#ifndef SFML_RENDERTARGET_HPP
26
#define SFML_RENDERTARGET_HPP
27
29
// Headers
31
#include <SFML/Graphics/Export.hpp>
32
#include <SFML/Graphics/Color.hpp>
33
#include <SFML/Graphics/Rect.hpp>
34
#include <SFML/Graphics/View.hpp>
35
#include <SFML/Graphics/Transform.hpp>
36
#include <SFML/Graphics/BlendMode.hpp>
37
#include <SFML/Graphics/RenderStates.hpp>
38
#include <SFML/Graphics/PrimitiveType.hpp>
39
#include <SFML/Graphics/Vertex.hpp>
40
#include <SFML/System/NonCopyable.hpp>
41
42
43
namespace
sf
44
{
45
class
Drawable;
46
51
class
SFML_GRAPHICS_API
RenderTarget
:
NonCopyable
52
{
53
public
:
54
59
virtual
~
RenderTarget
();
60
70
void
clear(
const
Color
& color =
Color
(0, 0, 0, 255));
71
91
void
setView(
const
View
& view);
92
101
const
View
& getView()
const
;
102
114
const
View
& getDefaultView()
const
;
115
129
IntRect
getViewport(
const
View
& view)
const
;
130
149
Vector2f
mapPixelToCoords(
const
Vector2i
& point)
const
;
150
180
Vector2f
mapPixelToCoords(
const
Vector2i
& point,
const
View
& view)
const
;
181
200
Vector2i
mapCoordsToPixel(
const
Vector2f
& point)
const
;
201
227
Vector2i
mapCoordsToPixel(
const
Vector2f
& point,
const
View
& view)
const
;
228
236
void
draw(
const
Drawable
& drawable,
const
RenderStates
& states =
RenderStates::Default
);
237
247
void
draw(
const
Vertex
* vertices, std::size_t vertexCount,
248
PrimitiveType
type,
const
RenderStates
& states =
RenderStates::Default
);
249
256
virtual
Vector2u
getSize()
const
= 0;
257
290
void
pushGLStates();
291
301
void
popGLStates();
302
324
void
resetGLStates();
325
326
protected
:
327
332
RenderTarget
();
333
341
void
initialize();
342
343
private
:
344
349
void
applyCurrentView();
350
357
void
applyBlendMode(
const
BlendMode
& mode);
358
365
void
applyTransform(
const
Transform
& transform);
366
373
void
applyTexture(
const
Texture
* texture);
374
381
void
applyShader(
const
Shader
* shader);
382
395
virtual
bool
activate(
bool
active) = 0;
396
401
struct
StatesCache
402
{
403
enum
{VertexCacheSize = 4};
404
405
bool
glStatesSet;
406
bool
viewChanged;
407
BlendMode
lastBlendMode;
408
Uint64 lastTextureId;
409
bool
useVertexCache;
410
Vertex
vertexCache[VertexCacheSize];
411
};
412
414
// Member data
416
View
m_defaultView;
417
View
m_view;
418
StatesCache m_cache;
419
};
420
421
}
// namespace sf
422
423
424
#endif // SFML_RENDERTARGET_HPP
425
426
sf::PrimitiveType
PrimitiveType
Types of primitives that a sf::VertexArray can render.
Definition:
PrimitiveType.hpp:39
sf::Color
Utility class for manipulating RGBA colors.
Definition:
Color.hpp:40
sf::Vertex
Define a point with color and texture coordinates.
Definition:
Vertex.hpp:42
sf
Definition:
AlResource.hpp:34
sf::RenderStates
Define the states used for drawing to a RenderTarget.
Definition:
RenderStates.hpp:45
sf::RenderStates::Default
static const RenderStates Default
Special instance holding the default render states.
Definition:
RenderStates.hpp:110
sf::Drawable
Abstract base class for objects that can be drawn to a render target.
Definition:
Drawable.hpp:44
sf::Transform
Define a 3x3 transform matrix.
Definition:
Transform.hpp:42
sf::Rect< int >
sf::Texture
Image living on the graphics card that can be used for drawing.
Definition:
Texture.hpp:47
sf::BlendMode
Blending modes for drawing.
Definition:
BlendMode.hpp:41
sf::Shader
Shader class (vertex and fragment)
Definition:
Shader.hpp:51
sf::View
2D camera that defines what region is shown on screen
Definition:
View.hpp:43
sf::NonCopyable
Utility class that makes any derived class non-copyable.
Definition:
NonCopyable.hpp:41
sf::RenderTarget
Base class for all render targets (window, texture, ...)
Definition:
RenderTarget.hpp:51
sf::Vector2< float >