table of contents
| SoGLRenderAction(3IV)() | SoGLRenderAction(3IV)() | 
NAME¶
SoGLRenderAction — renders a scene graph using OpenGL
INHERITS FROM¶
SoAction > SoGLRenderAction
SYNOPSIS¶
#include <Inventor/actions/SoGLRenderAction.h>
  
  typedef AbortCode	SoGLRenderAbortCB(void
    *userData)
  
  
  typedef void	SoGLRenderPassCB(void *userData)
  
  enum TransparencyType {
  
  
  SoGLRenderAction::SCREEN_DOOR 	Uses stipple patterns for screen-door
    transparency
  
  
  SoGLRenderAction::ADD	Uses additive alpha blending
  
  
  SoGLRenderAction::DELAYED_ADD 	Uses additive blending, rendering all
    transparent objects after opaque ones
  
  
  SoGLRenderAction::SORTED_OBJECT_ADD 	Same as DELAYED_ADD, but sorts
    transparent objects by distances of bounding boxes from camera
  
  
  SoGLRenderAction::BLEND	Uses multiplicative alpha blending
  
  
  SoGLRenderAction::DELAYED_BLEND 	Uses multiplicative alpha blending,
    rendering all transparent objects after opaque ones
  
  
  SoGLRenderAction::SORTED_OBJECT_BLEND 	Same as DELAYED_BLEND, but sorts
    transparent objects by distances of bounding boxes from camera
  
  
  }
  
  enum AbortCode {
  
  
  SoGLRenderAction::CONTINUE	Continue traversal as usual
  
  
  SoGLRenderAction::ABORT	Stop traversing the rest of the graph
  
  
  SoGLRenderAction::PRUNE	Do not traverse this node or its children, but
    continue
  
  
  SoGLRenderAction::DELAY	Delay rendering of this node until the second
    pass
  
  
  }
  
  Methods from class SoGLRenderAction:
  
  
  	SoGLRenderAction(const SbViewportRegion
    &viewportRegion)
  
  
  void	setViewportRegion(const SbViewportRegion
    &newRegion)
  
  
  const SbViewportRegion &	getViewportRegion()
    const
  
  
  void	setUpdateArea(const SbVec2f &origin, const
    SbVec2f &size)
  
  
  void	getUpdateArea(SbVec2f &origin, SbVec2f
    &size) const
  
  
  void	setAbortCallback(SoGLRenderAbortCB *func, void
    *userData)
  
  
  void	setTransparencyType(TransparencyType type)
  
  
  TransparencyType	getTransparencyType() const
  
  
  void	setSmoothing(SbBool smooth)
  
  
  SbBool	isSmoothing() const
  
  
  void	setNumPasses(int num)
  
  
  int	getNumPasses() const
  
  
  void	setPassUpdate(SbBool flag)
  
  
  SbBool	isPassUpdate() const
  
  
  void	setPassCallback(SoGLRenderPassCB *func, void
    *userData)
  
  
  void	setCacheContext(uint32_t context)
  
  
  uint32_t	getCacheContext() const
  
  Methods from class SoAction:
  
  
  virtual void	apply(SoNode *node)
  
  
  virtual void	apply(SoPath *path)
  
  
  virtual void	apply(const SoPathList &pathList,
    SbBool obeysRules = FALSE)
  
  
  static SoType	getClassTypeId()
  
  
  virtual SoType	getTypeId()
  
  
  virtual SbBool	isOfType(SoType type)
  
  
  virtual void	invalidateState()
DESCRIPTION¶
This class traverses a scene graph and renders it using the OpenGL graphics library. It assumes that a valid window has been created and initialized for proper OpenGL rendering. The SoXtRenderArea class or any of its subclasses may be used to create such a window.
METHODS¶
	SoGLRenderAction(const SbViewportRegion
    &viewportRegion)
  
  
  Constructor. The parameter defines the viewport region into which rendering
    will take place.
  
  
  void	setViewportRegion(const SbViewportRegion
    &newRegion)
  
  
  const SbViewportRegion &	getViewportRegion()
    const
  
  
  Changes/returns viewport region to use for rendering.
  
  
  void	setUpdateArea(const SbVec2f &origin, const
    SbVec2f &size)
  
  
  void	getUpdateArea(SbVec2f &origin, SbVec2f
    &size) const
  
  
  Sets/returns the current update area, which is the rectangular area of the
    viewport region that will actually be rendered into. This can be used for
    partial updates in applications that can manage them. The update area is
    specified in normalized viewport coordinates, where (0,0) is the lower left
    corner of the viewport and (1,1) is the upper right corner. The area is
    specified or returned as an origin and a size.
  
  
  void	setAbortCallback(SoGLRenderAbortCB *func, void
    *userData)
  
  
  Sets callback to call during rendering to test for an abort condition. It will
    be called for each node that is traversed. This allows applications to
    terminate rendering prematurely if some condition occurs. The callback
    function should return one of the AbortCode codes to indicate whether
    traversal should continue. Use of the various codes in a callback can allow
    applications to modify Inventor's default order of rendering objects in a
    scene graph.
  
  
  void	setTransparencyType(TransparencyType type)
  
  
  TransparencyType	getTransparencyType() const
  
  
  Sets/returns transparency quality level to use when rendering. The default is
    SCREEN_DOOR. (Note that SCREEN_DOOR transparency does not work in the case
    where transparency values are specified for each vertex of a shape. If this
    is the case, use one of the other transparency types.)
  
  
  void	setSmoothing(SbBool smooth)
  
  
  SbBool	isSmoothing() const
  
  
  Sets/returns smoothing flag. When on, smoothing uses OpenGL's line- and
    point-smoothing features to provide cheap antialiasing of lines and points.
    The default is FALSE.
  
  
  void	setNumPasses(int num)
  
  
  int	getNumPasses() const
  
  
  Sets/returns number of rendering passes for multipass rendering. Specifying
    more than one pass will result in antialiasing of the rendered scene, using
    OpenGL's accumulation buffer. (Camera nodes typically move their viewpoints
    a little bit for each pass to achieve the antialiasing.) Each additional
    pass provides better antialiasing, but requires more rendering time The
    default is 1 pass.
  
  
  void	setPassUpdate(SbBool flag)
  
  
  SbBool	isPassUpdate() const
  
  
  Sets/returns a flag indicating whether intermediate results are displayed
    after each antialiasing pass for progressive improvement (default is
  FALSE).
  
  
  void	setPassCallback(SoGLRenderPassCB *func, void
    *userData)
  
  
  Sets a callback function to invoke between passes when antialiasing. Passing
    NULL (which is the default state) will cause a clear of the color and depth
    buffers to be performed.
  
  
  void	setCacheContext(uint32_t context)
  
  
  uint32_t	getCacheContext() const
  
  
  Sets/returns the OpenGL cache context. A cache context is just an integer
    identifying when OpenGL display lists (which are used for render caching)
    can be shared between render actions; for example, see the documentation on
    GLX contexts for information on when OpenGL display lists can be shared
    between GLX windows.
  
SEE ALSO¶
SoSeparator, SoXtRenderArea