SoGLMultiTextureImageElement(3)

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

πŸ’– SoGLMultiTextureImageElement(3) β€” Coin πŸ’–

Okay bestie, welcome to the manual page for SoGLMultiTextureImageElement(3) from Coin. This is part 1, and it's giving big important texture energy. No cap. πŸ’…

✨ NAME ✨

SoGLMultiTextureImageElement β€” the class that controls the current GL texture for texture units. Periodt. πŸŽ€

🌸 SYNOPSIS 🌸

#include <Inventor/elements/SoGLMultiTextureImageElement.h>

Inherits SoMultiTextureImageElement. The family tree is real. 🫢

πŸŽ€ Classes

  • class GLUnitData

🫢 Public Member Functions

  • virtual void init (SoState *state)
  • virtual void push (SoState *state)
  • virtual void pop (SoState *state, const SoElement *prevTopElement)

πŸ’… Public Member Functions inherited from SoMultiTextureImageElement

  • virtual SbBool matches (const SoElement *elem) const
  • SoElement * copyMatchInfo (void) const
  • virtual void setElt (const int unit, const SbUniqueId nodeid, const SbVec2s &size, const int numComponents, const unsigned char *bytes, const Wrap wrapS, const Wrap wrapT, const Model model, const SbColor &blendColor) β€” and the docs for this one are literally FIXME: write doc. 😭
  • virtual void setElt (const int unit, const SbUniqueId nodeid, const SbVec3s &size, const int numComponents, const unsigned char *bytes, const Wrap wrapS, const Wrap wrapT, const Wrap wrapR, const Model model, const SbColor &blendColor)

πŸ’œ 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 void print (FILE *file=stdout) const
  • virtual ~SoElement ()

⭐ Static Public Member Functions

  • static SoType getClassTypeId (void)
  • static int getClassStackIndex (void)
  • static void * createInstance (void)
  • static void initClass (void)
  • static void set (SoState *const state, SoNode *const node, const int unit, SoGLImage *image, const Model model, const SbColor &blendColor)
  • static void restore (SoState *state, const int unit)
  • static SoGLImage * get (SoState *state, const int unit, Model &model, SbColor &blendcolor)
  • static SbBool hasTransparency (SoState *state)
  • static void set (SoState *const state, SoNode *const node, SoGLImage *image, const Model model, const SbColor &blendColor)
  • static SoGLImage * get (SoState *state, Model &model, SbColor &blendcolor)
  • static int32_t getMaxGLTextureSize (void)

🌟 Static Public Member Functions inherited from SoMultiTextureImageElement

  • static SoType getClassTypeId (void)
  • static int getClassStackIndex (void)
  • static void * createInstance (void)
  • static void initClass (void)
  • static void setDefault (SoState *const state, SoNode *const node, const int unit=0)
  • static void set (SoState *const state, SoNode *const node, const int unit, const SbVec2s &size, const int numComponents, const unsigned char *bytes, const Wrap wrapS, const Wrap wrapT, const Model model, const SbColor &blendColor) β€” FIXME: write doc. πŸ™ˆ
  • static void set (SoState *const state, SoNode *const node, const int unit, const SbVec3s &size, const int numComponents, const unsigned char *bytes, const Wrap wrapS, const Wrap wrapT, const Wrap wrapR, const Model model, const SbColor &blendColor)
  • static const unsigned char * get (SoState *const state, const int unit, SbVec2s &size, int &numComponents, Wrap &wrapS, Wrap &wrapT, Model &model, SbColor &blendColor) β€” FIXME: write doc. πŸ™ˆ
  • static const unsigned char * get (SoState *const state, const int unit, SbVec3s &size, int &numComponents, Wrap &wrapS, Wrap &wrapT, Wrap &wrapR, Model &model, SbColor &blendColor)
  • static const unsigned char * getImage (SoState *const state, const int unit, SbVec2s &size, int &numComponents)
  • static const unsigned char * getImage (SoState *const state, const int unit, SbVec3s &size, int &numComponents)
  • static const SbColor & getBlendColor (SoState *const state, const int unit=0)
  • static Model getModel (SoState *const state, const int unit=0)
  • static Wrap getWrapS (SoState *const state, const int unit=0)
  • static Wrap getWrapT (SoState *const state, const int unit=0)
  • static Wrap getWrapR (SoState *const state, const int unit=0)
  • static SbBool containsTransparency (SoState *const state) β€” FIXME: write doc. πŸ™ˆ
  • static const unsigned char * getDefault (SbVec2s &size, int &numComponents) β€” FIXME: write doc. πŸ™ˆ
  • static const unsigned char * getDefault (SbVec3s &size, int &numComponents) β€” FIXME: write doc. πŸ™ˆ
  • static void set (SoState *const state, SoNode *const node, const SbVec2s &size, const int numComponents, const unsigned char *bytes, const int wrapS, const int wrapT, const int model, const SbColor &blendColor)
  • static void set (SoState *const state, SoNode *const node, const SbVec2s &size, const int numComponents, const unsigned char *bytes, const Wrap wrapS, const Wrap wrapT, const Model model, const SbColor &blendColor)
  • static void set (SoState *const state, SoNode *const node, const SbVec3s &size, const int numComponents, const unsigned char *bytes, const int wrapS, const int wrapT, const int wrapR, const int model, const SbColor &blendColor)
  • static void set (SoState *const state, SoNode *const node, const SbVec3s &size, const int numComponents, const unsigned char *bytes, const Wrap wrapS, const Wrap wrapT, const Wrap wrapR, const Model model, const SbColor &blendColor)
  • static const unsigned char * get (SoState *const state, SbVec2s &size, int &numComponents, Wrap &wrapS, Wrap &wrapT, Model &model, SbColor &blendColor)
  • static const unsigned char * get (SoState *const state, SbVec3s &size, int &numComponents, Wrap &wrapS, Wrap &wrapT, Wrap &wrapR, Model &model, SbColor &blendColor)
  • static const unsigned char * get (SoState *const state, SbVec2s &size, int &numComponents, int &wrapS, int &wrapT, int &model, SbColor &blendColor)
  • static const unsigned char * get (SoState *const state, SbVec3s &size, int &numComponents, int &wrapS, int &wrapT, int &wrapR, int &model, SbColor &blendColor)
  • static const unsigned char * getImage (SoState *const state, SbVec2s &size, int &numComponents)
  • static const unsigned char * getImage (SoState *const state, SbVec3s &size, int &numComponents)

πŸ’« 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)

πŸ›‘οΈ Protected Member Functions

  • SoGLMultiTextureImageElement (void)
  • virtual ~SoGLMultiTextureImageElement ()
  • virtual SbBool hasTransparency (const int unit=0) const

πŸ”’ Protected Member Functions inherited from SoMultiTextureImageElement

  • virtual ~SoMultiTextureImageElement ()
  • const UnitData & getUnitData (const int unit) const
  • int getNumUnits () const

πŸ” 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

🌈 Additional Inherited Members

πŸ’œ Public Types inherited from SoMultiTextureImageElement

  • enum Model { BLEND = 0x0be2, MODULATE = 0x2100, DECAL = 0x2101, REPLACE = 0x1E01 }
  • enum Wrap { CLAMP = 0x2900, REPEAT = 0x2901, CLAMP_TO_BORDER = 0x812D }

🧚 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 SoElement

  • SoType typeId
  • int stackIndex
  • int depth

🌸 Static Protected Attributes inherited from SoElement

  • static int classStackIndex
  • static SoTypeList * stackToType

πŸ“– Detailed Description πŸ“–

The SoGLMultiTextureImageElement class is used to control the current GL texture for texture units.

And then the docs just say: FIXME: write doc. β€” not me being shady, that's literally what it says. πŸ’€

πŸ› οΈ Constructor & Destructor Documentation πŸ› οΈ

SoGLMultiTextureImageElement::SoGLMultiTextureImageElement (void )

[protected]

Constructor.

SoGLMultiTextureImageElement::~SoGLMultiTextureImageElement (void )

[protected], [virtual]

Destructor.


πŸ’– Member Function Documentation πŸ’–

okay bestie, this is the part where we meet the actual functions, and there are a lot of them, but every single one is here, no cap 🫢


⭐ static SoType SoGLMultiTextureImageElement::getClassTypeId(void) ⭐

It's giving "who am I" energy. This static method returns the SoType object associated with objects of this class. That's it, that's the whole vibe πŸ’…

🌸 static int SoGLMultiTextureImageElement::getClassStackIndex(void) 🌸

This static method returns the state stack index for the class. Very demure, very mindful, very index-y πŸŽ€

🧚 static void * SoGLMultiTextureImageElement::createInstance(void) 🧚

heads up bestie: this API member is considered internal to the library, as it is not likely to be of interest to the application programmer. iykyk, it's not for us πŸ™ˆ

It creates a new instance of the class type corresponding to the SoType object. iconic behaviour, honestly.

πŸ‘‘ static void SoGLMultiTextureImageElement::initClass(void) πŸ‘‘

Initialize relevant common data for all instances, like the type system. Basically the group chat gets created and everyone gets added ✨

πŸ’œ virtual void SoGLMultiTextureImageElement::init(SoState * state) πŸ’œ

Initializes the element to its default value. Setting the vibes to factory settings, as one does 🌈

Reimplemented from SoMultiTextureImageElement.

πŸ”₯ virtual void SoGLMultiTextureImageElement::push(SoState * state) πŸ”₯

okay so this one is main character energy. This method is called every time a new element is required in one of the stacks. This 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 SoMultiTextureImageElement.

πŸ’€ virtual void SoGLMultiTextureImageElement::pop(SoState * state, const SoElement * prevTopElement) πŸ’€

The reverse glow-up. 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. Passing the baton, but make it Unix πŸŽ€

Reimplemented from SoElement.

✨ static void SoGLMultiTextureImageElement::set(SoState *const state, SoNode *const node, const int unit, SoGLImage * image, const Model model, const SbColor & blendColor) ✨

Sets the current texture. Id didapply is TRUE, it is assumed that the texture image already is the current GL texture.

do NOT use this feature unless you know what you're doing. fr fr, this is not a vibe-check-it-later situation, this is a know-what-you're-doing situation 😭

πŸ¦‹ static SbBool SoGLMultiTextureImageElement::hasTransparency(SoState * state) πŸ¦‹

Returns TRUE if any of the images have at least one transparent pixel. Peeking through the see-through-ness πŸ’…

Since

Coin 3.1

πŸ“ virtual SbBool SoGLMultiTextureImageElement::hasTransparency(const int unit = 0) const πŸ“ β€” also marked [protected]

Called by containsTransparency(). Returns TRUE if image data has transparency.

ngl, the default method does a very poor job of detecting this, since it returns TRUE when the number of components are 2 or 4. Override whenever it is important to know this β€” and fun fact, SoGLTextureImageElement overrides it to avoid transparency handling where possible πŸ’–

Reimplemented from SoMultiTextureImageElement.

🌟 static int32_t SoGLMultiTextureImageElement::getMaxGLTextureSize(void) 🌟

The size returned by this function will just be a very coarse estimate, as it only uses the more or less obsoleted technique of calling glGetIntegerv(GL_MAX_TEXTURE_SIZE). It's giving "close enough" 🫠

For a better estimate, use SoGLTextureImageElement::isTextureSizeLegal().

important: note that this function needs an OpenGL context to be made current for it to work. Without that, you will most likely get a faulty return value or even a crash. πŸ’€ not the crash. please make the context current first bestie.

πŸŽ€ Author πŸŽ€

Generated automatically by Doxygen for Coin from the source code. so technically not a human author, which is very 2026 of it πŸ€–βœ¨


and that's a wrap on the whole page, bestie!! this was Version 4.0.10, dated Thu Jun 25 2026, brought to you by the fine folks behind SoGLMultiTextureImageElement(3). slay, periodt, go forth and texture responsibly πŸ’…πŸ’–πŸ¦‹

πŸ“¦ where this page comes from