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 } |
FloatColorBufferSize. More... | |
Public Types inherited from SoQtComponent | |
typedef void | SoQtComponentCB(void *userData, SoQtComponent *comp) |
Public Member Functions | |
int | getColorMapSize () |
Returns the color map size. | |
void | setColorMapSize (int size) |
Sets the color map size. | |
virtual WindowQt | getNormalWindow () |
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. | |
QOpenGLContext * | 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. | |
SoGLContext * | 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. | |
QWidget * | getNormalWidget () |
Gets the current normal widget. | |
QSurfaceFormat | getQSurfaceFormat () |
Returns the QSurfaceFormat currently used. | |
virtual void | setNormalVisual (QSurfaceFormat vis) |
Sets the visual/pixel format for the normal window. | |
virtual void | setNormalVisual (const SoGLFormat &format) |
Sets the visual/pixel format for the normal window. | |
virtual void | show () |
This shows the component. | |
virtual void | hide () |
This hides the component. | |
virtual void | setDoubleBuffer (SbBool onOrOff) |
Routine that dynamically changes between single and double buffering. | |
SbBool | isDoubleBuffer () |
Returns whether double buffering is on or off. | |
void | setBorder (SbBool onOrOff) |
Included for portability only. | |
int | getBorderSize () |
Included for portability only. | |
SbBool | isBorder () const |
Included for portability only. | |
void | setDrawToFrontBufferEnable (SbBool enableFlag) |
Sets drawing to the front buffer. | |
SbBool | isDrawToFrontBufferEnable () const |
Queries drawing to the front buffer. | |
virtual SbBool | bindNormalContext () |
Makes the normal rendering context the current context. | |
virtual SbBool | unbindNormalContext () |
unbind the current context (previously bind with bindNormalContext ); | |
virtual SbBool | swapNormalBuffers () |
Swaps the normal front and back buffers. | |
virtual void | setCursor (const QCursor &newCursor) |
Sets the current cursor. | |
QCursor | getCursor () const |
Returns the current cursor. | |
void | setAntialiasing (const float quality, const SoSceneManager::AntialiasingMode mode=SoSceneManager::AUTO) |
Enable (or disable) antialiasing with specified quality and mode. | |
void | setAntialiasing (SoAntialiasingParameters *advancedParameters) |
Enable (or disable) antialiasing with specific parameters. | |
float | getAntialiasingQuality () const |
Returns the antialiasing quality set using the setAntialiasing(float,AntialiasingMode) method. | |
SoSceneManager::AntialiasingMode | getAntialiasingMode () const |
Returns the antialiasing mode set using the setAntialiasing(float,AntialiasingMode) method. | |
SoAntialiasingParameters * | getAntialiasingParameters () const |
Returns the antialiasing parameters set using the setAntialiasing(SoAntialiasingParameters*) method. | |
bool | saveSnapshot (const SbString &filename, bool overwrite=true) |
Save a snapshot of the current image displayed in the viewer. | |
Public Member Functions inherited from SoQtComponent | |
SbBool | isVisible () |
Returns TRUE if this component is mapped onto the screen. | |
virtual QWidget * | getWidget () const |
This returns the base widget handle for this component. | |
SbBool | isTopLevelShell () const |
Returns TRUE if this component is a top level shell component (has its own window). | |
QWidget * | getShellWidget () const |
Returns the topLevelShell widget handle (NULL if the topLevelShell hasn't been created by this component). | |
QWidget * | getParentWidget () const |
Returns the parent widget handle. | |
void | setSize (const SbVec2s &size) |
Convenience routine on the widget handle. | |
SbVec2s | getSize () |
Convenience routine on the widget handle. | |
virtual SbBool | setFullScreen (const SbBool enable) |
Switches the viewer into (or out of) fullscreen mode. | |
SbBool | isFullScreen (void) const |
Queries if the viewer is in fullscreen mode. | |
void | setFullScreenEnable (const SbBool enable) |
Enables/disables fullscreen mode. | |
SbBool | isFullScreenEnable (void) const |
Queries if it is possible to put the viewer in fullscreen mode. | |
SbGlContextHelper::Display | getDisplay () |
On UNIX, returns the X display associated with this components widget. | |
void | setTitle (const char *newTitle) |
Sets window title. | |
void | setTitle (const SbString &newTitle) |
Sets window title. | |
void | setTitle (const QString &newTitle) |
Sets window title. | |
const QString | getTitle () const |
Gets window title. | |
void | setIconTitle (const QString &newIconTitle) |
Included for portability only. | |
const QString | getIconTitle () const |
Included for portability only. | |
SbString | getWidgetName () const |
Returns the widget handle name. | |
SbString | getClassName () const |
Returns the class name. | |
void | setWindowCloseCallback (SoQtComponentCB *func, void *data=NULL) |
Sets which callback to call when the user closes this component (double click in the upper left corner) - by default hide() is called on this component, unless a callback is set to something other than NULL. | |
Friends | |
class | SoQGLWidgetProxy |
Additional Inherited Members | |
Static Public Member Functions inherited from SoQtComponent | |
static SoQtComponent * | getComponent (QWidget *widget) |
Returns the SoQtComponent for this widget handle. | |
Public Attributes inherited from SoQtComponent | |
SbString | helpFileName |
Name of help file to open when the viewer Help button is pressed. | |
Component for OpenGL rendering.
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.
Definition at line 90 of file SoQtGLWidget.h.
FloatColorBufferSize.
Enumerator | |
---|---|
FLOAT_16_COLOR_BUFFER | 16-bit rendering per component. |
FLOAT_32_COLOR_BUFFER | 32-bit rendering per component. |
Definition at line 97 of file SoQtGLWidget.h.
|
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.
|
inline |
Included for portability only.
Definition at line 221 of file SoQtGLWidget.h.
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 |
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 |
|
inline |
Included for portability only.
Definition at line 226 of file SoQtGLWidget.h.
|
inline |
Returns whether double buffering is on or off.
Definition at line 211 of file SoQtGLWidget.h.
|
inline |
Queries drawing to the front buffer.
Definition at line 237 of file SoQtGLWidget.h.
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 | ( | 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::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::setBorder | ( | SbBool | onOrOff | ) |
Included for portability only.
void SoQtGLWidget::setColorMapSize | ( | int | size | ) |
Sets the color map size.
|
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 |
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 |
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 |
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 |
This shows the component.
Reimplemented from SoQtComponent.
|
virtual |
Swaps the normal front and back buffers.
|
virtual |
unbind the current context (previously bind with bindNormalContext );
|
friend |
Definition at line 563 of file SoQtGLWidget.h.