logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

SoGLRenderAction — renders a scene graph using OpenGL

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.

Inherits From

       SoAction > SoGLRenderAction

Methods

SoGLRenderAction(constSbViewportRegion&viewportRegion)
          Constructor. The parameter defines the viewport region into which rendering will take place.

     voidsetViewportRegion(constSbViewportRegion&newRegion)constSbViewportRegion&getViewportRegion()const
          Changes/returns viewport region to use for rendering.

     voidsetUpdateArea(constSbVec2f&origin,constSbVec2f&size)voidgetUpdateArea(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.

     voidsetAbortCallback(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.

     voidsetTransparencyType(TransparencyTypetype)TransparencyTypegetTransparencyType()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.)

     voidsetSmoothing(SbBoolsmooth)SbBoolisSmoothing()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.

     voidsetNumPasses(intnum)intgetNumPasses()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.

     voidsetPassUpdate(SbBoolflag)SbBoolisPassUpdate()const
          Sets/returns a flag indicating whether intermediate results are displayed after each antialiasing pass
          for progressive improvement (default is FALSE).

     voidsetPassCallback(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.

     voidsetCacheContext(uint32_tcontext)uint32_tgetCacheContext()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.

Name

       SoGLRenderAction — renders a scene graph using OpenGL

See Also

SoSeparator,SoXtRenderAreaSoGLRenderAction(3IV)()

Synopsis

#include<Inventor/actions/SoGLRenderAction.h>typedefAbortCodeSoGLRenderAbortCB(void*userData)typedefvoidSoGLRenderPassCB(void*userData)enumTransparencyType{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
     }enumAbortCode{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(constSbViewportRegion&viewportRegion)voidsetViewportRegion(constSbViewportRegion&newRegion)constSbViewportRegion&getViewportRegion()constvoidsetUpdateArea(constSbVec2f&origin,constSbVec2f&size)voidgetUpdateArea(SbVec2f&origin,SbVec2f&size)constvoidsetAbortCallback(SoGLRenderAbortCB*func,void*userData)voidsetTransparencyType(TransparencyTypetype)TransparencyTypegetTransparencyType()constvoidsetSmoothing(SbBoolsmooth)SbBoolisSmoothing()constvoidsetNumPasses(intnum)intgetNumPasses()constvoidsetPassUpdate(SbBoolflag)SbBoolisPassUpdate()constvoidsetPassCallback(SoGLRenderPassCB*func,void*userData)voidsetCacheContext(uint32_tcontext)uint32_tgetCacheContext()const

          Methods from class SoAction:

     virtualvoidapply(SoNode*node)virtualvoidapply(SoPath*path)virtualvoidapply(constSoPathList&pathList,SbBoolobeysRules=FALSE)staticSoTypegetClassTypeId()virtualSoTypegetTypeId()virtualSbBoolisOfType(SoTypetype)virtualvoidinvalidateState()

See Also