BALL::VIEW::GLOffscreenTarget Class Reference

Model of the RenderWindow which uses OpenGL to render its buffer into a file. More...

#include <glOffscreenTarget.h>

Inheritance diagram for BALL::VIEW::GLOffscreenTarget:
Inheritance graph
[legend]

List of all members.


Public Member Functions

GLOffscreenTarget (GLRenderWindow *share_from, const String &filename)
Create a new GLOffscreenTarget with context shared from an existing GLRenderWindow.
virtual void prepareRendering ()
virtual void prepareUpscaling (Size final_width, Size final_height)
virtual bool resize (const unsigned int width, const unsigned int height)
Request new window size.
virtual void refresh ()
Request that the image is actually displayed on the screen or other device the window encapsulated.
void tryUsePixelBuffer (bool use_pbo=true)
QImage getImage ()
void updateImageTile (Size x_lower, Size y_lower, Size x_upper, Size y_upper)
virtual QPaintEngine * paintEngine () const
virtual int metric (PaintDeviceMetric metric) const

Protected Attributes

String filename_
GLRenderWindow * share_from_
boost::shared_ptr< QGLPixelBuffer > pixel_buffer_
bool use_pixel_buffer_
QImage current_image_

Detailed Description

Model of the RenderWindow which uses OpenGL to render its buffer into a file.

The class will try to use a pixel buffer target if this is available. If the OpenGL driver has no support for PixelBufferObjects, we try to render into a window on screen instead.


Member Function Documentation

virtual void BALL::VIEW::GLOffscreenTarget::refresh ( ) [virtual]

Request that the image is actually displayed on the screen or other device the window encapsulated.

You should implement this method in subclass. This is different from RenderTarget releaseBuffer. ReleaseBuffer only informs the window that a buffer is ready, but does not imply the buffer is actually displayed somewhere. This is done by refresh. On the other hand, refresh called inbetween getBuffer and releaseBuffer has no effect.

Reimplemented from BALL::VIEW::RenderWindow< float >.

virtual bool BALL::VIEW::GLOffscreenTarget::resize ( const unsigned int width,
const unsigned int height
) [virtual]

Request new window size.

Returns false if such a size cannot be supplied This call must be made before the window buffer is handed out to be rendered. This precondition is being checked automatically, see getBuffer

Reimplemented from BALL::VIEW::RenderWindow< float >.


Generated on Thu Aug 6 18:30:59 2009 for BALL by doxygen 1.5.8