SoGLLazyElement(3)

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

✨ 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