Crazy Eddie's GUI System 0.8.7
GL3FBOTextureTarget.h
1/***********************************************************************
2 created: Wed, 8th Feb 2012
3 author: Lukas E Meindl (based on code by Paul D Turner)
4*************************************************************************/
5/***************************************************************************
6 * Copyright (C) 2004 - 2012 Paul D Turner & The CEGUI Development Team
7 *
8 * Permission is hereby granted, free of charge, to any person obtaining
9 * a copy of this software and associated documentation files (the
10 * "Software"), to deal in the Software without restriction, including
11 * without limitation the rights to use, copy, modify, merge, publish,
12 * distribute, sublicense, and/or sell copies of the Software, and to
13 * permit persons to whom the Software is furnished to do so, subject to
14 * the following conditions:
15 *
16 * The above copyright notice and this permission notice shall be
17 * included in all copies or substantial portions of the Software.
18 *
19 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
20 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
21 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
22 * IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
23 * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
24 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
25 * OTHER DEALINGS IN THE SOFTWARE.
26 ***************************************************************************/
27#ifndef _CEGUIOpenGL3FBOTextureTarget_h_
28#define _CEGUIOpenGL3FBOTextureTarget_h_
29
30#include "CEGUI/RendererModules/OpenGL/TextureTarget.h"
31#include "CEGUI/RendererModules/OpenGL/GL.h"
32#include "../../Rect.h"
33
34
35#if defined(_MSC_VER)
36# pragma warning(push)
37# pragma warning(disable : 4250)
38#endif
39
40// Start of CEGUI namespace section
41namespace CEGUI
42{
43class OpenGL3Texture;
44class OpenGL3Renderer;
45
47class OPENGL_GUIRENDERER_API OpenGL3FBOTextureTarget : public OpenGLTextureTarget
48{
49public:
52
53 // overrides from OpenGL3RenderTarget
54 void activate();
55 void deactivate();
56 // implementation of TextureTarget interface
57 void clear();
58 void declareRenderSize(const Sizef& sz);
59 // specialise functions from OpenGL3TextureTarget
62
63protected:
65 static const float DEFAULT_SIZE;
66
73
78};
79
80} // End of CEGUI namespace section
81
82#if defined(_MSC_VER)
83# pragma warning(pop)
84#endif
85
86#endif // end of guard _CEGUIOpenGLFBOTextureTarget_h_
~OpenGL3FBOTextureTarget - allows rendering to an OpenGL texture via FBO.
Definition: GL3FBOTextureTarget.h:48
void activate()
Activate the render target and put it in a state ready to be drawn to.
void resizeRenderTexture()
resize the texture
void grabTexture()
Grab the texture to a local buffer.
GLuint d_frameBuffer
Frame buffer object.
Definition: GL3FBOTextureTarget.h:75
void restoreTexture()
Restore the texture from the locally buffered copy previously create by a call to grabTexture.
void initialiseRenderTexture()
allocate and set up the texture used with the FBO.
GLuint d_previousFrameBuffer
Frame buffer object that was bound before we bound this one.
Definition: GL3FBOTextureTarget.h:77
static const float DEFAULT_SIZE
default size of created texture objects
Definition: GL3FBOTextureTarget.h:65
void clear()
Clear the surface of the underlying texture.
void checkFramebufferStatus()
Checks for OpenGL framebuffer completeness.
void declareRenderSize(const Sizef &sz)
Used to declare to the TextureTarget the largest size, in pixels, of the next set of incoming renderi...
void deactivate()
Deactivate the render target after having completed rendering.
Renderer class to interface with desktop OpenGL version >= 3.2 or OpenGL ES version >= 2.
Definition: GL3Renderer.h:55
OpenGLTextureTarget - Common base class for all OpenGL render targets based on some form of RTT suppo...
Definition: RendererModules/OpenGL/TextureTarget.h:47
Main namespace for Crazy Eddie's GUI Library.
Definition: arch_overview.dox:1