Gamedev Framework (gf)
0.5.0
A C++11 framework for 2D games
include
gf
RenderPipeline.h
1
/*
2
* Gamedev Framework (gf)
3
* Copyright (C) 2016-2017 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
#ifndef GF_RENDER_PIPELINE_H
22
#define GF_RENDER_PIPELINE_H
23
24
#include <vector>
25
26
#include "Effects.h"
27
#include "Portability.h"
28
#include "RenderTarget.h"
29
30
namespace
gf
{
31
#ifndef DOXYGEN_SHOULD_SKIP_THIS
32
inline
namespace
v1 {
33
#endif
34
35
class
Effect;
36
class
Window;
37
69
class
GF_API
RenderPipeline
:
public
RenderTarget
{
70
public
:
76
RenderPipeline
(
Window
& window);
77
81
~
RenderPipeline
();
82
88
void
addEffect(
Effect
& effect);
89
93
void
clearEffects();
94
115
void
resized();
116
117
virtual
Vector2u
getSize()
const override
;
118
122
void
display();
123
124
protected
:
132
virtual
void
onFramebufferResize(
Vector2u
size);
133
134
private
:
135
Window
& m_window;
136
137
struct
TextureBuffer {
138
Texture
texture;
139
unsigned
name;
140
};
141
142
TextureBuffer m_buffers[2];
143
int
m_current;
144
145
DefaultEffect
m_defaultEffect;
146
std::vector<Effect*> m_effects;
147
};
148
149
#ifndef DOXYGEN_SHOULD_SKIP_THIS
150
}
151
#endif
152
}
153
154
#endif // GF_RENDER_PIPELINE_H
gf::RenderTarget
Base class for all render targets (window, texture, ...)
Definition:
RenderTarget.h:66
gf::Texture
A texture for colored images.
Definition:
Texture.h:339
gf
The namespace for gf classes.
Definition:
Action.h:34
gf::Window
An OS window.
Definition:
Window.h:87
gf::RenderPipeline
A render pipeline.
Definition:
RenderPipeline.h:69
gf::Effect
A post-processing effect.
Definition:
Effect.h:38
gf::Vector< unsigned, 2 >
gf::DefaultEffect
Default effect.
Definition:
Effects.h:38
Generated by
1.8.13