SoXtRenderArea Class Reference
[Xt]

Component for rendering Open Inventor scene graphs. More...

#include <Inventor/Xt/SoXtRenderArea.h>

Inheritance diagram for SoXtRenderArea:
SoXtGLWidget SoXtComponent SoXtViewer SoXtFullViewer SoXtConstrainedViewer SoXtExaminerViewer SoXtPlaneViewer SoTVizViewer SoXtFlyViewer SoXtWalkViewer

List of all members.

Public Member Functions

 SoXtRenderArea (SoWidget parent=NULL, const char *name=NULL, SbBool buildInsideParent=TRUE, SbBool getMouseInput=TRUE, SbBool getKeyboardInput=TRUE)
 ~SoXtRenderArea ()
virtual void setSceneGraph (SoNode *newScene)
virtual SoNodegetSceneGraph ()
void registerDevice (SoXtDevice *d)
void unregisterDevice (SoXtDevice *d)
void setBackgroundColor (const SbColor &c)
const SbColorgetBackgroundColor () const
void setBackgroundIndex (int index)
int getBackgroundIndex () const
void setColorMap (int startIndex, int num, const SbColor *colors)
void setViewportRegion (const SbViewportRegion &newRegion)
const SbViewportRegiongetViewportRegion () const
void setTransparencyType (SoGLRenderAction::TransparencyType type)
SoGLRenderAction::TransparencyType getTransparencyType () const
void setFastEditSavePolicy (SoGLRenderAction::FastEditSavePolicy policy, SbBool fastEditDelayedObjects=FALSE)
SoGLRenderAction::FastEditSavePolicy getFastEditSavePolicy () const
void setSortedTrianglesSortFrequency (int angle)
int getSortedTrianglesSortFrequency ()
void setSortedTrianglesNumCaches (int numCaches)
int getSortedTrianglesNumCaches ()
void setInvalidateCacheMode (SoGLRenderAction::InvalidateCacheMode icm)
SoGLRenderAction::InvalidateCacheMode getInvalidateCacheMode ()
void setClearBeforeRender (SbBool trueOrFalse, SbBool zbTrueOrFalse=TRUE)
SbBool isClearBeforeRender () const
SbBool isClearZBufferBeforeRender () const
void setAutoRedraw (SbBool trueOrFalse)
SbBool isAutoRedraw () const
void setRedrawPriority (uint32_t priority)
uint32_t getRedrawPriority () const
void render ()
void scheduleRedraw ()
void redrawOnSelectionChange (SoSelection *s)
void setEventCallback (SoXtRenderAreaEventCB *fcn, void *userData=NULL)
void setSceneManager (SoSceneManager *sm)
SoSceneManagergetSceneManager () const
void setGLRenderAction (SoGLRenderAction *ra)
SoGLRenderActiongetGLRenderAction () const
const SbGLShareContext getShareContext ()
void setPostRenderCallback (SoXtRenderAreaRenderCB *fcn, void *userData=NULL)
SoXtRenderAreaRenderCBgetPostRenderCallback (const void *&userData) const
void setFloatingColorBuffer (SbBool enable, FloatColorBufferSize size=FLOAT_16_COLOR_BUFFER)
void getFloatingColorBuffer (SbBool &enable, FloatColorBufferSize &size)
void sendEvent (XAnyEvent *anEvent)
virtual void setMPEGRecorder (SoMPEGRenderer *recorder)
virtual SoMPEGRenderergetMPEGRecorder () const

Static Public Member Functions

static uint32_t getDefaultRedrawPriority ()

Deprecated



SoDEPRECATED void setOverlaySceneGraph (SoNode *newScene)
SoDEPRECATED SoNodegetOverlaySceneGraph ()
SoDEPRECATED void setOverlayBackgroundIndex (int index)
SoDEPRECATED int getOverlayBackgroundIndex () const
SoDEPRECATED void setOverlayColorMap (int startIndex, int num, const SbColor *colors)
SoDEPRECATED void setClearBeforeOverlayRender (SbBool trueOrFalse)
SoDEPRECATED SbBool isClearBeforeOverlayRender () const
SoDEPRECATED void renderOverlay ()
SoDEPRECATED void scheduleOverlayRedraw ()
SoDEPRECATED void redrawOverlayOnSelectionChange (SoSelection *s)
SoDEPRECATED void setOverlaySceneManager (SoSceneManager *sm)
SoDEPRECATED SoSceneManagergetOverlaySceneManager () const
SoDEPRECATED void setOverlayGLRenderAction (SoGLRenderAction *ra)
SoDEPRECATED SoGLRenderActiongetOverlayGLRenderAction () const
SoDEPRECATED void setAntialiasing (SbBool smoothing, int numPasses)
SoDEPRECATED void getAntialiasing (SbBool &smoothing, int &numPasses) const

Detailed Description

Component for rendering Open Inventor scene graphs.

This class provides Open Inventor rendering and event handling inside a GLX Motif widget. There is a routine to specify the scene to render. The scene is automatically rendered whenever anything under it changes (a data sensor is attached to the root of the scene), unless explicitly told not to do so (manual redraws). Users can also set Open Inventor rendering attributes such as the transparency algorithm, antialiasing on or off, etc. This class employs an SoSceneManager to manage rendering and event handling.

X events that occur in the render area can be handled by the application, by the viewer (if this is really a viewer), or by the nodes in the scene graph. When a event occurs, it is first passed to the application event callback function registered with the setEventCallback() method on SoXtRenderArea. If this function does not exist or returns FALSE, the X event is either used directly by the viewer or translated to an SoEvent for further scene graph processing. If the viewer does not handle the event, and an overlay scene graph exists, the SoEvent is sent to that scene graph by way of an SoHandleEventAction. If no node in the overlay scene graph handles the event (i.e., calls setHandled() on the SoHandleEventAction), the SoEvent is passed to the normal scene graph in the same manner.

NOTES

RESOURCES

SEE ALSO

SoXtGLWidget, SoXtComponent, SoXtViewer, SoSceneManager, SoBoxHighlightRenderAction, SoLineHighlightRenderAction


Constructor & Destructor Documentation

SoXtRenderArea::SoXtRenderArea ( SoWidget  parent = NULL,
const char *  name = NULL,
SbBool  buildInsideParent = TRUE,
SbBool  getMouseInput = TRUE,
SbBool  getKeyboardInput = TRUE 
)

Constructor which is passed arguments which tell it whether to register the mouse and keyboard devices by default (SoXtMouse and SoXtKeyboard).

SoXtRenderArea::~SoXtRenderArea (  ) 

Destructor.


Member Function Documentation

SoDEPRECATED void SoXtRenderArea::getAntialiasing ( SbBool smoothing,
int &  numPasses 
) const

Gets the antialiasing used for rendering.

Deprecated:

Deprecated since Open Inventor 9100
Use method getAntialiasingParameters() to get this information.
const SbColor& SoXtRenderArea::getBackgroundColor (  )  const [inline]

Gets the background color for this window.

int SoXtRenderArea::getBackgroundIndex (  )  const [inline]

Gets the window background color when in color index mode.

static uint32_t SoXtRenderArea::getDefaultRedrawPriority (  )  [inline, static]

Gets the default priority number of the redraw sensor.

SoGLRenderAction::FastEditSavePolicy SoXtRenderArea::getFastEditSavePolicy (  )  const [inline]

Returns fast editing save policy used when rendering.

void SoXtRenderArea::getFloatingColorBuffer ( SbBool enable,
FloatColorBufferSize size 
)

Returns TRUE if floating point rendering is used and its precision.

Reimplemented from SoXtGLWidget.

SoGLRenderAction* SoXtRenderArea::getGLRenderAction (  )  const [inline]

Gets the GL render action to use.

This is used to set selection highlighting with the SoBoxHighlightRenderAction and SoLineHighlightRenderAction classes.

SoGLRenderAction::InvalidateCacheMode SoXtRenderArea::getInvalidateCacheMode (  ) 

Returns the current cache invalidation mode.

virtual SoMPEGRenderer* SoXtRenderArea::getMPEGRecorder (  )  const [inline, virtual]

Returns the recorder used for the MPEG encoding.

SoDEPRECATED int SoXtRenderArea::getOverlayBackgroundIndex (  )  const [inline]

Gets the overlay window background color index.

Deprecated:

Deprecated since Open Inventor 9610
Overlay feature is legacy, and no longer makes sense with current hardware.
SoDEPRECATED SoGLRenderAction* SoXtRenderArea::getOverlayGLRenderAction (  )  const [inline]

Gets the GL render action for the overlay window.

Deprecated:

Deprecated since Open Inventor 9610
Overlay feature is legacy, and no longer makes sense with current hardware.
SoDEPRECATED SoNode* SoXtRenderArea::getOverlaySceneGraph (  )  [inline]

Gets the scene graph to be rendered in the overlay plane.

NOTE: This feature requires a graphics board that supports an overlay plane.

Deprecated:

Deprecated since Open Inventor 9610
Overlay feature is legacy, and no longer makes sense with current hardware.
SoDEPRECATED SoSceneManager* SoXtRenderArea::getOverlaySceneManager (  )  const [inline]

Gets the overlay plane scene manager.

Note: For convenience most of the SoSceneManager methods have already been added to this class.

Deprecated:

Deprecated since Open Inventor 9610
Overlay feature is legacy, and no longer makes sense with current hardware.
SoXtRenderAreaRenderCB* SoXtRenderArea::getPostRenderCallback ( const void *&  userData  )  const [inline]

Gets the post-render callback function and data.

Returns NULL if no callback has been specified by the application.

uint32_t SoXtRenderArea::getRedrawPriority (  )  const [inline]

Gets the priority of the redraw sensor.

virtual SoNode* SoXtRenderArea::getSceneGraph (  )  [virtual]

Gets the scene graph to be rendered in this component's window.

Reimplemented in SoXtViewer.

SoSceneManager* SoXtRenderArea::getSceneManager (  )  const [inline]

Gets the normal scene manager.

Note: For convenience most of the SoSceneManager methods have already been added to this class.

const SbGLShareContext SoXtRenderArea::getShareContext (  ) 

Returns the information needed to make OpenGL render contexts share OpenGL objects, for example, display lists and texture objects.

Open Inventor automatically shares between on-screen contexts. This method is useful to share objects with an off-screen context. See SoOffscreenRenderer.

int SoXtRenderArea::getSortedTrianglesNumCaches (  ) 

Returns the maximum number of caches allowed for the sorted triangles transparency types.

int SoXtRenderArea::getSortedTrianglesSortFrequency (  ) 

Returns the sort frequency used for the SORTED_TRIANGLES_XXX and SORTED_OBJECT_TRIANGLES_XXX transparency types.

SoGLRenderAction::TransparencyType SoXtRenderArea::getTransparencyType (  )  const [inline]

Gets the algorithm for rendering transparent objects.

See SoGLRenderAction for possible transparency types.

const SbViewportRegion& SoXtRenderArea::getViewportRegion (  )  const [inline]

Gets current viewport region to use for rendering.

SbBool SoXtRenderArea::isAutoRedraw (  )  const [inline]

Queries whether the render area will automatically redraw whenever something in the scene graph changes.

SoDEPRECATED SbBool SoXtRenderArea::isClearBeforeOverlayRender (  )  const [inline]

Queries whether the overlay window will be cleared before rendering starts.

Deprecated:

Deprecated since Open Inventor 9610
Overlay feature is legacy, and no longer makes sense with current hardware.
SbBool SoXtRenderArea::isClearBeforeRender (  )  const [inline]

Queries whether the window will be cleared before rendering starts.

SbBool SoXtRenderArea::isClearZBufferBeforeRender (  )  const [inline]

Queries whether the depth buffer (sometimes called the Z buffer) will be cleared before rendering starts.

void SoXtRenderArea::redrawOnSelectionChange ( SoSelection s  ) 

Call this convenience method to have this render area redraw whenever the selection list changes in the passed node.

This is useful if using a highlight render action like the SoBoxHighlightRenderAction to correctly render whenever the selection changes. Pass NULL to turn this off.

This call increases the ref counter of the given SoSelection node, it will be automatically decreased when the selection node is replaced by another one, or if it is turned off.

SoDEPRECATED void SoXtRenderArea::redrawOverlayOnSelectionChange ( SoSelection s  ) 

Call this convenience method to have the overlay planes redraw whenever the selection list changes in the passed node.

This is useful if using a highlight render action like the SoBoxHighlightRenderAction to correctly render whenever the selection changes. Pass NULL to turn this off.

This call increases the ref counter of the given SoSelection node, it will be automatically decreased when the selection node is replaced by another one, or if it is turned off.

Deprecated:

Deprecated since Open Inventor 9610
Overlay feature is legacy, and no longer makes sense with current hardware.
void SoXtRenderArea::registerDevice ( SoXtDevice d  ) 

Registers interest in devices.

When a device is registered, messages from that device will be processed by the render area, and passed into the scene graph. Messages from unregistered devices will be ignored.

void SoXtRenderArea::render (  )  [inline]

Calling this forces the render area to be redrawn now.

It is not necessary to call this method if auto redraw is enabled (which is the default).

SoDEPRECATED void SoXtRenderArea::renderOverlay (  )  [inline]

Calling this forces the render area overlay planes to be redrawn now.

It is not necessary to call this method if auto redraw is enabled (which is the default).

Deprecated:

Deprecated since Open Inventor 9610
Overlay feature is legacy, and no longer makes sense with current hardware.
SoDEPRECATED void SoXtRenderArea::scheduleOverlayRedraw (  ) 

Schedules a redraw of the overlay planes to happen sometime soon (as opposed to immediately).

This can be used to compress multiple redraws.

Deprecated:

Deprecated since Open Inventor 9610
Overlay feature is legacy, and no longer makes sense with current hardware.
void SoXtRenderArea::scheduleRedraw (  ) 

Schedules a redraw to happen sometime soon (as opposed to immediately).

This can be used to compress multiple redraws.

void SoXtRenderArea::sendEvent ( XAnyEvent *  anEvent  ) 

Sends the event to be processed by the renderArea.

SoDEPRECATED void SoXtRenderArea::setAntialiasing ( SbBool  smoothing,
int  numPasses 
)

Enables smoothing and/or multi-pass antialiasing for rendering.

There are two kinds of antialiasing available: smoothing and multipass antialiasing. If smoothing is set to TRUE, smoothing is enabled. Smoothing uses OpenGL's line- and point-smoothing features to provide cheap antialiasing of lines and points. The value of numPasses controls multipass antialiasing. Each time a render action is applied, Open Inventor renders the scene numPasses times from slightly different camera positions, averaging the results. numPasses can be from one to 255, inclusive. Setting numPasses to one disables multipass antialiasing. You can use either, both, or neither of these antialiasing techniques. By default, both smoothing and multipass antialiasing are disabled.

Deprecated:

Deprecated since Open Inventor 9100
Use setAntialiasing(float,AntialiasingMode) method with mode SUPERSAMPLING or setAntialiasing(SoAntialiasingParameters*) with an SoAccumulationAntialiasingParameters object.
void SoXtRenderArea::setAutoRedraw ( SbBool  trueOrFalse  ) 

The render area will automatically redraw whenever something in the scene graph changes.

Passing FALSE will disable this feature.

void SoXtRenderArea::setBackgroundColor ( const SbColor c  ) 

Sets the background color for this window.

Default is black (0,0,0).

The default value can be set using the environment variable OIV_BACKGROUND_COLOR (3 floats representing RGB values of the colors separated by space).

void SoXtRenderArea::setBackgroundIndex ( int  index  )  [inline]

Sets the window background color when in color index mode.

Default is black (index 0)).

SoDEPRECATED void SoXtRenderArea::setClearBeforeOverlayRender ( SbBool  trueOrFalse  )  [inline]

Enables/prevents overlay window clearing from happening before a rendering starts (default is clear TRUE).

Deprecated:

Deprecated since Open Inventor 9610
Overlay feature is legacy, and no longer makes sense with current hardware.
void SoXtRenderArea::setClearBeforeRender ( SbBool  trueOrFalse,
SbBool  zbTrueOrFalse = TRUE 
) [inline]

Enables/prevents window clearing from happening before a rendering starts (default is clear TRUE).

This can be useful to limit flickering when doing single buffering and geometry covers the entire window (used in the material editor). Also controls whether the depth buffer (sometimes called the Z buffer) is cleared before rendering.

void SoXtRenderArea::setColorMap ( int  startIndex,
int  num,
const SbColor colors 
)

Sets the colors to use when displaying in color index mode.

This will load the color map with the given colors at the starting index.

void SoXtRenderArea::setEventCallback ( SoXtRenderAreaEventCB fcn,
void *  userData = NULL 
)

X events which occur in the render area window are either directly handled by the viewer (when this is really a viewer) or automatically translated to SoEvents, then passed into the scene graph (via the SoHandleEventAction) so that live scene graph objects can handle the event (when viewers are not in viewing mode).

This method allows the application to register a callback for handling events that occur in the window, instead of sending them to the viewers or down the graph. The callback is passed the X events, and should return TRUE if it handled the event. If the callback returns FALSE, then the event will be handled by the render area.

void SoXtRenderArea::setFastEditSavePolicy ( SoGLRenderAction::FastEditSavePolicy  policy,
SbBool  fastEditDelayedObjects = FALSE 
)

Sets fast editing save policy to use when rendering.

The default is WHEN_NEEDED. Valid values are DISABLE, EACH_FRAME, and WHEN_NEEDED. See SoSeparator.

If fastEditDelayedObjects is set to TRUE, delayed objects won't be redrawn when editing the scene graph. It means that composition between delayed transparent objects and fast edit scene graph won't be correct but redrawing may be much faster.

void SoXtRenderArea::setFloatingColorBuffer ( SbBool  enable,
FloatColorBufferSize  size = FLOAT_16_COLOR_BUFFER 
)

Enables/disables floating point rendering using 16- or 32-bit components.

If TRUE, Open Inventor will automatically render to an offscreen floating point buffer, and copy the resulting image to the screen.

To determine if floating point rendering was successfully enabled, use getFloatingColorBuffer, below.

Using floating point rendering can improve image quality, particularly when many objects are being blended, for example, in volume rendering. This is a convenience method as you could accomplish the same results setting up a graphic template.

Reimplemented from SoXtGLWidget.

void SoXtRenderArea::setGLRenderAction ( SoGLRenderAction ra  ) 

Sets the GL render action to use.

This is used to set selection highlighting with the SoBoxHighlightRenderAction and SoLineHighlightRenderAction classes.

void SoXtRenderArea::setInvalidateCacheMode ( SoGLRenderAction::InvalidateCacheMode  icm  ) 

Enables or disables the invalidation of render caches.

  • When set to ALWAYS, the caches are invalidated for each SoSeparator node before its children are traversed. No new caches will be built. This value forces all nodes to be visited during each render traversal.
  • When set to ONCE, the caches are invalidated for each SoSeparator node before its children are traversed. The invalidate cache mode is automatically changed to OFF at the end of the traversal.
  • When set to OFF (default), caches are managed by their respective render caching nodes in the usual way.

This method is useful to force all nodes to be visited during render traversal.

virtual void SoXtRenderArea::setMPEGRecorder ( SoMPEGRenderer recorder  )  [inline, virtual]

Sets the recorder used for MPEG encoding.

Default is none.

Parameters:
recorder the recorder to be used.
SoDEPRECATED void SoXtRenderArea::setOverlayBackgroundIndex ( int  index  )  [inline]

Sets the overlay window background color index.

Default is 0 (clear color)).

Deprecated:

Deprecated since Open Inventor 9610
Overlay feature is legacy, and no longer makes sense with current hardware.
SoDEPRECATED void SoXtRenderArea::setOverlayColorMap ( int  startIndex,
int  num,
const SbColor colors 
)

Sets the colors to use for overlay bit planes.

This will load the color map with the given colors at the starting index.

Deprecated:

Deprecated since Open Inventor 9610
Overlay feature is legacy, and no longer makes sense with current hardware.
SoDEPRECATED void SoXtRenderArea::setOverlayGLRenderAction ( SoGLRenderAction ra  )  [inline]

Sets the GL render action for the overlay window.

Deprecated:

Deprecated since Open Inventor 9610
Overlay feature is legacy, and no longer makes sense with current hardware.
SoDEPRECATED void SoXtRenderArea::setOverlaySceneGraph ( SoNode newScene  ) 

Sets the scene graph to be rendered in the overlay plane.

NOTE: This feature requires a graphics board that supports an overlay plane.

Deprecated:

Deprecated since Open Inventor 9610
Overlay feature is legacy, and no longer makes sense with current hardware.
SoDEPRECATED void SoXtRenderArea::setOverlaySceneManager ( SoSceneManager sm  )  [inline]

Sets the overlay plane scene manager.

Note: For convenience most of the SoSceneManager methods have already been added to this class.

Deprecated:

Deprecated since Open Inventor 9610
Overlay feature is legacy, and no longer makes sense with current hardware.
void SoXtRenderArea::setPostRenderCallback ( SoXtRenderAreaRenderCB fcn,
void *  userData = NULL 
) [inline]

Specifies a function to be called after the Open Inventor render traversal and immediately before the OpenGL buffer swap.

Generally the application should not modify Open Inventor state in these callbacks, but they can be useful for special effects using OpenGL calls.

When the callback function is called, Open Inventor has completed normal rendering (including delayed transparent objects, multi-pass, etc), but no "end of frame" calls (glFlush, glFinish, SwapBuffers...) have been made. The function should return TRUE if "end of frame" handling has been done by the application (Open Inventor will do nothing in this case). If FALSE is returned, Open Inventor will do its normal end of frame calls (normally calling SwapBuffers).

void SoXtRenderArea::setRedrawPriority ( uint32_t  priority  )  [inline]

Sets the priority of the redraw sensor.

virtual void SoXtRenderArea::setSceneGraph ( SoNode newScene  )  [virtual]

Sets the scene graph to be rendered in this component's window.

Reimplemented in SoXtViewer, and SoTVizViewer.

void SoXtRenderArea::setSceneManager ( SoSceneManager sm  ) 

Sets the normal scene manager.

Note: For convenience most of the SoSceneManager methods have already been added to this class.

void SoXtRenderArea::setSortedTrianglesNumCaches ( int  numCaches  ) 

Sets the number of caches to use when the transparency type is SORTED_TRIANGLES_XXX or SORTED_OBJECT_TRIANGLES_XXX.

This specifies the number of lists of sorted triangles to keep in memory in order to render transparent triangles more quickly.

When computing a new list of sorted triangles, if an empty cache is available, it is used. Else, the farthest axis from the camera orientation axis is replaced in the cache. The default number of caches is 3.

void SoXtRenderArea::setSortedTrianglesSortFrequency ( int  angle  ) 

This method specifies the angle between each sorting axis when using the transparency type SORTED_TRIANGLES_XXX or SORTED_OBJECT_TRIANGLES_XXX.


Transparent triangles are sorted based on the nearest axis. (in terms of the dot (inner) product). If the triangles have already been sorted on this axis (or the opposite), and the sort result is cached, the triangles are rendered using the cached information.

The default value for sort frequency is 90, meaning that a sorting is made every 90 degrees. If the value is 0, sorting is always done and the camera orientation vector is the axis used for sorting. In this case, no cache is made.

See SoGLRenderAction for additional details and figures.

void SoXtRenderArea::setTransparencyType ( SoGLRenderAction::TransparencyType  type  ) 

Sets the algorithm for rendering transparent objects.

Default is SCREEN_DOOR. See SoGLRenderAction for possible transparency types. See also the SoTransparencyType node.

Note: When using transparency types with DELAYED in the name, the depth buffer is not updated (depth buffer writes are disabled) while rendering transparent objects. As a result complex 3D shapes may not be rendered correctly.

void SoXtRenderArea::setViewportRegion ( const SbViewportRegion newRegion  )  [inline]

Sets viewport region to use for rendering.

void SoXtRenderArea::unregisterDevice ( SoXtDevice d  ) 

Unregisters interest in devices.

When a device is registered, messages from that device will be processed by the render area, and passed into the scene graph. Messages from unregistered devices will be ignored.


The documentation for this class was generated from the following file:

Open Inventor Toolkit reference manual, generated on 12 Feb 2024
Copyright © Thermo Fisher Scientific All rights reserved.
http://www.openinventor.com/