SoGLLazyElement(3)
β¨ SoGLLazyElement β¨
okay bestie, welcome to the <code>SoGLLazyElement</code> page π β this one lives in the Coin manual, section 3, so you know it's a library/API thing and not some command you type in your shell. It's giving β¨developer documentationβ¨ and honestly? iconic.
π NAME π
SoGLLazyElement β the class that is meant to optimize GL rendering. π
That's it, that's the whole vibe for this bit. The SoGLLazyElement class exists to make your GL rendering faster, fr fr. π₯
β¨ SYNOPSIS β¨
#include <Inventor/elements/SoGLLazyElement.h>
Inherits SoLazyElement. (yes bestie it's giving nepo baby but make it Open Inventor π
)
π Classes π
struct GLStateβ the whole GL state vibe, no further details given, bestie π
π Public Member Functions π
virtual void init (SoState *state)β init goes brrr, no doc though β¨virtual void push (SoState *state)β push it, push it real good πvirtual void pop (SoState *state, const SoElement *prevtopelement)β pop off queen πvoid sendDiffuseByIndex (const int index) constβ FIXME: write doc. bestie the docs are literally not doc-ing πvoid send (const SoState *state, uint32_t mask) constβ FIXME: write doc. the tea is missing πvoid sendVPPacked (SoState *state, const unsigned char *pcolor)β FIXME: write doc. no cap, no doc πvoid reset (SoState *state, uint32_t bitmask) constβ reset and refresh, periodt β¨virtual void setDiffuseElt (SoNode *, int32_t numcolors, const SbColor *colors, SoColorPacker *packer)β set the diffuse element, slay πvirtual void setPackedElt (SoNode *node, int32_t numcolors, const uint32_t *colors, const SbBool packedtransparency)β packed and thriving π¦β¨virtual void setColorIndexElt (SoNode *node, int32_t numindices, const int32_t *indices)β index it, bestie πvirtual void setTranspElt (SoNode *node, int32_t numtransp, const float *transp, SoColorPacker *packer)β transparency vibes πvirtual void setTranspTypeElt (int32_t type)β type it out β¨virtual void setAmbientElt (const SbColor *color)β ambient glow up πvirtual void setEmissiveElt (const SbColor *color)β emissive and iconic πvirtual void setSpecularElt (const SbColor *color)β specular sparkle β¨virtual void setShininessElt (float value)β shine bright like a diamond πvirtual void setColorMaterialElt (SbBool value)β material girl πvirtual void enableBlendingElt (int sfactor, int dfactor, int alpha_sfactor, int alpha_dfactor)β blend it out π¨virtual void disableBlendingElt (void)β no blending, no problem πvirtual void setLightModelElt (SoState *state, int32_t model)β model behavior β¨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 whole material world πvirtual void setVertexOrderingElt (VertexOrdering ordering)β order up πvirtual void setBackfaceCullingElt (SbBool onoff)β cull those backfaces, periodt βοΈvirtual void setTwosideLightingElt (SbBool onoff)β two-sided lighting, double the fun β¨virtual void setShadeModelElt (SbBool flatshading)β shade model, slay πvirtual void setAlphaTestElt (int func, float value)β alpha test, bestie π§ͺvoid updateColorVBO (SoVBO *vbo)β update that VBO, vroom vroom ποΈ
π Public Member Functions inherited from SoLazyElement π
virtual SbBool matches (const SoElement *) constβ does it match? the vibes say yes πvirtual SoElement * copyMatchInfo (void) constβ copy that match info, periodt β¨int32_t getNumDiffuse (void) constβ how many diffuse? no doc, just vibes πint32_t getNumTransparencies (void) constβ transparency count, bestie πint32_t getNumColorIndices (void) constβ color indices go brrr π¨SbBool isPacked (void) constβ packed? yes or no, no cap π¦SbBool isTransparent (void) constβ transparent? the tea βconst uint32_t * getPackedPointer (void) constβ pointer to the packed, slay πconst SbColor * getDiffusePointer (void) constβ diffuse pointer, iconic πconst int32_t * getColorIndexPointer (void) constβ index pointer, periodt β¨const float * getTransparencyPointer (void) constβ transparency pointer, bestie π
πΈ Public Member Functions inherited from SoElement πΈ
const SoType getTypeId (void) constβ type ID, the identity πint getStackIndex (void) constβ stack index, stack it up πvoid setDepth (const int depth)β set the depth, deep πint getDepth (void) constβ get the depth, how deep is your love πΆvirtual void print (FILE *file=stdout) constβ print it, bestie π¨οΈvirtual ~SoElement ()β destructor, bye bye π
π Static Public Member Functions π
static SoType getClassTypeId (void)β class type ID, iconic β¨static int getClassStackIndex (void)β class stack index, stack it πstatic void * createInstance (void)β create an instance, main character energy πstatic void initClass ()β init the class, slay πstatic void sendAllMaterial (SoState *state)β FIXME: write doc. the docs are ghosting us πstatic void sendNoMaterial (SoState *state)β FIXME: write doc. no material, no doc πstatic void sendOnlyDiffuseColor (SoState *state)β FIXME: write doc. only diffuse, only vibes β¨static void sendLightModel (SoState *state, const int32_t model)β send the light model, periodt π‘static void sendPackedDiffuse (SoState *state, const uint32_t diffuse)β send packed diffuse, π¦static void sendFlatshading (SoState *state, const SbBool onoff)β flatshading, on or off πstatic void sendVertexOrdering (SoState *state, const VertexOrdering ordering)β send vertex ordering, order up πstatic void sendTwosideLighting (SoState *state, const SbBool onoff)β twoside lighting, double trouble β¨static void sendBackfaceCulling (SoState *state, const SbBool onoff)β backface culling, cull it βοΈstatic SbBool isColorIndex (SoState *state)β FIXME: write doc. color index? the mystery π΅οΈstatic SoGLLazyElement * getInstance (const SoState *state)β FIXME: write doc. get the instance, bestie πstatic void beginCaching (SoState *state, SoGLLazyElement::GLState *prestate, SoGLLazyElement::GLState *poststate)β begin caching, cache me outside π§static void endCaching (SoState *state)β end caching, periodt β¨static SbBool preCacheCall (const SoState *state, const SoGLLazyElement::GLState *prestate)β pre-cache call, early bird π¦static void postCacheCall (const SoState *state, const SoGLLazyElement::GLState *poststate)β post-cache call, later gator πstatic void mergeCacheInfo (SoState *state, SoGLLazyElement::GLState *childprestate, SoGLLazyElement::GLState *childpoststate)β merge that cache info, slay π
π Static Public Member Functions inherited from SoLazyElement π
static SoType getClassTypeId (void)β class type ID, again πstatic int getClassStackIndex (void)β class stack index, stack it πstatic void * createInstance (void)β create instance, main character β¨static void initClass ()β init class, slay πstatic void setToDefault (SoState *state)β set to default, basic but iconic πstatic void setDiffuse (SoState *state, SoNode *node, int32_t numcolors, const SbColor *colors, SoColorPacker *packer)β set diffuse, colorful β¨static void setTransparency (SoState *state, SoNode *node, int32_t numvalues, const float *transparency, SoColorPacker *packer)β set transparency, see-through πstatic void setPacked (SoState *state, SoNode *node, int32_t numcolors, const uint32_t *colors, const SbBool packedtransparency=FALSE)β set packed, π¦static void setColorIndices (SoState *state, SoNode *node, int32_t numindices, const int32_t *indices)β set color indices, index it π¨static void setAmbient (SoState *state, const SbColor *color)β set ambient, glow up πstatic void setEmissive (SoState *state, const SbColor *color)β set emissive, shine β¨static void setSpecular (SoState *state, const SbColor *color)β set specular, sparkle πstatic void setShininess (SoState *state, float value)β set shininess, bling bling πstatic void setColorMaterial (SoState *state, SbBool value)β set color material, material girl πstatic void enableBlending (SoState *state, int sfactor, int dfactor)β enable blending, mix it up π¨static void enableSeparateBlending (SoState *state, int sfactor, int dfactor, int alpha_sfactor, int alpha_dfactor)β separate blending, separate vibes β¨static void disableBlending (SoState *state)β disable blending, bye π«static void setLightModel (SoState *state, const int32_t model)β set light model, π‘static void setVertexOrdering (SoState *state, VertexOrdering ordering)β set vertex ordering, order up πstatic void setBackfaceCulling (SoState *state, SbBool onoff)β set backface culling, βοΈstatic void setTwosideLighting (SoState *state, SbBool onoff)β set twoside lighting, double β¨static void setShadeModel (SoState *state, SbBool flatshading)β set shade model, shade it πstatic void setAlphaTest (SoState *state, int func, float value)β set alpha test, π§ͺstatic const SbColor & getDiffuse (SoState *state, int index)β get diffuse, give it to me πstatic float getTransparency (SoState *, int index)β get transparency, πstatic const uint32_t * getPackedColors (SoState *)β get packed colors, π¦static const int32_t * getColorIndices (SoState *)β get color indices, π¨static int32_t getColorIndex (SoState *, int num)β get color index, π’static const SbColor & getAmbient (SoState *)β get ambient, πstatic const SbColor & getEmissive (SoState *)β get emissive, β¨static const SbColor & getSpecular (SoState *)β get specular, πstatic float getShininess (SoState *)β get shininess, πstatic SbBool getColorMaterial (SoState *)β get color material, πstatic SbBool getBlending (SoState *, int &sfactor, int &dfactor)β get blending, π¨static SbBool getAlphaBlending (SoState *, int &sfactor, int &dfactor)β get alpha blending, πstatic int32_t getLightModel (SoState *)β get light model, π‘static int getAlphaTest (SoState *state, float &value)β get alpha test, π§ͺstatic SbBool getTwoSidedLighting (SoState *state)β get two-sided lighting, β¨static SoLazyElement * getInstance (SoState *state)β get instance, πstatic float getDefaultAmbientIntensity (void)β default ambient intensity, πstatic SbColor getDefaultDiffuse (void)β default diffuse, πstatic SbColor getDefaultAmbient (void)β default ambient, πstatic SbColor getDefaultSpecular (void)β default specular, β¨static SbColor getDefaultEmissive (void)β default emissive, π₯static float getDefaultShininess (void)β default shininess, πstatic uint32_t getDefaultPacked (void)β default packed, π¦static float getDefaultTransparency (void)β default transparency, πstatic int32_t getDefaultLightModel (void)β default light model, π‘static int32_t getDefaultColorIndex (void)β default color index, π¨static void setMaterials (SoState *state, SoNode *node, uint32_t bitmask, SoColorPacker *cPacker, 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)β set materials, all the things β¨static SoLazyElement * getWInstance (SoState *state)β get W instance, winner πstatic void setTransparencyType (SoState *state, int32_t type)β set transparency type, π
πΈ Static Public Member Functions inherited from SoElement πΈ
static void initClass (void)β init class, again πstatic SoType getClassTypeId (void)β class type ID, encore β¨static int getClassStackIndex (void)β class stack index, stack it πstatic void initElements (void)β init elements, elemental π§static int getNumStackIndices (void)β number of stack indices, count it π’static SoType getIdFromStackIndex (const int stackIndex)β get ID from stack index, identity π
π Protected Member Functions π
~SoGLLazyElement ()β destructor, bye bestie πvirtual void lazyDidSet (uint32_t mask)β lazy did set, slay πvirtual void lazyDidntSet (uint32_t mask)β lazy didn't set, not today π
π Protected Member Functions inherited from SoLazyElement π
~SoLazyElement ()β destructor, peace out βοΈ
πΈ Protected Member Functions inherited from SoElement πΈ
SoElement (void)β constructor, hey bestie πvoid capture (SoState *const state) constβ capture it, πΈvirtual void captureThis (SoState *state) constβ capture this, πΈvoid setTypeId (const SoType typeId)β set type ID, identity πvoid setStackIndex (const int index)β set stack index, πSoElement * getNextInStack (void) constβ get next in stack, next πSoElement * getNextFree (void) constβ get next free, free bird ποΈ
π¦ Additional Inherited Members π¦
π Public Types inherited from SoLazyElement π
enum cases
enum cases { LIGHT_MODEL_CASE = 0, COLOR_MATERIAL_CASE, DIFFUSE_CASE,
AMBIENT_CASE, EMISSIVE_CASE, SPECULAR_CASE, SHININESS_CASE,
BLENDING_CASE, TRANSPARENCY_CASE, VERTEXORDERING_CASE, TWOSIDE_CASE,
CULLING_CASE, SHADE_MODEL_CASE, ALPHATEST_CASE, GLIMAGE_CASE,
LAZYCASES_LAST }
enum masks
enum masks { LIGHT_MODEL_MASK = 1 << LIGHT_MODEL_CASE,
COLOR_MATERIAL_MASK = 1 << COLOR_MATERIAL_CASE, DIFFUSE_MASK = 1 <<
DIFFUSE_CASE, AMBIENT_MASK = 1 << AMBIENT_CASE, EMISSIVE_MASK =
1<<EMISSIVE_CASE, SPECULAR_MASK = 1 << SPECULAR_CASE, SHININESS_MASK
= 1 << SHININESS_CASE, TRANSPARENCY_MASK = 1 << TRANSPARENCY_CASE,
BLENDING_MASK = 1 << BLENDING_CASE, VERTEXORDERING_MASK = 1 <<
VERTEXORDERING_CASE, TWOSIDE_MASK = 1 << TWOSIDE_CASE, CULLING_MASK
= 1 << CULLING_CASE, SHADE_MODEL_MASK = 1 << SHADE_MODEL_CASE,
ALPHATEST_MASK = 1 << ALPHATEST_CASE, GLIMAGE_MASK = 1 <<
GLIMAGE_CASE, ALL_MASK = (1 << LAZYCASES_LAST)-1 }
enum internalMasks
enum internalMasks { OTHER_COLOR_MASK =
AMBIENT_MASK|EMISSIVE_MASK|SPECULAR_MASK|SHININESS_MASK,
ALL_COLOR_MASK = OTHER_COLOR_MASK|DIFFUSE_MASK, NO_COLOR_MASK =
ALL_MASK & (~ALL_COLOR_MASK), ALL_BUT_DIFFUSE_MASK = ALL_MASK &(~
DIFFUSE_MASK), DIFFUSE_ONLY_MASK = ALL_MASK &(~ OTHER_COLOR_MASK) }
enum LightModel
enum LightModel { BASE_COLOR, PHONG }
enum VertexOrdering
enum VertexOrdering { CW, CCW }
πΈ Static Protected Member Functions inherited from SoElement πΈ
static SoElement * getElement (SoState *const state, const int stackIndex)β get element, elemental π§static const SoElement * getConstElement (SoState *const state, const int stackIndex)β get const element, const queen πstatic int createStackIndex (const SoType id)β create stack index, π
π Protected Attributes inherited from SoLazyElement π
struct SoLazyElement::CoinState coinstateβ coin state, coin it π°
πΈ Protected Attributes inherited from SoElement πΈ
SoType typeIdβ type ID, identity πint stackIndexβ stack index, πint depthβ depth, deep π
π Static Protected Attributes inherited from SoElement π
static int classStackIndexβ class stack index, static vibes β¨static SoTypeList * stackToTypeβ stack to type, mapping it π
β¨ Detailed Description β¨
okay so bestie, the tea on SoGLLazyElement is that it's literally built to optimize GL rendering. that's its whole thing. its purpose. its moment. π
but like... plot twist π β this one is just a wrap-around implementation for compatibility. it should (hopefully π«Ά) work exactly the same way as the Inventor class though. so no cap, same behavior, just wrapped.
π Constructor & Destructor Documentation π
SoGLLazyElement::~SoGLLazyElement () [protected]
the destructor. it destroys. it cleans up. goodbye queen π β and it's protected, so you can't just call it yourself, iykyk.
π Member Function Documentation π
SoType SoGLLazyElement::getClassTypeId (void ) [static]
this static method returns the SoType object that's associated with objects of this class. that's the whole vibe. β¨
int SoGLLazyElement::getClassStackIndex (void ) [static]
this static method returns the state stack index for the class. iconic, honestly.
void * SoGLLazyElement::createInstance (void ) [static]
this API member is considered internal to the library, since it is not likely to be of interest to the application programmer. π
it creates a new instance of the class type corresponding to the SoType object.
void SoGLLazyElement::initClass (void ) [static]
initialize relevant common data for all instances, like the type system. gotta set the groundwork before the main character energy kicks in π
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.
Reimplemented from SoLazyElement.
void SoGLLazyElement::push (SoState * state) [virtual]
this method is called every 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 gets passed in as prevTopElement.
override this method if you need to copy some state information from the previous top of stack. π«Ά
Reimplemented from SoElement.
void SoGLLazyElement::reset (SoState * stateptr, uint32_t mask) const
reset the 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. basically: if you go messing with GL behind its back, tell it, so it doesn't get confused π fr fr.
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::setAlphaTestElt (int func, float value) [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. nested caching really said "let me hand you my info" π€
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. not a human typing this out at 3am, just the robot doing its little thing π€β¨
and that's the whole page bestie, we ate and left no crumbs π
this was Coin version 4.0.10, dated Thu Jun 25 2026 00:00:00 β so like, mark your calendars, that's when this SoGLLazyElement(3) moment was frozen in time π¦ periodt π
π¦ where this page comes from
- fedora 43: Coin4-devel 4.0.10-1.fc43 Β· BSD-3-Clause AND GPL-3.0-or-later
- fedora 43: Coin4-devel 4.0.10-1.fc43 Β· BSD-3-Clause AND GPL-3.0-or-later
- fedora 44: Coin4-devel 4.0.10-1.fc44 Β· BSD-3-Clause AND GPL-3.0-or-later
- fedora 44: Coin4-devel 4.0.10-1.fc44 Β· BSD-3-Clause AND GPL-3.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms