Crazy Eddie's GUI System  0.8.4
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Pages
CEGUI::OpenGLWGLPBTextureTarget Class Reference

OpenGLWGLPBTextureTarget - allows rendering to an OpenGL texture via the pbuffer WGL extension. More...

+ Inheritance diagram for CEGUI::OpenGLWGLPBTextureTarget:
+ Collaboration diagram for CEGUI::OpenGLWGLPBTextureTarget:

Public Member Functions

 OpenGLWGLPBTextureTarget (OpenGLRendererBase &owner)
 
void activate ()
 Activate the render target and put it in a state ready to be drawn to. More...
 
void deactivate ()
 Deactivate the render target after having completed rendering. More...
 
void clear ()
 Clear the surface of the underlying texture.
 
void declareRenderSize (const Sizef &sz)
 Used to declare to the TextureTarget the largest size, in pixels, of the next set of incoming rendering operations. More...
 
void grabTexture ()
 Grab the texture to a local buffer. More...
 
void restoreTexture ()
 Restore the texture from the locally buffered copy previously create by a call to grabTexture.
 
- Public Member Functions inherited from CEGUI::OpenGLTextureTarget
 OpenGLTextureTarget (OpenGLRendererBase &owner)
 constructor.
 
virtual ~OpenGLTextureTarget ()
 destructor
 
bool isImageryCache () const
 Return whether the RenderTarget is an implementation that caches actual rendered imagery. More...
 
TexturegetTexture () const
 Return a pointer to the CEGUI::Texture that the TextureTarget is using. More...
 
bool isRenderingInverted () const
 Return whether rendering done on the target texture is inverted in relation to regular textures. More...
 
- Public Member Functions inherited from CEGUI::OpenGLRenderTarget< TextureTarget >
 OpenGLRenderTarget (OpenGLRendererBase &owner)
 Constructor.
 
void draw (const GeometryBuffer &buffer)
 Draw geometry from the given GeometryBuffer onto the surface that this RenderTarget represents. More...
 
void draw (const RenderQueue &queue)
 Draw geometry from the given RenderQueue onto the surface that this RenderTarget represents. More...
 
void setArea (const Rectf &area)
 Set the area for this RenderTarget. The exact action this function will take depends upon what the concrete class is representing. For example, with a 'view port' style RenderTarget, this should set the area that the view port occupies on the display (or rendering window). More...
 
const RectfgetArea () const
 Return the area defined for this RenderTarget. More...
 
void activate ()
 Activate the render target and put it in a state ready to be drawn to. More...
 
void deactivate ()
 Deactivate the render target after having completed rendering. More...
 
void unprojectPoint (const GeometryBuffer &buff, const Vector2f &p_in, Vector2f &p_out) const
 Take point p_in unproject it and put the result in p_out. Resulting point is local to GeometryBuffer buff.
 

Protected Member Functions

void initialisePBuffer ()
 Initialise the PBuffer with the needed size.
 
void releasePBuffer ()
 Cleans up the pbuffer resources.
 
void enablePBuffer () const
 Switch rendering so it targets the pbuffer.
 
void disablePBuffer () const
 Switch rendering to target what was active before the pbuffer was used.
 
void initialiseTexture ()
 Perform basic initialisation of the texture we're going to use.
 
- Protected Member Functions inherited from CEGUI::OpenGLTextureTarget
void createCEGUITexture ()
 helper to create CEGUI::Texture d_CEGUITexture;
 
- Protected Member Functions inherited from CEGUI::OpenGLRenderTarget< TextureTarget >
virtual void updateMatrix () const
 helper that initialises the cached matrix
 

Protected Attributes

int d_pixfmt
 Holds the pixel format we use when creating the pbuffer.
 
HPBUFFERARB d_pbuffer
 Handle to the pbuffer itself.
 
HGLRC d_context
 Handle to the rendering context for the pbuffer.
 
HDC d_hdc
 Handle to the Windows device context for the pbuffer.
 
HGLRC d_prevContext
 Handle to the rendering context in use when we switched to the pbuffer.
 
HDC d_prevDC
 Handle to the device context in use when we switched to the pbuffer.
 
- Protected Attributes inherited from CEGUI::OpenGLTextureTarget
GLuint d_texture
 Associated OpenGL texture ID.
 
OpenGLTextured_CEGUITexture
 we use this to wrap d_texture so it can be used by the core CEGUI lib.
 
- Protected Attributes inherited from CEGUI::OpenGLRenderTarget< TextureTarget >
OpenGLRendererBased_owner
 OpenGLRendererBase that created this object.
 
Rectf d_area
 holds defined area for the RenderTarget
 
mat4Pimpld_matrix
 saved copy of projection matrix
 
bool d_matrixValid
 true if saved matrix is up to date
 
double d_viewDistance
 tracks viewing distance (this is set up at the same time as d_matrix)
 

Static Protected Attributes

static const float DEFAULT_SIZE
 default size of created texture objects
 
- Static Protected Attributes inherited from CEGUI::OpenGLTextureTarget
static uint s_textureNumber
 static data used for creating texture names
 
- Static Protected Attributes inherited from CEGUI::OpenGLRenderTarget< TextureTarget >
static const double d_yfov_tan
 tangent of the y FOV half-angle; used to calculate viewing distance.
 

Additional Inherited Members

- Public Types inherited from CEGUI::EventSet
typedef ConstMapIterator
< EventMap > 
EventIterator
 
- Static Public Attributes inherited from CEGUI::RenderTarget
static const String EventNamespace
 Namespace for global events.
 
static const String EventAreaChanged
 
- Protected Types inherited from CEGUI::EventSet
typedef std::map< String,
Event *, StringFastLessCompare
CEGUI_MAP_ALLOC(String, Event *)> 
EventMap
 
- Static Protected Member Functions inherited from CEGUI::OpenGLTextureTarget
static String generateTextureName ()
 helper to generate unique texture names
 

Detailed Description

OpenGLWGLPBTextureTarget - allows rendering to an OpenGL texture via the pbuffer WGL extension.

Member Function Documentation

void CEGUI::OpenGLWGLPBTextureTarget::activate ( )
virtual

Activate the render target and put it in a state ready to be drawn to.

Note
You MUST call this before doing any rendering - if you do not call this, in the unlikely event that your application actually works, it will likely stop working in some future version.

Implements CEGUI::RenderTarget.

void CEGUI::OpenGLWGLPBTextureTarget::deactivate ( )
virtual

Deactivate the render target after having completed rendering.

Note
You MUST call this after you finish rendering to the target - if you do not call this, in the unlikely event that your application actually works, it will likely stop working in some future version.

Implements CEGUI::RenderTarget.

void CEGUI::OpenGLWGLPBTextureTarget::declareRenderSize ( const Sizef sz)
virtual

Used to declare to the TextureTarget the largest size, in pixels, of the next set of incoming rendering operations.

Note
The main purpose of this is to allow for the implemenatation to resize the underlying texture so that it can hold the imagery that will be drawn.
Parameters
szSize object describing the largest area that will be rendererd in the next batch of rendering operations.
Exceptions
InvalidRequestExceptionMay be thrown if the TextureTarget would not be able to handle the operations rendering content of the given size.

Implements CEGUI::TextureTarget.

void CEGUI::OpenGLWGLPBTextureTarget::grabTexture ( )
virtual

Grab the texture to a local buffer.

This will destroy the OpenGL texture, and restoreTexture must be called before using it again.

Reimplemented from CEGUI::OpenGLTextureTarget.