SoGLLazyElement(3)

πŸ“¦ version 3.1.3, in fedora 43, fedora 44

πŸŽ€ SoGLLazyElement πŸ’…

Library Functions Manual Β· section 3


✨ NAME ✨

SoGLLazyElement β€” the class that is literally meant to optimize GL rendering. bestie it's in the name, it's lazy on purpose, it's giving efficiency queen πŸ‘‘


🌸 SYNOPSIS 🌸

#include <Inventor/elements/SoGLLazyElement.h>

Inherits SoLazyElement. so yeah it's the GL-flavored glow-up of its parent, got it? πŸ¦‹


πŸ’– Public Member Functions πŸ’–

okay so these are the ones you get to call on an actual instance. buckle up, there's a bunch:

  • virtual void init (SoState *state) β€” takes a SoState *state, that's all the page tells us 😭
  • virtual void push (SoState *state) β€” takes a SoState *state
  • virtual void pop (SoState *state, const SoElement *prevtopelement) β€” takes a SoState *state and a const SoElement *prevtopelement
  • void sendDiffuseByIndex (const int index) const β€” FIXME: write doc. (not me reading the source docs and finding this πŸ’€)
  • void send (const SoState *state, uint32_t mask) const β€” FIXME: write doc.
  • void sendVPPacked (SoState *state, const unsigned char *pcolor) β€” FIXME: write doc.
  • void reset (SoState *state, uint32_t bitmask) const β€” takes a SoState *state and a uint32_t bitmask
  • virtual void setDiffuseElt (SoNode *, int32_t numcolors, const SbColor *colors, SoColorPacker *packer) β€” note that first param has no name, iconic honestly
  • virtual void setPackedElt (SoNode *node, int32_t numcolors, const uint32_t *colors, const SbBool packedtransparency)
  • virtual void setColorIndexElt (SoNode *node, int32_t numindices, const int32_t *indices)
  • virtual void setTranspElt (SoNode *node, int32_t numtransp, const float *transp, SoColorPacker *packer)
  • virtual void setTranspTypeElt (int32_t type)
  • virtual void setAmbientElt (const SbColor *color)
  • virtual void setEmissiveElt (const SbColor *color)
  • virtual void setSpecularElt (const SbColor *color)
  • virtual void setShininessElt (float value)
  • virtual void setColorMaterialElt (SbBool value)
  • virtual void enableBlendingElt (int sfactor, int dfactor, int alpha_sfactor, int alpha_dfactor) β€” four whole ints, we love a thorough queen 🫢
  • virtual void disableBlendingElt (void)
  • virtual void setLightModelElt (SoState *state, int32_t model)
  • virtual void setMaterialElt (SoNode *node, uint32_t bitmask, SoColorPacker *packer, const SbColor *diffuse, const int numdiffuse, const float *transp, const int numtransp, const SbColor &ambient, const SbColor &emissive, const SbColor &specular, const float shininess, const SbBool istransparent) β€” the absolute main character of signatures, look at that parameter list, it ate and left no crumbs πŸ”₯
  • virtual void setVertexOrderingElt (VertexOrdering ordering)
  • virtual void setBackfaceCullingElt (SbBool onoff)
  • virtual void setTwosideLightingElt (SbBool onoff)
  • virtual void setShadeModelElt (SbBool flatshading)
  • virtual void setGLImageIdElt (uint32_t glimageid, SbBool alphatest)
  • virtual void setAlphaTestElt (SbBool onoff)
  • void updateColorVBO (SoVBO *vbo) β€” no virtual, no const, just vibes ✨

🧚 Public Member Functions inherited from SoLazyElement 🧚

these come free with the family plan, no cap:

  • virtual SbBool matches (const SoElement *) const
  • virtual SoElement * copyMatchInfo (void) const
  • int32_t getNumDiffuse (void) const
  • int32_t getNumTransparencies (void) const
  • int32_t getNumColorIndices (void) const
  • SbBool isPacked (void) const
  • SbBool isTransparent (void) const
  • const uint32_t * getPackedPointer (void) const
  • const SbColor * getDiffusePointer (void) const
  • const int32_t * getColorIndexPointer (void) const
  • const float * getTransparencyPointer (void) const

πŸ¦‹ Public Member Functions inherited from SoElement πŸ¦‹

and these come from the grandparent, the whole ancestry is serving:

  • const SoType getTypeId (void) const
  • int getStackIndex (void) const
  • void setDepth (const int depth)
  • int getDepth (void) const
  • virtual void print (FILE *file=stdout) const β€” default arg alert 🚨 it's stdout
  • virtual ~SoElement () β€” the destructor, she's virtual, she's final, she's leaving πŸ’…

more of this page is coming bestie, don't go anywhere β€” the static ones and the enums are next 🫢

πŸ’– Detailed Description πŸ’–

okay bestie, so the SoGLLazyElement class is literally here to optimize GL rendering ✨ like that's its whole job, that's its moment.

and ngl? this is just a wrap-around implementation for compatibility. it should β€” hopefully πŸ₯Ί β€” work in the same way as the Inventor class though. fingers crossed fr fr 🀞


πŸ¦‹ Member Function Documentation πŸ¦‹

void * SoGLLazyElement::createInstance (void ) [static]

so this API member is considered internal to the library, okay? like it's not likely to be of interest to the application programmer. it's giving backstage pass only, iykyk πŸ’…

void SoGLLazyElement::initClass (void ) [static]

this static method initializes static data for the SoDiffuseColorElement class. yes bestie, it really says SoDiffuseColorElement, not us β€” copying the source verbatim, no cap 🫢

void SoGLLazyElement::init (SoState * state) [virtual]

this function initializes the element type in the given SoState. it gets called for the first element of each enabled element type in SoState objects. main character energy only for the first one πŸ’…

reimplemented from SoLazyElement.

void SoGLLazyElement::push (SoState * state) [virtual]

this method gets called every single time a new element is required in one of the stacks. that happens when a writable element is requested, using SoState::getElement() or indirectly SoElement::getElement(), and the depth of the current element is less than the state depth.

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 the previous element can be found using SoElement::getNextInStack().

reimplemented from SoLazyElement.

void SoGLLazyElement::pop (SoState * state, const SoElement * prevTopElement) [virtual]

this method is called 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 is passed in prevTopElement.

override this method if you need to copy some state information from the previous top of stack. like, passing notes in class but make it C++ πŸ’Œ

reimplemented from SoElement.

void SoGLLazyElement::reset (SoState * stateptr, uint32_t mask) const

reset element GL state (set state to invalid). use this method to notify this element when you use your own GL code that changes the OpenGL state. it's the polite thing to do bestie, tell it when you've been messing with its stuff 😌

void SoGLLazyElement::setDiffuseElt (SoNode * node, int32_t numcolors, const SbColor * colors, SoColorPacker * packer) [virtual]

reimplemented from SoLazyElement.

void SoGLLazyElement::setPackedElt (SoNode * node, int32_t numcolors, const uint32_t * colors, const SbBool packedtransparency) [virtual]

reimplemented from SoLazyElement.

void SoGLLazyElement::setColorIndexElt (SoNode * node, int32_t numindices, const int32_t * indices) [virtual]

reimplemented from SoLazyElement.

void SoGLLazyElement::setTranspElt (SoNode * node, int32_t numtransp, const float * transp, SoColorPacker * packer) [virtual]

reimplemented from SoLazyElement.

void SoGLLazyElement::setTranspTypeElt (int32_t type) [virtual]

reimplemented from SoLazyElement.

void SoGLLazyElement::setAmbientElt (const SbColor * color) [virtual]

reimplemented from SoLazyElement.

void SoGLLazyElement::setEmissiveElt (const SbColor * color) [virtual]

reimplemented from SoLazyElement.

void SoGLLazyElement::setSpecularElt (const SbColor * color) [virtual]

reimplemented from SoLazyElement.

void SoGLLazyElement::setShininessElt (float value) [virtual]

reimplemented from SoLazyElement.

void SoGLLazyElement::setColorMaterialElt (SbBool value) [virtual]

reimplemented from SoLazyElement.

void SoGLLazyElement::enableBlendingElt (int sfactor, int dfactor, int alpha_sfactor, int alpha_dfactor) [virtual]

reimplemented from SoLazyElement.

void SoGLLazyElement::disableBlendingElt (void ) [virtual]

reimplemented from SoLazyElement.

void SoGLLazyElement::setLightModelElt (SoState * state, int32_t model) [virtual]

reimplemented from SoLazyElement.

void SoGLLazyElement::setMaterialElt (SoNode * node, uint32_t bitmask, SoColorPacker * packer, const SbColor * diffuse, const int numdiffuse, const float * transp, const int numtransp, const SbColor & ambient, const SbColor & emissive, const SbColor & specular, const float shininess, const SbBool istransparent) [virtual]

reimplemented from SoLazyElement.

void SoGLLazyElement::setVertexOrderingElt (VertexOrdering ordering) [virtual]

reimplemented from SoLazyElement.

void SoGLLazyElement::setBackfaceCullingElt (SbBool onoff) [virtual]

reimplemented from SoLazyElement.

void SoGLLazyElement::setTwosideLightingElt (SbBool onoff) [virtual]

reimplemented from SoLazyElement.

void SoGLLazyElement::setShadeModelElt (SbBool flatshading) [virtual]

reimplemented from SoLazyElement.

void SoGLLazyElement::setGLImageIdElt (uint32_t glimageid, SbBool alphatest) [virtual]

reimplemented from SoLazyElement.

void SoGLLazyElement::setAlphaTestElt (SbBool onoff) [virtual]

reimplemented from SoLazyElement.

void SoGLLazyElement::mergeCacheInfo (SoState * state, SoGLLazyElement::GLState * childprestate, SoGLLazyElement::GLState * childpoststate) [static]

merge cache info from a child cache (when doing nested caching) into the current cache. it's giving family reunion but for GL state 🫢

void SoGLLazyElement::lazyDidSet (uint32_t mask) [protected], [virtual]

reimplemented from SoLazyElement.

void SoGLLazyElement::lazyDidntSet (uint32_t mask) [protected], [virtual]

reimplemented from SoLazyElement.


🌸 Author 🌸

generated automatically by Doxygen for Coin from the source code. no human typed this by hand, it just manifested ✨


okay bestie that's the whole page, you ate that πŸ’… this was Coin, Version 3.1.3, page SoGLLazyElement(3) β€” go forth and optimize that GL rendering, icon πŸ‘‘πŸ’–

πŸ“¦ where this page comes from