Provided by: inventor-doc_2.1.5-10+dfsg-2.1build2_all bug

NAME

       SoXtGLWidget — wrapper around GLwMDraw for OpenGL rendering in a motif widget

INHERITS FROM

       SoXtComponent > SoXtGLWidget

SYNOPSIS

       #include <Inventor/Xt/SoXtGLWidget.h>

          Methods from class SoXtGLWidget:

     void                setBorder(SbBool onOrOff)
     SbBool              isBorder() const
     virtual void        setDoubleBuffer(SbBool onOrOff)
     SbBool              isDoubleBuffer()
     Window              getNormalWindow()
     Window              getOverlayWindow()
     GLXContext          getNormalContext()
     GLXContext          getOverlayContext()
     Widget              getNormalWidget()
     Widget              getOverlayWidget()
     virtual void        setNormalVisual(XVisualInfo *vis)
     XVisualInfo *       getNormalVisual()
     virtual void        setOverlayVisual(XVisualInfo *vis)
     XVisualInfo *       getOverlayVisual()
     void                setDrawToFrontBufferEnable(SbBool enableFlag)
     SbBool              isDrawToFrontBufferEnable() const

          Methods from class SoXtComponent:

     virtual void            show()
     virtual void            hide()
     SbBool                  isVisible()
     Widget                  getWidget() const
     SbBool                  isTopLevelShell() const
     Widget                  getShellWidget() const
     Widget                  getParentWidget() const
     void                    setSize(const SbVec2s &size)
     SbVec2s                 getSize()
     Display *               getDisplay()
     void                    setTitle(const char *newTitle)
     const char *            getTitle() const
     void                    setIconTitle(const char *newIconTitle)
     const char *            getIconTitle() const
     void                    setWindowCloseCallback(SoXtComponentCB *func, void *data = NULL)
     static SoXtComponent *  getComponent(Widget w)
     const char *            getWidgetName() const
     const char *            getClassName() const

DESCRIPTION

       This abstract base class provides a C++ wrapper around the GLwMDraw widget. It allows OpenGL rendering to
       be  performed  within  a  motif widget and is used by the SoXtRenderArea. SoXtGlWidget uses a form widget
       around two separate GLwMDraw 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 X events.

METHODS

     void                setBorder(SbBool onOrOff)
     SbBool              isBorder() const
          Show and hide the border around the glx widgets (thickness 3). Default  is  no  border  (FALSE).  (The
          SoXtRenderArea subclass defaults turns the border on by default.)

     virtual void        setDoubleBuffer(SbBool onOrOff)
     SbBool              isDoubleBuffer()
          Routine  which  dynamically changes between single and double buffering. Default is double buffer off.
          (The SoXtRenderArea subclass makes it double buffer by default.)

     Window              getNormalWindow()
     Window              getOverlayWindow()
     GLXContext          getNormalContext()
     GLXContext          getOverlayContext()
     Widget              getNormalWidget()
     Widget              getOverlayWidget()
          Get the current normal and overlay GLX windows, contexes and widgets, which are needed as arguments to
          glXMakeCurrent() when doing drawing in the normal or overlay planes.

          Note: These should not be cached by users because they will change as single/double buffering changes.

     virtual void        setNormalVisual(XVisualInfo *vis)
     XVisualInfo *       getNormalVisual()
     virtual void        setOverlayVisual(XVisualInfo *vis)
     XVisualInfo *       getOverlayVisual()
          Specify exactly what the visual should be for the normal and overlay window. This allows the  user  to
          create  all  possible  visuals supported by OpenGL. The XVisualInfo structure should be a valid OpenGL
          visual returned by  glXChooseVisual().  This  structure  will  be  copied  by  the  SoXtGLWidget;  the
          application  is  responsible  for  freeing  the  visual  info with XFree() when done. (The methods for
          setting the visual are virtual so that derived classes can know when the visual is changing.)

     void                setDrawToFrontBufferEnable(SbBool enableFlag)
     SbBool              isDrawToFrontBufferEnable() const
          Inventor 2.1 changed the behavior of double buffered windows to redraw temporary to the  front  buffer
          when an expose event is received or when a new sceneGraph() is set on an SoXtRenderArea. This does not
          apply  for  general  interactive  rendering.  The  idea  is  that it is better to see something redraw
          (especially if it is slow) than to see garbage in the window (in the expose case) or  an  old  invalid
          scene graph (in the SoXtRenderArea::setSceneGraph() case).

          This  API  enables  you  to  turn  this functionality OFF if for some reason you are unable to prevent
          repeated expose from causing a redraw (which is bad and should be fixed, as it gets  worse  for  large
          scenes). This will be the case for example if you can't create a pulldown menu in the popup planes.

          NOTE:  this  api  might  be removed in some future releases and is only intended as a porting help for
          Inventor 2.0 to 2.1

SEE ALSO

       SoXtComponent, SoXtRenderArea

                                                                                             SoXtGLWidget(3IV)()