Crazy Eddie's GUI System
0.8.7
GLRenderer.h
1
/***********************************************************************
2
created: Sun Jan 11 2009
3
authors: Paul D Turner <paul@cegui.org.uk>
4
Lukas E Meindl
5
*************************************************************************/
6
/***************************************************************************
7
* Copyright (C) 2004 - 2010 Paul D Turner & The CEGUI Development Team
8
*
9
* Permission is hereby granted, free of charge, to any person obtaining
10
* a copy of this software and associated documentation files (the
11
* "Software"), to deal in the Software without restriction, including
12
* without limitation the rights to use, copy, modify, merge, publish,
13
* distribute, sublicense, and/or sell copies of the Software, and to
14
* permit persons to whom the Software is furnished to do so, subject to
15
* the following conditions:
16
*
17
* The above copyright notice and this permission notice shall be
18
* included in all copies or substantial portions of the Software.
19
*
20
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
21
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
22
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
23
* IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
24
* OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
25
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
26
* OTHER DEALINGS IN THE SOFTWARE.
27
***************************************************************************/
28
#ifndef _CEGUIOpenGLRenderer_h_
29
#define _CEGUIOpenGLRenderer_h_
30
31
#include "RendererBase.h"
32
33
namespace
CEGUI
34
{
39
class
OPENGL_GUIRENDERER_API OpenGLRenderer :
public
OpenGLRendererBase
40
{
41
public
:
43
enum
TextureTargetType
44
{
46
TTT_AUTO,
48
TTT_FBO,
50
TTT_PBUFFER,
52
TTT_NONE
53
};
54
78
static
OpenGLRenderer& bootstrapSystem(
79
const
TextureTargetType tt_type = TTT_AUTO,
80
const
int
abi = CEGUI_VERSION_ABI);
81
108
static
OpenGLRenderer& bootstrapSystem(
const
Sizef& display_size,
109
const
TextureTargetType tt_type = TTT_AUTO,
110
const
int
abi = CEGUI_VERSION_ABI);
111
127
static
void
destroySystem();
128
140
static
OpenGLRenderer
& create(
const
TextureTargetType
tt_type = TTT_AUTO,
141
const
int
abi = CEGUI_VERSION_ABI);
142
157
static
OpenGLRenderer
& create(
const
Sizef
& display_size,
158
const
TextureTargetType
tt_type = TTT_AUTO,
159
const
int
abi = CEGUI_VERSION_ABI);
160
168
static
void
destroy(
OpenGLRenderer
& renderer);
169
170
// base class overrides / abstract function implementations
171
void
beginRendering();
172
void
endRendering();
173
bool
isS3TCSupported()
const
;
174
void
setupRenderingBlendMode(
const
BlendMode
mode,
175
const
bool
force =
false
);
176
void
setViewProjectionMatrix(
const
mat4Pimpl
* viewProjectionMatrix);
177
178
protected
:
180
OpenGLGeometryBufferBase
* createGeometryBuffer_impl();
181
TextureTarget
* createTextureTarget_impl();
182
183
void
initialiseRendererIDString();
184
193
OpenGLRenderer
(
const
TextureTargetType
tt_type);
194
206
OpenGLRenderer
(
const
Sizef
& display_size,
const
TextureTargetType
tt_type);
207
212
virtual
~
OpenGLRenderer
();
213
215
void
setupExtraStates();
216
218
void
cleanupExtraStates();
219
221
void
initialiseTextureTargetFactory(
const
TextureTargetType
tt_type);
222
223
void
initialiseGLExtensions();
224
226
OGLTextureTargetFactory
* d_textureTargetFactory;
227
};
228
229
}
230
231
#endif
232
CEGUI::OpenGLRenderer
Renderer class to interface with desktop OpenGL.
Definition:
GLRenderer.h:64
CEGUI
Main namespace for Crazy Eddie's GUI Library.
Definition:
arch_overview.dox:1
CEGUI::mat4Pimpl
Definition:
GlmPimpl.h:60
CEGUI::OpenGLGeometryBufferBase
OpenGL based implementation of the GeometryBuffer interface.
Definition:
GeometryBufferBase.h:77
CEGUI::BlendMode
BlendMode
Enumerated type that contains the valid options that specify the type of blending that is to be perfo...
Definition:
Renderer.h:87
CEGUI::Size< float >
CEGUI::TextureTarget
Specialisation of RenderTarget interface that should be used as the base class for RenderTargets that...
Definition:
TextureTarget.h:64
CEGUI::OpenGLRenderer::TextureTargetType
TextureTargetType
Enumeration of valid texture target types.
Definition:
GLRenderer.h:93
CEGUI::OGLTextureTargetFactory
Definition:
RendererBase.h:334
cegui
include
CEGUI
RendererModules
OpenGL
GLRenderer.h
Generated by
1.8.17