Crazy Eddies GUI System 0.7.6
Public Member Functions | Protected Member Functions | Protected Attributes | Static Protected Attributes
CEGUI::OpenGLRenderTarget Class Reference

Intermediate OpenGL implementation of a RenderTarget. More...

Inheritance diagram for CEGUI::OpenGLRenderTarget:
Collaboration diagram for CEGUI::OpenGLRenderTarget:

List of all members.

Public Member Functions

 OpenGLRenderTarget (OpenGLRenderer &owner)
 Constructor.
void draw (const GeometryBuffer &buffer)
 Draw geometry from the given GeometryBuffer onto the surface that this RenderTarget represents.
void draw (const RenderQueue &queue)
 Draw geometry from the given RenderQueue onto the surface that this RenderTarget represents.
void setArea (const Rect &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).
const Rect & getArea () const
 Return the area defined for this RenderTarget.
void activate ()
 Activate the render target and put it in a state ready to be drawn to.
void deactivate ()
 Deactivate the render target after having completed rendering.
void unprojectPoint (const GeometryBuffer &buff, const Vector2 &p_in, Vector2 &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

virtual void updateMatrix () const
 helper that initialises the cached matrix

Protected Attributes

OpenGLRenderer & d_owner
 OpenGLRenderer that created this object.
Rect d_area
 holds defined area for the RenderTarget
double d_matrix [16]
 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 double d_yfov_tan
 tangent of the y FOV half-angle; used to calculate viewing distance.

Detailed Description

Intermediate OpenGL implementation of a RenderTarget.


Member Function Documentation

void CEGUI::OpenGLRenderTarget::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.

Reimplemented in CEGUI::OpenGLApplePBTextureTarget, CEGUI::OpenGLFBOTextureTarget, CEGUI::OpenGLGLXPBTextureTarget, and CEGUI::OpenGLWGLPBTextureTarget.

void CEGUI::OpenGLRenderTarget::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.

Reimplemented in CEGUI::OpenGLApplePBTextureTarget, CEGUI::OpenGLFBOTextureTarget, CEGUI::OpenGLGLXPBTextureTarget, and CEGUI::OpenGLWGLPBTextureTarget.

void CEGUI::OpenGLRenderTarget::draw ( const GeometryBuffer &  buffer) [virtual]

Draw geometry from the given GeometryBuffer onto the surface that this RenderTarget represents.

Parameters:
bufferGeometryBuffer object holding the geometry that should be drawn to the RenderTarget.

Implements CEGUI::RenderTarget.

void CEGUI::OpenGLRenderTarget::draw ( const RenderQueue &  queue) [virtual]

Draw geometry from the given RenderQueue onto the surface that this RenderTarget represents.

Parameters:
queueRenderQueue object holding the geometry that should be drawn to the RenderTarget.

Implements CEGUI::RenderTarget.

const Rect& CEGUI::OpenGLRenderTarget::getArea ( ) const [virtual]

Return the area defined for this RenderTarget.

Returns:
Rect object describing the currently defined area for this RenderTarget.

Implements CEGUI::RenderTarget.

void CEGUI::OpenGLRenderTarget::setArea ( const Rect &  area) [virtual]

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).

Parameters:
areaRect object describing the new area to be assigned to the RenderTarget.
Exceptions:
InvalidRequestExceptionMay be thrown if the RenderTarget does not support setting or changing its area, or if the area change can not be satisfied for some reason.

Implements CEGUI::RenderTarget.