---
name: "SoGLTextureImageElement"
section: "3"
platform: "linux"
package: "libcoin60-doc"
version: "3.1.3-2.2"
release: "Debian 7 (Wheezy)"
platforms: ["linux"]
url: "https://new.carta.tech/SoGLTextureImageElement"
---

# SoGLTextureImageElement(3)

The SoGLTextureImageElement is used to control the current GL texture. This is a lazy element. It is evaluated in SoShape::shouldGLRender().

## NAME

SoGLTextureImageElement -

The **SoGLTextureImageElement** is used to control the current GL texture.

This is a lazy element. It is evaluated in **SoShape::shouldGLRender()**.

## SYNOPSIS

`#include <Inventor/elements/SoGLTextureImageElement.h>`

Inherits **SoTextureImageElement**.

### Public Member Functions

virtual void **init** (**SoState** \*state)\
 *FIXME: write doc.*  virtual void **push** (**SoState** \*state)\
 virtual void **pop** (**SoState** \*state, const **SoElement** \*prevTopElement)\
 virtual SbBool **isTextureSizeLegal** (int xsize, int ysize, int zsize, int bytespertexel)\

### 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, **SoGLImage** \*image, const **Model** **model**, const **SbColor** &**blendColor**)\
 static **SoGLImage** \* **get** (**SoState** \*state, **Model** &**model**, **SbColor** &blendcolor)\
 static int32\_t **getMaxGLTextureSize** (void)\
 static SbBool **hasTransparency** (**SoState** \*state)\

### Protected Member Functions

virtual **~SoGLTextureImageElement** ()\
 virtual SbBool **hasTransparency** (void) const \

### Additional Inherited Members

## Detailed Description

The **SoGLTextureImageElement** is used to control the current GL texture.

This is a lazy element. It is evaluated in **SoShape::shouldGLRender()**.

## Constructor & Destructor Documentation

### SoGLTextureImageElement::~SoGLTextureImageElement (void)` [protected]`, ` [virtual]`

The destructor.

## Member Function Documentation

### SoType SoGLTextureImageElement::getClassTypeId (void)` [static]`

This static method returns the class type.

Reimplemented from **SoTextureImageElement**.

### int SoGLTextureImageElement::getClassStackIndex (void)` [static]`

This static method returns the state stack index for the class.

Reimplemented from **SoTextureImageElement**.

### void \* SoGLTextureImageElement::createInstance (void)` [static]`

*This API member is considered internal to the library, as it is not likely to be of interest to the application programmer.*

Reimplemented from **SoTextureImageElement**.

### void SoGLTextureImageElement::initClass (void)` [static]`

This static method initializes static data in the **SoGLTextureImageElement** class.

Reimplemented from **SoTextureImageElement**.

### void SoGLTextureImageElement::push (SoState \*state)` [virtual]`

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 **SoElement**.

### void SoGLTextureImageElement::pop (SoState \*state, const SoElement \*prevTopElement)` [virtual]`

This method is callled 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.

Reimplemented from **SoElement**.

### void SoGLTextureImageElement::set (SoState \*conststateptr, SoNode \*constnode, SoGLImage \*image, const Modelmodel, const SbColor &blendColor)` [static]`

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.

### int32\_t SoGLTextureImageElement::getMaxGLTextureSize (void)` [static]`

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).

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

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.

### SbBool SoGLTextureImageElement::isTextureSizeLegal (intxsize, intysize, intzsize, intbytespertexel)` [virtual]`

Returns true if the texture with the given dimensions is supported by the current OpenGL context.

If zsize==0, 2D texturing is assumed, else 3D texturing is assumed.

This function uses OpenGL proxy textures and will fall back to what you get from **SoGLTextureImageElement::getMaxGLTextureSize()** if proxy textures are not supported (i.e. OpenGL version \< 1.1 and GL\_EXT\_texture not available). In the 3D case, 3D textures need to be supported (OpenGL \>= 1.2 or GL\_EXT\_texture3D).

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.

This function is an extension for Coin, and it is not available in the original SGI Open Inventor v2.1 API.

**Since:**

Coin 2.0

### SbBool SoGLTextureImageElement::hasTransparency (SoState \*state)` [static]`

Return TRUE if at least one pixel in the current texture image is transparent.

**Since:**

Coin 3.1

### SbBool SoGLTextureImageElement::hasTransparency (void) const` [protected]`, ` [virtual]`

Called by **containsTransparency()**. Returns *TRUE* if image data has transparency. 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 (**SoGLTextureImageElement** overrides it to avoid transparency handling where possible).

Reimplemented from **SoTextureImageElement**.

## Author

Generated automatically by Doxygen for Coin from the source code.
