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:
44  {
52  TTT_NONE
53  };
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
172  void endRendering();
173  bool isS3TCSupported() const;
175  const bool force = false);
176  void setViewProjectionMatrix(const mat4Pimpl* viewProjectionMatrix);
177 
178 protected:
182 
183  void initialiseRendererIDString();
184 
194 
206  OpenGLRenderer(const Sizef& display_size, const TextureTargetType tt_type);
207 
212  virtual ~OpenGLRenderer();
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.
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
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.
void setViewProjectionMatrix(const mat4Pimpl *viewProjectionMatrix)
Helper to set the view projection matrix.
static OpenGLRenderer & create(const TextureTargetType tt_type=TTT_AUTO, const int abi=CEGUI_VERSION_ABI)
Create an OpenGLRenderer object.
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
void setupRenderingBlendMode(const BlendMode mode, const bool force=false)
set the render states for the specified BlendMode.
TextureTarget * createTextureTarget_impl()
return some appropriate TextureTarget subclass instance.
virtual ~OpenGLRenderer()
Destructor for OpenGLRenderer objects.
void cleanupExtraStates()
cleanup the extra GL states enabled via enableExtraStateSettings
OpenGLGeometryBufferBase * createGeometryBuffer_impl()
Overrides.
void setupExtraStates()
init the extra GL states enabled via enableExtraStateSettings
OpenGLRenderer(const Sizef &display_size, const TextureTargetType tt_type)
Constructor for OpenGL Renderer objects.
static OpenGLRenderer & create(const Sizef &display_size, const TextureTargetType tt_type=TTT_AUTO, const int abi=CEGUI_VERSION_ABI)
Create an OpenGLRenderer object.
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