Gamedev Framework (gf)
0.11.0
A C++14 framework for 2D games
include
gf
RenderPipeline.h
1
/*
2
* Gamedev Framework (gf)
3
* Copyright (C) 2016-2018 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
#include "Ref.h"
30
31
namespace
gf
{
32
#ifndef DOXYGEN_SHOULD_SKIP_THIS
33
inline
namespace
v1 {
34
#endif
35
36
class
Effect;
37
class
Window;
38
70
class
GF_API
RenderPipeline
:
public
RenderTarget
{
71
public
:
77
RenderPipeline
(
Window
& window);
78
82
~
RenderPipeline
();
83
89
void
addEffect(
Effect
& effect);
90
94
void
clearEffects();
95
116
void
resized();
117
118
virtual
Vector2u
getSize()
const override
;
119
123
void
display();
124
125
protected
:
133
virtual
void
onFramebufferResize(
Vector2u
size);
134
135
private
:
136
Window
& m_window;
137
138
struct
TextureBuffer {
139
Texture
texture;
140
unsigned
name;
141
};
142
143
TextureBuffer m_buffers[2];
144
int
m_current;
145
146
DefaultEffect
m_defaultEffect;
147
std::vector<Ref<Effect>> m_effects;
148
};
149
150
#ifndef DOXYGEN_SHOULD_SKIP_THIS
151
}
152
#endif
153
}
154
155
#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:35
gf::Window
An OS window.
Definition:
Window.h:88
gf::RenderPipeline
A render pipeline.
Definition:
RenderPipeline.h:70
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