SoGLShaderProgramElement(3)

πŸ“¦
version 4.0.10 Β· 4 versions
, in fedora 43, fedora 44

πŸ’– SoGLShaderProgramElement πŸ’–

okay bestie, welcome to the Coin manual, section 3. yes this is the whole SoGLShaderProgramElement page and yes it's giving very "inherited members" energy but we're gonna make it cute. πŸŽ€


🌸 NAME 🌸

SoGLShaderProgramElement β€” that's it, that's the name, that's the girl. πŸ’…


✨ SYNOPSIS ✨

Inherits SoReplacedElement.

πŸ‘‘ Public Member Functions

  • virtual void init (SoState *state)
  • virtual void push (SoState *)
  • virtual void pop (SoState *state, const SoElement *prevTopElement)
  • virtual SbBool matches (const SoElement *element) const
  • virtual SoElement * copyMatchInfo () const

🫢 Public Member Functions inherited from SoReplacedElement

  • SbUniqueId getNodeId () const
  • virtual void print (FILE *file) const

🫢 Public Member Functions inherited from SoElement

  • const SoType getTypeId (void) const
  • int getStackIndex (void) const
  • void setDepth (const int depth)
  • int getDepth (void) const
  • virtual ~SoElement ()

🌟 Static Public Member Functions

  • static SoType getClassTypeId (void)
  • static int getClassStackIndex (void)
  • static void * createInstance (void)
  • static void enable (SoState *const state, const SbBool onoff)
  • static void set (SoState *const state, SoNode *const node, SoGLShaderProgram *program)
  • static SoGLShaderProgram * get (SoState *state)
  • static void initClass (void)

🫢 Static Public Member Functions inherited from SoReplacedElement

  • static SoType getClassTypeId (void)
  • static int getClassStackIndex (void)
  • static void initClass (void)

🫢 Static Public Member Functions inherited from SoElement

  • static void initClass (void)
  • static SoType getClassTypeId (void)
  • static int getClassStackIndex (void)
  • static void initElements (void)
  • static int getNumStackIndices (void)
  • static SoType getIdFromStackIndex (const int stackIndex)

πŸ“ Public Attributes

  • SoGLShaderProgram * shaderProgram β€” the whole personality of this element tbh

πŸ¦‹ Additional Inherited Members

Protected Member Functions inherited from SoReplacedElement

  • virtual ~SoReplacedElement ()

Protected Member Functions inherited from SoElement

  • SoElement (void)
  • void capture (SoState *const state) const
  • virtual void captureThis (SoState *state) const
  • void setTypeId (const SoType typeId)
  • void setStackIndex (const int index)
  • SoElement * getNextInStack (void) const
  • SoElement * getNextFree (void) const

Static Protected Member Functions inherited from SoReplacedElement

  • static SoElement * getElement (SoState *const state, const int stackIndex, SoNode *const node)

Static Protected Member Functions inherited from SoElement

  • static SoElement * getElement (SoState *const state, const int stackIndex)
  • static const SoElement * getConstElement (SoState *const state, const int stackIndex)
  • static int createStackIndex (const SoType id)

Protected Attributes inherited from SoReplacedElement

  • SbUniqueId nodeId

Protected Attributes inherited from SoElement

  • SoType typeId
  • int stackIndex
  • int depth

Static Protected Attributes inherited from SoElement

  • static int classStackIndex
  • static SoTypeList * stackToType

πŸ“š Member Function Documentation πŸ“š

πŸ’œ virtual void SoGLShaderProgramElement::init (SoState * state) [virtual]

okay so this one initializes the element type inside the SoState you hand it. it gets called for the first element of every enabled element type in SoState objects. like, the opening act. the vibe-setter. ✨

Reimplemented from SoReplacedElement.


πŸ’œ virtual void SoGLShaderProgramElement::push (SoState * state) [virtual]

this method gets called every single time a new element is needed in one of the stacks. when does that happen, you ask? when a writable element is requested via SoState::getElement() or indirectly through SoElement::getElement(), and the depth of the current element is less than the state depth. that's the moment. 🫢

Override this method if your element needs to copy data from the previous top of stack. the push() method is called on the new element, and you can find the previous element using SoElement::getNextInStack().

Reimplemented from SoElement.


πŸ’œ virtual void SoGLShaderProgramElement::pop (SoState * state, const SoElement * prevTopElement) [virtual]

this one fires when the state is popped and the depth of the element is bigger than the current state depth. pop() is called on the new top of stack, and a pointer to the previous top of stack gets passed in as prevTopElement. it's literally passing the aux cord. 🎧

Override this method if you need to copy some state information from the previous top of stack.

Reimplemented from SoElement.


πŸ’œ virtual SbBool SoGLShaderProgramElement::matches (const SoElement * element) const [virtual]

this function returns TRUE if the element matches another element (of the same class), with respect to cache validity. bestie-matching. πŸ’ž

heads up: if the application programmer's extension element has a matches() function, it should also have a copyMatchInfo() function. they come as a set, no cap.

Reimplemented from SoReplacedElement.


πŸ’œ virtual SoElement * SoGLShaderProgramElement::copyMatchInfo (void ) const [virtual]

this function creates a copy of the element containing enough information to make the matches() function actually work. it's the receipts. 🧾

Used to help with scene graph traversal caching operations.

Reimplemented from SoReplacedElement.


🌈 Author 🌈

Generated automatically by Doxygen for Coin from the source code.


that's the whole page, bestie, you ate it. πŸ“βœ¨ version 4.0.10, dated Thu Jun 25 2026 00:00:00, straight from the Coin source. go forth and slay your shader program element πŸ’…πŸ‘‘

πŸ“¦ where this page comes from