#include <glOffscreenTarget.h>
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_ |
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.
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 >.