Crazy Eddie's GUI System 0.8.7
Loading...
Searching...
No Matches
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
33namespace CEGUI
34{
39class OPENGL_GUIRENDERER_API OpenGLRenderer : public OpenGLRendererBase
40{
41public:
54
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
173 bool isS3TCSupported() const;
175 const bool force = false);
176 void setViewProjectionMatrix(const mat4Pimpl* viewProjectionMatrix);
177
178protected:
182
183 void initialiseRendererIDString();
184
194
206 OpenGLRenderer(const Sizef& display_size, const TextureTargetType tt_type);
207
213
216
219
222
223 void initialiseGLExtensions();
224
227};
228
229}
230
231#endif
232
Definition RendererBase.h:311
OpenGL based implementation of the GeometryBuffer interface.
Definition GeometryBufferBase.h:53
Common base class used for other OpenGL (desktop or ES) based renderer modules.
Definition RendererBase.h:54
Renderer class to interface with desktop OpenGL.
Definition GLRenderer.h:40
OGLTextureTargetFactory * d_textureTargetFactory
pointer to a helper that creates TextureTargets supported by the system.
Definition GLRenderer.h:226
void endRendering()
Perform any operations required to finalise rendering.
static OpenGLRenderer & bootstrapSystem(const Sizef &display_size, const TextureTargetType tt_type=TTT_AUTO, const int abi=CEGUI_VERSION_ABI)
Convenience function that creates the required objects to initialise the CEGUI system.
static OpenGLRenderer & create(const Sizef &display_size, const TextureTargetType tt_type=TTT_AUTO, const int abi=CEGUI_VERSION_ABI)
Create an OpenGLRenderer object.
static OpenGLRenderer & bootstrapSystem(const TextureTargetType tt_type=TTT_AUTO, const int abi=CEGUI_VERSION_ABI)
Convenience function that creates the required objects to initialise the CEGUI system.
OpenGLRenderer(const TextureTargetType tt_type)
Constructor for OpenGL Renderer objects.
TextureTargetType
Enumeration of valid texture target types.
Definition GLRenderer.h:44
@ TTT_PBUFFER
Use targets based on pbuffer support if available, else none.
Definition GLRenderer.h:50
@ TTT_AUTO
Automatically choose the best type available.
Definition GLRenderer.h:46
@ TTT_FBO
Use targets based on frame buffer objects if available, else none.
Definition GLRenderer.h:48
void initialiseTextureTargetFactory(const TextureTargetType tt_type)
initialise OGLTextureTargetFactory that will generate TextureTargets
void setViewProjectionMatrix(const mat4Pimpl *viewProjectionMatrix)
Helper to set the view projection matrix.
TextureTarget * createTextureTarget_impl()
return some appropriate TextureTarget subclass instance.
void beginRendering()
Perform any operations required to put the system into a state ready for rendering operations to begi...
static void destroy(OpenGLRenderer &renderer)
Destroy an OpenGLRenderer object.
bool isS3TCSupported() const
static OpenGLRenderer & create(const TextureTargetType tt_type=TTT_AUTO, const int abi=CEGUI_VERSION_ABI)
Create an OpenGLRenderer object.
void setupRenderingBlendMode(const BlendMode mode, const bool force=false)
set the render states for the specified BlendMode.
virtual ~OpenGLRenderer()
Destructor for OpenGLRenderer objects.
void cleanupExtraStates()
cleanup the extra GL states enabled via enableExtraStateSettings
void setupExtraStates()
init the extra GL states enabled via enableExtraStateSettings
OpenGLGeometryBufferBase * createGeometryBuffer_impl()
Overrides.
OpenGLRenderer(const Sizef &display_size, const TextureTargetType tt_type)
Constructor for OpenGL Renderer objects.
static void destroySystem()
Convenience function to cleanup the CEGUI system and related objects that were created by calling the...
Specialisation of RenderTarget interface that should be used as the base class for RenderTargets that...
Definition TextureTarget.h:41
Main namespace for Crazy Eddie's GUI Library.
Definition arch_overview.dox:1
BlendMode
Enumerated type that contains the valid options that specify the type of blending that is to be perfo...
Definition Renderer.h:62
Definition GlmPimpl.h:37