![]() |
Coin3D is Free Software, published under the BSD 3-clause license. |
https://bitbucket.org/Coin3D/ http://www.kongsberg.com/kogt/ |
The SmTextureText2Collector node is a group node which optimizes SmTextureText2 rendering. More...
#include <SmTextureText2Collector.h>
Inherits SoSeparator.
Public Member Functions | |
SmTextureText2Collector (void) | |
virtual void | GLRenderBelowPath (SoGLRenderAction *action) |
virtual void | GLRenderInPath (SoGLRenderAction *action) |
![]() | |
virtual SoType | getTypeId (void) const |
SoSeparator (void) | |
SoSeparator (const int nchildren) | |
virtual void | doAction (SoAction *action) |
virtual void | GLRender (SoGLRenderAction *action) |
virtual void | GLRenderOffPath (SoGLRenderAction *action) |
virtual void | callback (SoCallbackAction *action) |
virtual void | getBoundingBox (SoGetBoundingBoxAction *action) |
virtual void | getMatrix (SoGetMatrixAction *action) |
virtual void | handleEvent (SoHandleEventAction *action) |
virtual void | rayPick (SoRayPickAction *action) |
virtual void | search (SoSearchAction *action) |
virtual void | getPrimitiveCount (SoGetPrimitiveCountAction *action) |
virtual void | audioRender (SoAudioRenderAction *action) |
virtual void | notify (SoNotList *nl) |
virtual SbBool | affectsState (void) const |
![]() | |
SoGroup (void) | |
SoGroup (int nchildren) | |
virtual void | addChild (SoNode *node) |
virtual void | insertChild (SoNode *child, int newchildindex) |
virtual SoNode * | getChild (int index) const |
virtual int | findChild (const SoNode *node) const |
virtual int | getNumChildren (void) const |
virtual void | removeChild (int childindex) |
virtual void | removeChild (SoNode *child) |
virtual void | removeAllChildren (void) |
virtual void | replaceChild (int index, SoNode *newchild) |
virtual void | replaceChild (SoNode *oldchild, SoNode *newchild) |
virtual void | pick (SoPickAction *action) |
virtual void | write (SoWriteAction *action) |
virtual SoChildList * | getChildren (void) const |
virtual void | addWriteReference (SoOutput *out, SbBool isfromfield=FALSE) |
![]() | |
void | setOverride (const SbBool state) |
SbBool | isOverride (void) const |
void | setNodeType (const NodeType type) |
NodeType | getNodeType (void) const |
virtual SoNode * | copy (SbBool copyconnections=FALSE) const |
virtual void | grabEventsSetup (void) |
virtual void | grabEventsCleanup (void) |
virtual void | startNotify (void) |
SbUniqueId | getNodeId (void) const |
virtual void | writeInstance (SoOutput *out) |
virtual SoNode * | addToCopyDict (void) const |
virtual SoFieldContainer * | copyThroughConnection (void) const |
![]() | |
void | setToDefaults (void) |
SbBool | hasDefaultValues (void) const |
SbBool | fieldsAreEqual (const SoFieldContainer *container) const |
void | copyFieldValues (const SoFieldContainer *container, SbBool copyconnections=FALSE) |
SbBool | set (const char *const fielddata) |
void | get (SbString &fielddata) |
virtual int | getFields (SoFieldList &l) const |
virtual int | getAllFields (SoFieldList &l) const |
virtual SoField * | getField (const SbName &name) const |
virtual SoField * | getEventIn (const SbName &name) const |
virtual SoField * | getEventOut (const SbName &name) const |
SbBool | getFieldName (const SoField *const field, SbName &name) const |
SbBool | enableNotify (const SbBool flag) |
SbBool | isNotifyEnabled (void) const |
SbBool | set (const char *fielddata, SoInput *input) |
void | get (SbString &fielddata, SoOutput *out) |
virtual SbBool | validateNewFieldValue (SoField *field, void *newval) |
SbBool | getIsBuiltIn (void) const |
virtual void | getFieldsMemorySize (size_t &managed, size_t &unmanaged) const |
void | setUserData (void *userdata) const |
void * | getUserData (void) const |
![]() | |
void | ref (void) const |
void | unref (void) const |
void | unrefNoDelete (void) const |
int32_t | getRefCount (void) const |
void | touch (void) |
SbBool | isOfType (SoType type) const |
virtual SbName | getName (void) const |
virtual void | setName (const SbName &newname) |
void | addAuditor (void *const auditor, const SoNotRec::Type type) |
void | removeAuditor (void *const auditor, const SoNotRec::Type type) |
const SoAuditorList & | getAuditors (void) const |
SbBool | shouldWrite (void) |
void | assertAlive (void) const |
Static Public Member Functions | |
static void | initClass (void) |
![]() | |
static void | setNumRenderCaches (const int howmany) |
static int | getNumRenderCaches (void) |
![]() | |
static uint32_t | getCompatibilityTypes (const SoType &nodetype) |
static SoNode * | getByName (const SbName &name) |
static int | getByName (const SbName &name, SoNodeList &l) |
static void | initClasses (void) |
static SbUniqueId | getNextNodeId (void) |
static int | getActionMethodIndex (const SoType type) |
static void | getBoundingBoxS (SoAction *action, SoNode *node) |
static void | GLRenderS (SoAction *action, SoNode *node) |
static void | callbackS (SoAction *action, SoNode *node) |
static void | getMatrixS (SoAction *action, SoNode *node) |
static void | handleEventS (SoAction *action, SoNode *node) |
static void | pickS (SoAction *action, SoNode *node) |
static void | rayPickS (SoAction *action, SoNode *node) |
static void | searchS (SoAction *action, SoNode *node) |
static void | writeS (SoAction *action, SoNode *node) |
static void | audioRenderS (SoAction *action, SoNode *node) |
static void | getPrimitiveCountS (SoAction *action, SoNode *node) |
![]() | |
static void | initCopyDict (void) |
static void | addCopy (const SoFieldContainer *orig, const SoFieldContainer *copy) |
static SoFieldContainer * | checkCopy (const SoFieldContainer *orig) |
static SoFieldContainer * | findCopy (const SoFieldContainer *orig, const SbBool copyconnections) |
static void | copyDone (void) |
![]() | |
static void | initClass (void) |
static SoType | getClassTypeId (void) |
static void | addName (SoBase *const base, const char *const name) |
static void | removeName (SoBase *const base, const char *const name) |
static void | incrementCurrentWriteCounter (void) |
static void | decrementCurrentWriteCounter (void) |
static SoBase * | getNamedBase (const SbName &name, SoType type) |
static int | getNamedBases (const SbName &name, SoBaseList &baselist, SoType type) |
static SbBool | read (SoInput *input, SoBase *&base, SoType expectedtype) |
static void | setInstancePrefix (const SbString &c) |
static void | setTraceRefs (SbBool trace) |
static SbBool | getTraceRefs (void) |
static SbBool | connectRoute (SoInput *input, const SbName &fromnodename, const SbName &fromfieldname, const SbName &tonodename, const SbName &tofieldname) |
static SbBool | readRoute (SoInput *input) |
Public Attributes | |
SoSFBool | depthMask |
![]() | |
OFF | |
ON | |
AUTO | |
SoSFEnum | renderCaching |
SoSFEnum | boundingBoxCaching |
SoSFEnum | renderCulling |
SoSFEnum | pickCulling |
![]() | |
INVENTOR | |
VRML1 | |
VRML2 | |
INVENTOR_1 | |
INVENTOR_2_0 | |
INVENTOR_2_1 | |
INVENTOR_2_5 | |
INVENTOR_2_6 | |
COIN_1_0 | |
COIN_2_0 | |
EXTENSION | |
Protected Member Functions | |
virtual | ~SmTextureText2Collector () |
virtual void | renderText (SoGLRenderAction *action, const std::vector< SmTextureText2CollectorElement::TextItem > &) |
![]() | |
virtual const SoFieldData * | getFieldData (void) const |
virtual | ~SoSeparator () |
virtual SbBool | cullTest (SoState *state) |
virtual SbBool | cullTest (SoGLRenderAction *action, int &cullresults) |
virtual SbBool | readInstance (SoInput *in, unsigned short flags) |
![]() | |
virtual | ~SoGroup () |
virtual SbBool | readChildren (SoInput *in) |
virtual void | copyContents (const SoFieldContainer *from, SbBool copyconnections) |
![]() | |
SoNode (void) | |
virtual | ~SoNode () |
![]() | |
SoFieldContainer (void) | |
virtual | ~SoFieldContainer () |
![]() | |
SoBase (void) | |
virtual | ~SoBase () |
virtual void | destroy (void) |
SbBool | hasMultipleWriteRefs (void) const |
SbBool | writeHeader (SoOutput *out, SbBool isgroup, SbBool isengine) const |
void | writeFooter (SoOutput *out) const |
virtual const char * | getFileFormatName (void) const |
Additional Inherited Members | |
![]() | |
enum | CacheEnabled |
![]() | |
enum | NodeType |
![]() | |
enum | BaseFlags |
![]() | |
static const SoFieldData ** | getFieldDataPtr (void) |
static void | setNextActionMethodIndex (int index) |
static int | getNextActionMethodIndex (void) |
static void | incNextActionMethodIndex (void) |
static void | setCompatibilityTypes (const SoType &nodetype, const uint32_t bitmask) |
![]() | |
static uint32_t | getCurrentWriteCounter (void) |
![]() | |
SoChildList * | children |
![]() | |
SbUniqueId | uniqueId |
![]() | |
SbBool | isBuiltIn |
![]() | |
static SbUniqueId | nextUniqueId |
static int | nextActionMethodIndex |
The SmTextureText2Collector node is a group node which optimizes SmTextureText2 rendering.
Since SmTextureText2 has antialiased rendering, it needs to render the text in a separate blending pass in Coin. This makes rendering slow if you have lots of SmTextureText2 nodes in your scene graph, and you use the SORTED_OBJECT_BLEND or DELAYED_BLEND transparency modes.
SmTextureText2 will also invalidate render and bbox caches every time the camera moves. In addition, you might get quite a lot of OpenGL state changes when rendering the SmTextureText2 nodes inbetween other geometry.
To solve these problem, it's possible to use this node to optimize text rendering. It will collect all strings from all SmTextureText2 nodes in its subgraph, and render all strings before exiting.
A typical scene graph might look like this:
Please note that this node will only be able to optimize SmTextureText2 nodes where the number of postions equals the number of strings.
SmTextureText2Collector::SmTextureText2Collector | ( | void | ) |
|
protectedvirtual |
|
virtual |
Reimplemented from SoSeparator.
|
virtual |
Reimplemented from SoSeparator.
|
static |
|
protectedvirtual |
SoSFBool SmTextureText2Collector::depthMask |