Crazy Eddie's GUI System  0.8.4
CEGUI::RenderingWindow Class Reference

RenderingWindow is a RenderingSurface that can be "drawn back" onto another RenderingSurface and is primarily intended to be used as a kind of cache for rendered imagery. More...

+ Inheritance diagram for CEGUI::RenderingWindow:
+ Collaboration diagram for CEGUI::RenderingWindow:

List of all members.

Public Member Functions

 RenderingWindow (TextureTarget &target, RenderingSurface &owner)
 Constructor for RenderingWindow objects.
 ~RenderingWindow ()
 Destructor for RenderingWindow objects.
void setClippingRegion (const Rectf &region)
 Set the clipping region that will be used when rendering the imagery for this RenderingWindow back onto the RenderingSurface that owns it.
void setPosition (const Vector2f &position)
 Set the two dimensional position of the RenderingWindow in pixels. The origin is at the top-left corner.
void setSize (const Sizef &size)
 Set the size of the RenderingWindow in pixels.
void setRotation (const Quaternion &rotation)
 Set the rotation quaternion to be used when rendering the RenderingWindow back onto it's owning RenderingSurface.
void setPivot (const Vector3f &pivot)
 Set the location of the pivot point around which the RenderingWindow will be rotated.
const Vector2fgetPosition () const
 Return the current pixel position of the RenderingWindow. The origin is at the top-left corner.
const SizefgetSize () const
 Return the current size of the RenderingWindow in pixels.
const QuaterniongetRotation () const
 Return the current rotation being applied to the RenderingWindow.
const Vector3fgetPivot () const
 Return the rotation pivot point location for the RenderingWindow.
const TextureTargetgetTextureTarget () const
 Return the TextureTarget object that is the target for content rendered to this RenderingWindows. This is the same object passed into the constructor.
TextureTargetgetTextureTarget ()
void update (const float elapsed)
 Peform time based updated for the RenderingWindow.
void setRenderEffect (RenderEffect *effect)
 Set the RenderEffect that should be used with the RenderingWindow. This may be 0 to remove a previously set RenderEffect.
RenderEffectgetRenderEffect ()
 Return a pointer to the RenderEffect currently being used with the RenderingWindow. A return value of 0 indicates that no RenderEffect is being used.
void realiseGeometry ()
 generate geometry to be used when rendering back the RenderingWindow to it's owning RenderingSurface.
void invalidateGeometry ()
 Mark the geometry used when rendering the RenderingWindow back to it's owning RenderingSurface as invalid so that it gets regenerated on the next rendering pass.
const RenderingSurfacegetOwner () const
 Return the RenderingSurface that owns the RenderingWindow. This is also the RenderingSurface that will be used when the RenderingWindow renders back it's cached imagery content.
RenderingSurfacegetOwner ()
void unprojectPoint (const Vector2f &p_in, Vector2f &p_out)
 Fill in Vector2 object p_out with an unprojected version of the point described by Vector2 p_in.
void draw ()
 Draw the GeometryBuffers for all rendering queues to the RenderTarget that this RenderingSurface is targetting.
void invalidate ()
 Marks the RenderingSurface as invalid, causing the geometry to be rerendered to the RenderTarget next time draw is called.
bool isRenderingWindow () const
 Return whether this RenderingSurface is actually an instance of the RenderingWindow subclass.

Protected Member Functions

virtual void realiseGeometry_impl ()
 default generates geometry to draw window as a single quad.
void setOwner (RenderingSurface &owner)
 set a new owner for this RenderingWindow object

Protected Attributes

Rendererd_renderer
 holds ref to renderer
TextureTargetd_textarget
 TextureTarget to draw to. Like d_target in base, but avoiding downcasts.
RenderingSurfaced_owner
 RenderingSurface that owns this object, we render back to this object.
GeometryBufferd_geometry
 GeometryBuffer that holds geometry for drawing this window.
bool d_geometryValid
 indicates whether data in GeometryBuffer is up-to-date
Vector2f d_position
 Position of this RenderingWindow.
Sizef d_size
 Size of this RenderingWindow.
Quaternion d_rotation
 Rotation for this RenderingWindow.
Vector3f d_pivot
 Pivot point used for the rotation.

Friends

void RenderingSurface::transferRenderingWindow (RenderingWindow &)

Detailed Description

RenderingWindow is a RenderingSurface that can be "drawn back" onto another RenderingSurface and is primarily intended to be used as a kind of cache for rendered imagery.


Constructor & Destructor Documentation

Constructor for RenderingWindow objects.

Parameters:
targetThe TextureTarget based object that will be used as the target for content rendering done by the RenderingWindow.
ownerThe RenderingSurface object that will be our initial owner. This RenderingSurface is also the target where our cached imagery will be rendered back to.
Note:
The TextureTarget target remains under it's original ownership, and the RenderingSurface owner actually owns this object.

Member Function Documentation

void CEGUI::RenderingWindow::draw ( ) [virtual]

Draw the GeometryBuffers for all rendering queues to the RenderTarget that this RenderingSurface is targetting.

The GeometryBuffers remain in the rendering queues after the draw operation is complete. This allows the next draw operation to occur without needing to requeue all the GeometryBuffers (if for instance the sequence of buffers to be drawn remains unchanged).

Reimplemented from CEGUI::RenderingSurface.

Return the RenderingSurface that owns the RenderingWindow. This is also the RenderingSurface that will be used when the RenderingWindow renders back it's cached imagery content.

Returns:
RenderingSurface object that owns, and is targetted by, the RenderingWindow.

Return the rotation pivot point location for the RenderingWindow.

Returns:
Vector3 object describing the current location of the pivot point used when rotating the RenderingWindow.

Return the current pixel position of the RenderingWindow. The origin is at the top-left corner.

Returns:
Vector2 object describing the pixel position of the RenderingWindow.
Note:
This position is an absolute pixel location relative to the screen or other root surface. It is not relative to the owner of the RenderingWindow.

Return a pointer to the RenderEffect currently being used with the RenderingWindow. A return value of 0 indicates that no RenderEffect is being used.

Returns:
Pointer to the RenderEffect used with this RenderingWindow, or 0 for none.

Return the current rotation being applied to the RenderingWindow.

Returns:
Quaternion object describing the rotation for the RenderingWindow.

Return the current size of the RenderingWindow in pixels.

Returns:
Size object describing the current pixel size of the RenderingWindow.

Return the TextureTarget object that is the target for content rendered to this RenderingWindows. This is the same object passed into the constructor.

Returns:
The TextureTarget object that receives the rendered output resulting from geometry queued to this RenderingWindow.

Marks the RenderingSurface as invalid, causing the geometry to be rerendered to the RenderTarget next time draw is called.

Note that some surface types can never be in a 'valid' state and so rerendering occurs whenever draw is called. This function mainly exists as a means to hint to other surface types - those that physically cache the rendered output - that geometry content has changed and the cached imagery should be cleared and redrawn.

Reimplemented from CEGUI::RenderingSurface.

Mark the geometry used when rendering the RenderingWindow back to it's owning RenderingSurface as invalid so that it gets regenerated on the next rendering pass.

This is separate from the main invalidate() function because in most cases invalidating the cached imagery will not require the potentially expensive regeneration of the geometry for the RenderingWindow itself.

Return whether this RenderingSurface is actually an instance of the RenderingWindow subclass.

Returns:

Reimplemented from CEGUI::RenderingSurface.

generate geometry to be used when rendering back the RenderingWindow to it's owning RenderingSurface.

Note:
In normal usage you should never have to call this directly. There may be certain cases where it might be useful to call this when using the RenderEffect system.

Set the clipping region that will be used when rendering the imagery for this RenderingWindow back onto the RenderingSurface that owns it.

Note:
This is not the clipping region used when rendering the queued geometry onto the RenderingWindow, that still uses whatever regions are set on the queued GeometryBuffer objects.
Parameters:
regionRect object describing a rectangular clipping region.
Note:
The region should be described as absolute pixel locations relative to the screen or other root surface. The region should not be described relative to the owner of the RenderingWindow.
void CEGUI::RenderingWindow::setPivot ( const Vector3f pivot)

Set the location of the pivot point around which the RenderingWindow will be rotated.

Parameters:
pivotVector3 describing the three dimensional point around which the RenderingWindow will be rotated.
void CEGUI::RenderingWindow::setPosition ( const Vector2f position)

Set the two dimensional position of the RenderingWindow in pixels. The origin is at the top-left corner.

Parameters:
positionVector2 object describing the desired location of the RenderingWindow, in pixels.
Note:
This position is an absolute pixel location relative to the screen or other root surface. It is not relative to the owner of the RenderingWindow.

Set the RenderEffect that should be used with the RenderingWindow. This may be 0 to remove a previously set RenderEffect.

Note:
Ownership of the RenderEffect does not change; the RenderingWindow will not delete a RenderEffect assigned to it when the RenderingWindow is destroyed.
void CEGUI::RenderingWindow::setRotation ( const Quaternion rotation)

Set the rotation quaternion to be used when rendering the RenderingWindow back onto it's owning RenderingSurface.

Parameters:
rotationQuaternion object describing the rotation.
void CEGUI::RenderingWindow::setSize ( const Sizef size)

Set the size of the RenderingWindow in pixels.

Parameters:
sizeSize object that describes the desired size of the RenderingWindow, in pixels.
void CEGUI::RenderingWindow::update ( const float  elapsed)

Peform time based updated for the RenderingWindow.

Note:
Currently this really only has meaning for RenderingWindow objects that have RenderEffect objects set. Though this may not always be the case.
Parameters:
elapsedfloat value describing the number of seconds that have passed since the previous call to update.
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends