Component for OpenGL rendering. More...
#include <Inventor/Qt/SoQtGLWidget.h>
Public Types | |
enum | FloatColorBufferSize { FLOAT_16_COLOR_BUFFER = SoGuiGLWidget::FLOAT_16_COLOR_BUFFER, FLOAT_32_COLOR_BUFFER = SoGuiGLWidget::FLOAT_32_COLOR_BUFFER } |
Public Member Functions | |
int | getColorMapSize () |
void | setColorMapSize (int size) |
virtual WindowQt | getNormalWindow () |
QOpenGLContext * | getQOpenGLContext () |
SoGLContext * | getNormalSoContext () |
QWidget * | getNormalWidget () |
QSurfaceFormat | getQSurfaceFormat () |
virtual void | setNormalVisual (QSurfaceFormat vis) |
virtual void | setNormalVisual (const SoGLFormat &format) |
virtual void | show () |
virtual void | hide () |
virtual void | setDoubleBuffer (SbBool onOrOff) |
SbBool | isDoubleBuffer () |
void | setBorder (SbBool onOrOff) |
int | getBorderSize () |
SbBool | isBorder () const |
void | setDrawToFrontBufferEnable (SbBool enableFlag) |
SbBool | isDrawToFrontBufferEnable () const |
virtual SbBool | bindNormalContext () |
virtual SbBool | unbindNormalContext () |
virtual SbBool | swapNormalBuffers () |
virtual void | setCursor (const QCursor &newCursor) |
QCursor | getCursor () const |
void | setAntialiasing (const float quality, const SoSceneManager::AntialiasingMode mode=SoSceneManager::AUTO) |
void | setAntialiasing (SoAntialiasingParameters *advancedParameters) |
float | getAntialiasingQuality () const |
SoSceneManager::AntialiasingMode | getAntialiasingMode () const |
SoAntialiasingParameters * | getAntialiasingParameters () const |
bool | saveSnapshot (const SbString &filename, bool overwrite=true) |
Friends | |
class | SoQGLWidgetProxy |
This abstract base class provides a C++ wrapper around an OpenGL widget. It allows OpenGL rendering to be performed within a widget and is used by the SoQtRenderArea. SoQtGLWidget uses a parent window with two separate OpenGL widgets (one for single and one for double buffering), with routines to return the appropriate windows.
Subclasses only need to redefine the redraw() routine for rendering and processEvent() routine if they are interested in receiving Q events.
virtual SbBool SoQtGLWidget::bindNormalContext | ( | ) | [virtual] |
Makes the normal rendering context the current context.
Equivalent to makeNormalCurrent() call.
SoSceneManager::AntialiasingMode SoQtGLWidget::getAntialiasingMode | ( | ) | const |
Returns the antialiasing mode set using the setAntialiasing(float,AntialiasingMode) method. Returns AUTO by default. Parameters set using the setAntialiasing(SoAntialiasingParameters*) method may change the antialiasing mode, but do not affect the value returned by this method. Therefore this method does not necessarily return the current actual antialiasing mode.
SoAntialiasingParameters* SoQtGLWidget::getAntialiasingParameters | ( | ) | const |
Returns the antialiasing parameters set using the setAntialiasing(SoAntialiasingParameters*) method. Returns null by default. A quality value set using the setAntialiasing(float,AntialiasingMode) method may modify internal parameters, but does not affect the value returned by this method. Therefore this method does not necessarily return the current actual antialiasing parameters.
float SoQtGLWidget::getAntialiasingQuality | ( | ) | const |
Returns the antialiasing quality set using the setAntialiasing(float,AntialiasingMode) method. Returns 0.0 by default. Parameters set using the setAntialiasing(SoAntialiasingParameters*) method override internal parameters, but do not affect the value returned by this method. Therefore this method does not necessarily return the current actual antialiasing quality.
int SoQtGLWidget::getBorderSize | ( | ) | [inline] |
Included for portability only.
int SoQtGLWidget::getColorMapSize | ( | ) |
Returns the color map size.
QCursor SoQtGLWidget::getCursor | ( | ) | const |
Returns the current cursor.
SoGLContext* SoQtGLWidget::getNormalSoContext | ( | ) |
Gets the current context, which is needed as an argument to glXMakeCurrent() (on Xt) or SbGlContextHelper::makeCurrent() (on Windows) when drawing in the normal planes.
Note: This should not be cached by users because it will change as OpenGL format changes.
QWidget* SoQtGLWidget::getNormalWidget | ( | ) |
Gets the current normal widget.
Since Open Inventor 8.0, this widget is a QWidget. More information about this class can be found on-line in the Qt documentation.
Note: This should not be cached by users because it will change as OpenGL format changes.
virtual WindowQt SoQtGLWidget::getNormalWindow | ( | ) | [virtual] |
Gets the normal GL window (window system identifier of the widget), which is needed as an argument to glXMakeCurrent() (on Xt) or SbGlContextHelper::makeCurrent() (on Windows) when drawing in the normal planes.
Note: This should not be cached by users because it will change as single/double buffering changes.
QOpenGLContext* SoQtGLWidget::getQOpenGLContext | ( | ) |
Gets the current context, which is needed as an argument to glXMakeCurrent() (on Xt) or SbGlContextHelper::makeCurrent() (on Windows) when drawing in the normal planes.
Note: This should not be cached by users because it will change as OpenGL format changes.
QSurfaceFormat SoQtGLWidget::getQSurfaceFormat | ( | ) |
Returns the QSurfaceFormat currently used.
virtual void SoQtGLWidget::hide | ( | ) | [virtual] |
SbBool SoQtGLWidget::isBorder | ( | ) | const [inline] |
Included for portability only.
SbBool SoQtGLWidget::isDoubleBuffer | ( | ) | [inline] |
Returns whether double buffering is on or off.
SbBool SoQtGLWidget::isDrawToFrontBufferEnable | ( | ) | const [inline] |
Queries drawing to the front buffer.
bool SoQtGLWidget::saveSnapshot | ( | const SbString & | filename, | |
bool | overwrite = true | |||
) |
Save a snapshot of the current image displayed in the viewer. The image is read back from the OpenGL framebuffer and will be the same size as the viewer's drawing window. Returns true if successful.Notes:
filename | Fully qualified file path for the snapshot file. The specified filename must end with one of the extensions supported by SoJPEGImageRW (jpg, jpeg, ...), SoPNGImageRW (png), SoBMPImageRW (bmp), or SoTIFFImageRW (tif, ...). | |
overwrite | If true, overwrite any existing file with the same name (default is true). |
void SoQtGLWidget::setAntialiasing | ( | SoAntialiasingParameters * | advancedParameters | ) |
Enable (or disable) antialiasing with specific parameters. Use one of the subclasses of SoAntialiasingParameters. The antialiasing mode is determined by which subclass is used to set the parameters. For example, passing an SoFXAAParameters object automatically sets FXAA mode. Note that the parameters are overridden if a quality and mode are subsequently set using the setAntialiasing(float,AntialiasingMode) method.
advancedParameters | Provides specific parameters for an antialiasing mode. Use a null parameter to turn off antialiasing or use one of the subclasses of SoAntialiasingParameters. |
void SoQtGLWidget::setAntialiasing | ( | const float | quality, | |
const SoSceneManager::AntialiasingMode | mode = SoSceneManager::AUTO | |||
) |
Enable (or disable) antialiasing with specified quality and mode. Specific antialiasing parameters will be set automatically based on the quality value. Note that the quality and mode settings are overridden if specific antialiasing parameters are subsequently set using the setAntialiasing(SoAntialiasingParameters*) method.The default mode is AUTO but this may be overridden by setting the environment variable OIV_ANTIALIASING_DEFAULT_MODE (see SoPreferences).
quality | The quality is a factor in the range [0.0,1.0]. Use the value 0.0 to turn off antialiasing. 0.5 is a typical value. | |
mode | The antialiasing algorithm. Default is AUTO, which means use the best for the current hardware. Use the value NO_ANTIALIASING to turn off antialiasing. |
void SoQtGLWidget::setBorder | ( | SbBool | onOrOff | ) |
Included for portability only.
void SoQtGLWidget::setColorMapSize | ( | int | size | ) |
Sets the color map size.
virtual void SoQtGLWidget::setCursor | ( | const QCursor & | newCursor | ) | [virtual] |
Sets the current cursor.
If you are using a viewer class, the viewer will automatically change the cursor depending on the viewer mode. These changes will override the cursor set with this method unless you also call SoQtGLWidget::setCursorEnabled(FALSE).
virtual void SoQtGLWidget::setDoubleBuffer | ( | SbBool | onOrOff | ) | [virtual] |
Routine that dynamically changes between single and double buffering.
Default is double buffer off. (The SoQtRenderArea subclass makes it double buffer by default.)
void SoQtGLWidget::setDrawToFrontBufferEnable | ( | SbBool | enableFlag | ) |
Sets drawing to the front buffer.
Controls drawing to the front buffer when an obscured portion of the window is exposed. Default: TRUE.
virtual void SoQtGLWidget::setNormalVisual | ( | const SoGLFormat & | format | ) | [virtual] |
Sets the visual/pixel format for the normal window.
This allows the user to create all possible visuals supported by OpenGL. The OpenGL drivers or accelerated hardware may or may not support advanced features such as alpha channel or stereographic viewing. If you request some features that the driver/hardware does not provide when you set the QGLFormat , you will get a rendering context with the nearest subset of features.
The methods for setting the visual are virtual so that derived classes can know when the visual is changing.
virtual void SoQtGLWidget::setNormalVisual | ( | QSurfaceFormat | vis | ) | [virtual] |
Sets the visual/pixel format for the normal window.
This allows the user to create all possible visuals supported by OpenGL. The OpenGL drivers or accelerated hardware may or may not support advanced features such as alpha channel or stereographic viewing. If you request some features that the driver/hardware does not provide when you set the QGLFormat , you will get a rendering context with the nearest subset of features.
The methods for setting the visual are virtual so that derived classes can know when the visual is changing.
virtual void SoQtGLWidget::show | ( | ) | [virtual] |
This shows the component.
Reimplemented from SoQtComponent.
virtual SbBool SoQtGLWidget::swapNormalBuffers | ( | ) | [virtual] |
Swaps the normal front and back buffers.
virtual SbBool SoQtGLWidget::unbindNormalContext | ( | ) | [virtual] |
unbind the current context (previously bind with bindNormalContext );
friend class SoQGLWidgetProxy [friend] |