.TH "SoGLMultiTextureImageElement" 3 "Tue Jun 23 2026 23:48:38" "Version 4.0.10" "Coin" \" -*- nroff -*- .ad l .nh .SH NAME SoGLMultiTextureImageElement \- The \fBSoGLMultiTextureImageElement\fP class is used to control the current GL texture for texture units\&. .SH SYNOPSIS .br .PP .PP \fR#include \fP .PP Inherits \fBSoMultiTextureImageElement\fP\&. .SS "Classes" .in +1c .ti -1c .RI "class \fBGLUnitData\fP" .br .in -1c .SS "Public Member Functions" .in +1c .ti -1c .RI "virtual void \fBinit\fP (\fBSoState\fP *state)" .br .ti -1c .RI "virtual void \fBpush\fP (\fBSoState\fP *state)" .br .ti -1c .RI "virtual void \fBpop\fP (\fBSoState\fP *state, const \fBSoElement\fP *prevTopElement)" .br .in -1c Public Member Functions inherited from \fBSoMultiTextureImageElement\fP .in +1c .ti -1c .RI "virtual SbBool \fBmatches\fP (const \fBSoElement\fP *elem) const" .br .ti -1c .RI "\fBSoElement\fP * \fBcopyMatchInfo\fP (void) const" .br .ti -1c .RI "virtual void \fBsetElt\fP (const int unit, const SbUniqueId nodeid, const \fBSbVec2s\fP &size, const int numComponents, const unsigned char *bytes, const Wrap wrapS, const Wrap wrapT, const Model model, const \fBSbColor\fP &blendColor)" .br .RI "FIXME: write doc\&. " .ti -1c .RI "virtual void \fBsetElt\fP (const int unit, const SbUniqueId nodeid, const \fBSbVec3s\fP &size, const int numComponents, const unsigned char *bytes, const Wrap wrapS, const Wrap wrapT, const Wrap wrapR, const Model model, const \fBSbColor\fP &blendColor)" .br .in -1c Public Member Functions inherited from \fBSoElement\fP .in +1c .ti -1c .RI "const \fBSoType\fP \fBgetTypeId\fP (void) const" .br .ti -1c .RI "int \fBgetStackIndex\fP (void) const" .br .ti -1c .RI "void \fBsetDepth\fP (const int \fBdepth\fP)" .br .ti -1c .RI "int \fBgetDepth\fP (void) const" .br .ti -1c .RI "virtual void \fBprint\fP (FILE *file=stdout) const" .br .ti -1c .RI "virtual \fB~SoElement\fP ()" .br .in -1c .SS "Static Public Member Functions" .in +1c .ti -1c .RI "static \fBSoType\fP \fBgetClassTypeId\fP (void)" .br .ti -1c .RI "static int \fBgetClassStackIndex\fP (void)" .br .ti -1c .RI "static void * \fBcreateInstance\fP (void)" .br .ti -1c .RI "static void \fBinitClass\fP (void)" .br .ti -1c .RI "static void \fBset\fP (\fBSoState\fP *const state, \fBSoNode\fP *const node, const int unit, \fBSoGLImage\fP *image, const Model model, const \fBSbColor\fP &blendColor)" .br .ti -1c .RI "static void \fBrestore\fP (\fBSoState\fP *state, const int unit)" .br .ti -1c .RI "static \fBSoGLImage\fP * \fBget\fP (\fBSoState\fP *state, const int unit, Model &model, \fBSbColor\fP &blendcolor)" .br .ti -1c .RI "static SbBool \fBhasTransparency\fP (\fBSoState\fP *state)" .br .ti -1c .RI "static void \fBset\fP (\fBSoState\fP *const state, \fBSoNode\fP *const node, \fBSoGLImage\fP *image, const Model model, const \fBSbColor\fP &blendColor)" .br .ti -1c .RI "static \fBSoGLImage\fP * \fBget\fP (\fBSoState\fP *state, Model &model, \fBSbColor\fP &blendcolor)" .br .ti -1c .RI "static int32_t \fBgetMaxGLTextureSize\fP (void)" .br .in -1c Static Public Member Functions inherited from \fBSoMultiTextureImageElement\fP .in +1c .ti -1c .RI "static \fBSoType\fP \fBgetClassTypeId\fP (void)" .br .ti -1c .RI "static int \fBgetClassStackIndex\fP (void)" .br .ti -1c .RI "static void * \fBcreateInstance\fP (void)" .br .ti -1c .RI "static void \fBinitClass\fP (void)" .br .ti -1c .RI "static void \fBsetDefault\fP (\fBSoState\fP *const state, \fBSoNode\fP *const node, const int unit=0)" .br .ti -1c .RI "static void \fBset\fP (\fBSoState\fP *const state, \fBSoNode\fP *const node, const int unit, const \fBSbVec2s\fP &size, const int numComponents, const unsigned char *bytes, const Wrap wrapS, const Wrap wrapT, const Model model, const \fBSbColor\fP &blendColor)" .br .RI "FIXME: write doc\&. " .ti -1c .RI "static void \fBset\fP (\fBSoState\fP *const state, \fBSoNode\fP *const node, const int unit, const \fBSbVec3s\fP &size, const int numComponents, const unsigned char *bytes, const Wrap wrapS, const Wrap wrapT, const Wrap wrapR, const Model model, const \fBSbColor\fP &blendColor)" .br .ti -1c .RI "static const unsigned char * \fBget\fP (\fBSoState\fP *const state, const int unit, \fBSbVec2s\fP &size, int &numComponents, Wrap &wrapS, Wrap &wrapT, Model &model, \fBSbColor\fP &blendColor)" .br .RI "FIXME: write doc\&. " .ti -1c .RI "static const unsigned char * \fBget\fP (\fBSoState\fP *const state, const int unit, \fBSbVec3s\fP &size, int &numComponents, Wrap &wrapS, Wrap &wrapT, Wrap &wrapR, Model &model, \fBSbColor\fP &blendColor)" .br .ti -1c .RI "static const unsigned char * \fBgetImage\fP (\fBSoState\fP *const state, const int unit, \fBSbVec2s\fP &size, int &numComponents)" .br .ti -1c .RI "static const unsigned char * \fBgetImage\fP (\fBSoState\fP *const state, const int unit, \fBSbVec3s\fP &size, int &numComponents)" .br .ti -1c .RI "static const \fBSbColor\fP & \fBgetBlendColor\fP (\fBSoState\fP *const state, const int unit=0)" .br .ti -1c .RI "static Model \fBgetModel\fP (\fBSoState\fP *const state, const int unit=0)" .br .ti -1c .RI "static Wrap \fBgetWrapS\fP (\fBSoState\fP *const state, const int unit=0)" .br .ti -1c .RI "static Wrap \fBgetWrapT\fP (\fBSoState\fP *const state, const int unit=0)" .br .ti -1c .RI "static Wrap \fBgetWrapR\fP (\fBSoState\fP *const state, const int unit=0)" .br .ti -1c .RI "static SbBool \fBcontainsTransparency\fP (\fBSoState\fP *const state)" .br .RI "FIXME: write doc\&. " .ti -1c .RI "static const unsigned char * \fBgetDefault\fP (\fBSbVec2s\fP &size, int &numComponents)" .br .RI "FIXME: write doc\&. " .ti -1c .RI "static const unsigned char * \fBgetDefault\fP (\fBSbVec3s\fP &size, int &numComponents)" .br .ti -1c .RI "static void \fBset\fP (\fBSoState\fP *const state, \fBSoNode\fP *const node, const \fBSbVec2s\fP &size, const int numComponents, const unsigned char *bytes, const int wrapS, const int wrapT, const int model, const \fBSbColor\fP &blendColor)" .br .ti -1c .RI "static void \fBset\fP (\fBSoState\fP *const state, \fBSoNode\fP *const node, const \fBSbVec2s\fP &size, const int numComponents, const unsigned char *bytes, const Wrap wrapS, const Wrap wrapT, const Model model, const \fBSbColor\fP &blendColor)" .br .ti -1c .RI "static void \fBset\fP (\fBSoState\fP *const state, \fBSoNode\fP *const node, const \fBSbVec3s\fP &size, const int numComponents, const unsigned char *bytes, const int wrapS, const int wrapT, const int wrapR, const int model, const \fBSbColor\fP &blendColor)" .br .ti -1c .RI "static void \fBset\fP (\fBSoState\fP *const state, \fBSoNode\fP *const node, const \fBSbVec3s\fP &size, const int numComponents, const unsigned char *bytes, const Wrap wrapS, const Wrap wrapT, const Wrap wrapR, const Model model, const \fBSbColor\fP &blendColor)" .br .ti -1c .RI "static const unsigned char * \fBget\fP (\fBSoState\fP *const state, \fBSbVec2s\fP &size, int &numComponents, Wrap &wrapS, Wrap &wrapT, Model &model, \fBSbColor\fP &blendColor)" .br .ti -1c .RI "static const unsigned char * \fBget\fP (\fBSoState\fP *const state, \fBSbVec3s\fP &size, int &numComponents, Wrap &wrapS, Wrap &wrapT, Wrap &wrapR, Model &model, \fBSbColor\fP &blendColor)" .br .ti -1c .RI "static const unsigned char * \fBget\fP (\fBSoState\fP *const state, \fBSbVec2s\fP &size, int &numComponents, int &wrapS, int &wrapT, int &model, \fBSbColor\fP &blendColor)" .br .ti -1c .RI "static const unsigned char * \fBget\fP (\fBSoState\fP *const state, \fBSbVec3s\fP &size, int &numComponents, int &wrapS, int &wrapT, int &wrapR, int &model, \fBSbColor\fP &blendColor)" .br .ti -1c .RI "static const unsigned char * \fBgetImage\fP (\fBSoState\fP *const state, \fBSbVec2s\fP &size, int &numComponents)" .br .ti -1c .RI "static const unsigned char * \fBgetImage\fP (\fBSoState\fP *const state, \fBSbVec3s\fP &size, int &numComponents)" .br .in -1c Static Public Member Functions inherited from \fBSoElement\fP .in +1c .ti -1c .RI "static void \fBinitClass\fP (void)" .br .ti -1c .RI "static \fBSoType\fP \fBgetClassTypeId\fP (void)" .br .ti -1c .RI "static int \fBgetClassStackIndex\fP (void)" .br .ti -1c .RI "static void \fBinitElements\fP (void)" .br .ti -1c .RI "static int \fBgetNumStackIndices\fP (void)" .br .ti -1c .RI "static \fBSoType\fP \fBgetIdFromStackIndex\fP (const int \fBstackIndex\fP)" .br .in -1c .SS "Protected Member Functions" .in +1c .ti -1c .RI "\fBSoGLMultiTextureImageElement\fP (void)" .br .ti -1c .RI "virtual \fB~SoGLMultiTextureImageElement\fP ()" .br .ti -1c .RI "virtual SbBool \fBhasTransparency\fP (const int unit=0) const" .br .in -1c Protected Member Functions inherited from \fBSoMultiTextureImageElement\fP .in +1c .ti -1c .RI "virtual \fB~SoMultiTextureImageElement\fP ()" .br .ti -1c .RI "const \fBUnitData\fP & \fBgetUnitData\fP (const int unit) const" .br .ti -1c .RI "int \fBgetNumUnits\fP () const" .br .in -1c Protected Member Functions inherited from \fBSoElement\fP .in +1c .ti -1c .RI "\fBSoElement\fP (void)" .br .ti -1c .RI "void \fBcapture\fP (\fBSoState\fP *const state) const" .br .ti -1c .RI "virtual void \fBcaptureThis\fP (\fBSoState\fP *state) const" .br .ti -1c .RI "void \fBsetTypeId\fP (const \fBSoType\fP \fBtypeId\fP)" .br .ti -1c .RI "void \fBsetStackIndex\fP (const int index)" .br .ti -1c .RI "\fBSoElement\fP * \fBgetNextInStack\fP (void) const" .br .ti -1c .RI "\fBSoElement\fP * \fBgetNextFree\fP (void) const" .br .in -1c .SS "Additional Inherited Members" Public Types inherited from \fBSoMultiTextureImageElement\fP .in +1c .ti -1c .RI "enum \fBModel\fP { \fBBLEND\fP = 0x0be2, \fBMODULATE\fP = 0x2100, \fBDECAL\fP = 0x2101, \fBREPLACE\fP = 0x1E01 }" .br .ti -1c .RI "enum \fBWrap\fP { \fBCLAMP\fP = 0x2900, \fBREPEAT\fP = 0x2901, \fBCLAMP_TO_BORDER\fP = 0x812D }" .br .in -1c Static Protected Member Functions inherited from \fBSoElement\fP .in +1c .ti -1c .RI "static \fBSoElement\fP * \fBgetElement\fP (\fBSoState\fP *const state, const int \fBstackIndex\fP)" .br .ti -1c .RI "static const \fBSoElement\fP * \fBgetConstElement\fP (\fBSoState\fP *const state, const int \fBstackIndex\fP)" .br .ti -1c .RI "static int \fBcreateStackIndex\fP (const \fBSoType\fP id)" .br .in -1c Protected Attributes inherited from \fBSoElement\fP .in +1c .ti -1c .RI "\fBSoType\fP \fBtypeId\fP" .br .ti -1c .RI "int \fBstackIndex\fP" .br .ti -1c .RI "int \fBdepth\fP" .br .in -1c Static Protected Attributes inherited from \fBSoElement\fP .in +1c .ti -1c .RI "static int \fBclassStackIndex\fP" .br .ti -1c .RI "static \fBSoTypeList\fP * \fBstackToType\fP" .br .in -1c .SH "Detailed Description" .PP The \fBSoGLMultiTextureImageElement\fP class is used to control the current GL texture for texture units\&. FIXME: write doc\&. .SH "Constructor & Destructor Documentation" .PP .SS "SoGLMultiTextureImageElement::SoGLMultiTextureImageElement (void )\fR [protected]\fP" Constructor\&. .SS "SoGLMultiTextureImageElement::~SoGLMultiTextureImageElement (void )\fR [protected]\fP, \fR [virtual]\fP" Destructor\&. .SH "Member Function Documentation" .PP .SS "\fBSoType\fP SoGLMultiTextureImageElement::getClassTypeId (void )\fR [static]\fP" This static method returns the \fBSoType\fP object associated with objects of this class\&. .SS "int SoGLMultiTextureImageElement::getClassStackIndex (void )\fR [static]\fP" This static method returns the state stack index for the class\&. .SS "void * SoGLMultiTextureImageElement::createInstance (void )\fR [static]\fP" \fIThis API member is considered internal to the library, as it is not likely to be of interest to the application programmer\&.\fP .br .br Creates a new instance of the class type corresponding to the \fBSoType\fP object\&. .SS "void SoGLMultiTextureImageElement::initClass (void )\fR [static]\fP" Initialize relevant common data for all instances, like the type system\&. .SS "void SoGLMultiTextureImageElement::init (\fBSoState\fP * state)\fR [virtual]\fP" Initializes the element to its default value\&. .PP Reimplemented from \fBSoMultiTextureImageElement\fP\&. .SS "void SoGLMultiTextureImageElement::push (\fBSoState\fP * state)\fR [virtual]\fP" 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 \fBSoState::getElement()\fP or indirectly \fBSoElement::getElement()\fP, and the depth of the current element is less than the state depth\&. .PP Override this method if your element needs to copy data from the previous top of stack\&. The \fBpush()\fP method is called on the new element, and the previous element can be found using \fBSoElement::getNextInStack()\fP\&. .PP Reimplemented from \fBSoMultiTextureImageElement\fP\&. .SS "void SoGLMultiTextureImageElement::pop (\fBSoState\fP * state, const \fBSoElement\fP * prevTopElement)\fR [virtual]\fP" This method is called when the state is popped, and the depth of the element is bigger than the current state depth\&. \fBpop()\fP is called on the new top of stack, and a pointer to the previous top of stack is passed in \fIprevTopElement\fP\&. .PP Override this method if you need to copy some state information from the previous top of stack\&. .PP Reimplemented from \fBSoElement\fP\&. .SS "void SoGLMultiTextureImageElement::set (\fBSoState\fP *const state, \fBSoNode\fP *const node, const int unit, \fBSoGLImage\fP * image, const Model model, const \fBSbColor\fP & blendColor)\fR [static]\fP" Sets the current texture\&. Id \fIdidapply\fP 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\&. .SS "SbBool SoGLMultiTextureImageElement::hasTransparency (\fBSoState\fP * state)\fR [static]\fP" Returns TRUE if any of the images have at least one transparent pixel\&. .PP \fBSince\fP .RS 4 Coin 3\&.1 .RE .PP .SS "SbBool SoGLMultiTextureImageElement::hasTransparency (const int unit = \fR0\fP) const\fR [protected]\fP, \fR [virtual]\fP" Called by \fBcontainsTransparency()\fP\&. Returns \fITRUE\fP if image data has transparency\&. Default method does a very poor job of detecting this, since it returns \fITRUE\fP when the number of components are 2 or .IP "4." 4 Override whenever it is important to know this (SoGLTextureImageElement overrides it to avoid transparency handling where possible)\&. .PP .PP Reimplemented from \fBSoMultiTextureImageElement\fP\&. .SS "int32_t SoGLMultiTextureImageElement::getMaxGLTextureSize (void )\fR [static]\fP" 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)\&. .PP For a better estimate, use SoGLTextureImageElement::isTextureSizeLegal()\&. .PP 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\&. .SH "Author" .PP Generated automatically by Doxygen for Coin from the source code\&.