Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
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, render-
					ing  all  transparent  objects	 after
					opaque ones
	  SoGLRenderAction::SORTED_OBJECT_BLEND
				   Same	 as DELAYED_BLEND, but sorts transpar-
					ent 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 chil-
					   dren, but continue
	  SoGLRenderAction::DELAY     Delay rendering of this node  until  the
					   second pass
     }

	  Methods from class SoGLRenderAction:

			       SoGLRenderAction(const  SbViewportRegion	&view-
				    portRegion)
     void		       setViewportRegion(const	      SbViewportRegion
				    &newRegion)
     const SbViewportRegion &  getViewportRegion() const
     void		       setUpdateArea(const  SbVec2f &origin, const Sb-
				    Vec2f &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	&view-
				    portRegion)
	  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  Sb-
				    Vec2f &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 ori-
	  gin and a size.

     void		       setAbortCallback(SoGLRenderAbortCB *func,  void
				    *userData)
	  Sets	callback  to call during rendering to test for an abort	condi-
	  tion.	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 var-
	  ious 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	trans-
	  parency 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 an-
	  tialiasing, 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 dis-
	  played after each antialiasing pass for progressive improvement (de-
	  fault	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

						       SoGLRenderAction(3IV)()

NAME | INHERITS FROM | SYNOPSIS | DESCRIPTION | METHODS | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=SoGLRenderAction&sektion=3iv&manpath=FreeBSD+12.1-RELEASE+and+Ports>

home | help