|
JOGL v2.6.0-rc-20250706
JOGL, High-Performance Graphics Binding for Java (public API).
|
Represents an OpenGL texture object. More...
Public Member Functions | |
| String | toString () |
| Texture (final GL gl, final TextureData data) throws GLException | |
| Texture (final int target) | |
| Constructor for use when creating e.g. More... | |
| Texture (final int textureID, final boolean ownsTextureID, final int target, final int texWidth, final int texHeight, final int imgWidth, final int imgHeight, final boolean mustFlipVertically) | |
| Constructor to wrap an OpenGL texture ID from an external library and allows some of the base methods from the Texture class, such as binding and querying of texture coordinates, to be used with it. More... | |
| void | set (final int texWidth, final int texHeight, final int imgWidth, final int imgHeight) |
| Pending setup or update of texture and image dimensions. More... | |
| void | enable (final GL gl) throws GLException |
| Enables this texture's target (e.g., GL_TEXTURE_2D) in the given GL context's state. More... | |
| void | disable (final GL gl) throws GLException |
| Disables this texture's target (e.g., GL_TEXTURE_2D) in the given GL state. More... | |
| void | bind (final GL gl) throws GLException |
| Binds this texture to the given GL context. More... | |
| void | destroy (final GL gl) throws GLException |
Destroys and nulls the underlying native texture used by this Texture instance if owned, otherwise just nulls the underlying native texture. More... | |
| int | getTarget () |
| Returns the OpenGL "target" of this texture. More... | |
| int | getImageTarget () |
| Returns the image OpenGL "target" of this texture, or its sub-components if cubemap. More... | |
| int | getWidth () |
| Returns the width of the allocated OpenGL texture in pixels. More... | |
| int | getHeight () |
| Returns the height of the allocated OpenGL texture in pixels. More... | |
| int | getImageWidth () |
| Returns the width of the image contained within this texture. More... | |
| int | getImageHeight () |
| Returns the height of the image contained within this texture. More... | |
| float | getAspectRatio () |
| Returns the original aspect ratio of the image, defined as (image width) / (image height), before any scaling that might have occurred as a result of using the GLU mipmap routines. More... | |
| TextureCoords | getImageTexCoords () |
| Returns the set of texture coordinates corresponding to the entire image. More... | |
| TextureCoords | getSubImageTexCoords (final int x1, final int y1, final int x2, final int y2) |
| Returns the set of texture coordinates corresponding to the specified sub-image. More... | |
| void | updateImage (final GL gl, final TextureData data) throws GLException |
| Updates the entire content area incl. More... | |
| boolean | getMustFlipVertically () |
| Indicates whether this texture's texture coordinates must be flipped vertically in order to properly display the texture. More... | |
| void | setMustFlipVertically (final boolean v) |
| Change whether the TextureData requires a vertical flip of the texture coords. More... | |
| void | updateImage (final GL gl, final TextureData data, final int targetOverride) throws GLException |
| Updates the content area incl. More... | |
| void | updateSubImage (final GL gl, final TextureData data, final int mipmapLevel, final int x, final int y) throws GLException |
| Updates a subregion of the content area of this texture using the given data. More... | |
| void | updateSubImage (final GL gl, final TextureData data, final int mipmapLevel, final int dstx, final int dsty, final int srcx, final int srcy, final int width, final int height) throws GLException |
| Updates a subregion of the content area of this texture using the specified sub-region of the given data. More... | |
| void | setTexParameterf (final GL gl, final int parameterName, final float value) |
| Sets the OpenGL floating-point texture parameter for the texture's target. More... | |
| void | setTexParameterfv (final GL gl, final int parameterName, final FloatBuffer params) |
| Sets the OpenGL multi-floating-point texture parameter for the texture's target. More... | |
| void | setTexParameterfv (final GL gl, final int parameterName, final float[] params, final int params_offset) |
| Sets the OpenGL multi-floating-point texture parameter for the texture's target. More... | |
| void | setTexParameteri (final GL gl, final int parameterName, final int value) |
| Sets the OpenGL integer texture parameter for the texture's target. More... | |
| void | setTexParameteriv (final GL gl, final int parameterName, final IntBuffer params) |
| Sets the OpenGL multi-integer texture parameter for the texture's target. More... | |
| void | setTexParameteriv (final GL gl, final int parameterName, final int[] params, final int params_offset) |
| Sets the OpenGL multi-integer texture parameter for the texture's target. More... | |
| int | getTextureObject (final GL gl) |
| Returns the underlying OpenGL texture object for this texture and generates it if not done yet. More... | |
| int | getTextureObject () |
Returns the underlying OpenGL texture object for this texture, maybe 0 if not yet generated. More... | |
| final boolean | ownsTexture () |
Returns whether getTextureObject() is owned by this Texture instance. More... | |
| int | getEstimatedMemorySize () |
| Returns an estimate of the amount of texture memory in bytes this Texture consumes. More... | |
| boolean | isUsingAutoMipmapGeneration () |
| Indicates whether this Texture is using automatic mipmap generation (via the OpenGL texture parameter GL_GENERATE_MIPMAP). More... | |
Represents an OpenGL texture object.
Contains convenience routines for enabling/disabling OpenGL texture state, binding this texture, and computing texture coordinates for both the entire image as well as a sub-image.
Due to many confusions w/ texture usage, following list described the order and semantics of texture unit selection, binding and enabling.
gl.glActiveTexture(GL.GL_TEXTURE0 + textureUnit), 0 is default. textureId -> active textureUnit's textureTarget via gl.glBindTexture(textureTarget, textureId) textureUnit's textureTarget via glEnable(textureTarget). textureUnit in your shader program, enable shader program. Non-power-of-two restrictions
When creating an OpenGL texture object, the Texture class will attempt to use non-power-of-two textures (NPOT) if available, see GL#isNPOTTextureAvailable(). Further more, GL_ARB_texture_rectangle (RECT) will be attempted on OSX w/ ATI drivers. If NPOT is not available or RECT not chosen, the Texture class will simply upload a non-pow2-sized image into a standard pow2-sized texture (without any special scaling). Since the choice of extension (or whether one is used at all) depends on the user's machine configuration, developers are recommended to use getImageTexCoords and getSubImageTexCoords, as those methods will calculate the appropriate texture coordinates for the situation.
One caveat in this approach is that certain texture wrap modes (e.g. GL_REPEAT) are not legal when the GL_ARB_texture_rectangle extension is in use. Another issue to be aware of is that in the default pow2 scenario, if the original image does not have pow2 dimensions, then wrapping may not work as one might expect since the image does not extend to the edges of the pow2 texture. If texture wrapping is important, it is recommended to use only pow2-sized images with the Texture class.
Performance Tips
For best performance, try to avoid calling enable / bind / disable any more than necessary. For example, applications using many Texture objects in the same scene may want to reduce the number of calls to both enable and disable. To do this it is necessary to call getTarget to make sure the OpenGL texture target is the same for all of the Texture objects in use; non-power-of-two textures using the GL_ARB_texture_rectangle extension use a different target than power-of-two textures using the GL_TEXTURE_2D target. Note that when switching between textures it is necessary to call bind, but when drawing many triangles all using the same texture, for best performance only one call to bind should be made. User may also utilize multiple texture units, see order of texture commands above.
Alpha premultiplication and blending
Disclaimer: Consider performing alpha premultiplication in shader code, if really desired! Otherwise use RGBA.
The Texture class does not convert RGBA image data into premultiplied data when storing it into an OpenGL texture.
The mathematically correct way to perform blending in OpenGL with the SrcOver "source over destination" mode, or any other Porter-Duff rule, is to use premultiplied color components, which means the R/G/ B color components must have been multiplied by the alpha value. If using premultiplied color components it is important to use the correct blending function; for example, the SrcOver rule is expressed as:
gl.glBlendFunc(GL.GL_ONE, GL.GL_ONE_MINUS_SRC_ALPHA);
Also, when using a texture function like GL_MODULATE where the current color plays a role, it is important to remember to make sure that the color is specified in a premultiplied form, for example:
float a = ...;
float r = r * a;
float g = g * a;
float b = b * a;
gl.glColor4f(r, g, b, a);
For reference, here is a list of the Porter-Duff compositing rules and the associated OpenGL blend functions (source and destination factors) to use in the face of premultiplied alpha:
| Rule | Source | Dest |
| Clear | GL_ZERO | GL_ZERO |
| Src | GL_ONE | GL_ZERO |
| SrcOver | GL_ONE | GL_ONE_MINUS_SRC_ALPHA |
| DstOver | GL_ONE_MINUS_DST_ALPHA | GL_ONE |
| SrcIn | GL_DST_ALPHA | GL_ZERO |
| DstIn | GL_ZERO | GL_SRC_ALPHA |
| SrcOut | GL_ONE_MINUS_DST_ALPHA | GL_ZERO |
| DstOut | GL_ZERO | GL_ONE_MINUS_SRC_ALPHA |
| Dst | GL_ZERO | GL_ONE |
| SrcAtop | GL_DST_ALPHA | GL_ONE_MINUS_SRC_ALPHA |
| DstAtop | GL_ONE_MINUS_DST_ALPHA | GL_SRC_ALPHA |
| AlphaXor | GL_ONE_MINUS_DST_ALPHA | GL_ONE_MINUS_SRC_ALPHA |
Definition at line 173 of file Texture.java.
| com.jogamp.opengl.util.texture.Texture.Texture | ( | final GL | gl, |
| final TextureData | data | ||
| ) | throws GLException |
| com.jogamp.opengl.util.texture.Texture.Texture | ( | final int | target | ) |
Constructor for use when creating e.g.
cube maps, where there is no initial texture data
| target | the OpenGL texture target, eg GL.GL_TEXTURE_2D, GL2.GL_TEXTURE_RECTANGLE |
Definition at line 235 of file Texture.java.
| com.jogamp.opengl.util.texture.Texture.Texture | ( | final int | textureID, |
| final boolean | ownsTextureID, | ||
| final int | target, | ||
| final int | texWidth, | ||
| final int | texHeight, | ||
| final int | imgWidth, | ||
| final int | imgHeight, | ||
| final boolean | mustFlipVertically | ||
| ) |
Constructor to wrap an OpenGL texture ID from an external library and allows some of the base methods from the Texture class, such as binding and querying of texture coordinates, to be used with it.
Attempts to update such textures' contents will yield undefined results.
| textureID | the valid OpenGL texture object to wrap |
| ownsTextureID | pass true if this Texture instance takes ownership of textureID texture and deletes the texture at destroy(GL). Otherwise, if false, textureID texture will not be deleted at destroy(GL). |
| target | the OpenGL texture target, eg GL.GL_TEXTURE_2D, GL2.GL_TEXTURE_RECTANGLE |
| texWidth | the width of the texture in pixels |
| texHeight | the height of the texture in pixels |
| imgWidth | the width of the image within the texture in pixels (if the content is a sub-rectangle in the upper left corner); otherwise, pass in texWidth |
| imgHeight | the height of the image within the texture in pixels (if the content is a sub-rectangle in the upper left corner); otherwise, pass in texHeight |
| mustFlipVertically | indicates whether the texture coordinates must be flipped vertically in order to properly display the texture |
Definition at line 268 of file Texture.java.
| void com.jogamp.opengl.util.texture.Texture.bind | ( | final GL | gl | ) | throws GLException |
Binds this texture to the given GL context.
This method is a shorthand equivalent of the following OpenGL code:
gl.glBindTexture(texture.getTarget(), texture.getTextureObject());
See the performance tips above for hints on how to maximize performance when using many Texture objects.
| gl | the current GL context |
| GLException | if no OpenGL context was current or if any OpenGL-related errors occurred |
Definition at line 377 of file Texture.java.
| void com.jogamp.opengl.util.texture.Texture.destroy | ( | final GL | gl | ) | throws GLException |
Destroys and nulls the underlying native texture used by this Texture instance if owned, otherwise just nulls the underlying native texture.
| GLException | if any OpenGL-related errors occurred |
Definition at line 388 of file Texture.java.
| void com.jogamp.opengl.util.texture.Texture.disable | ( | final GL | gl | ) | throws GLException |
Disables this texture's target (e.g., GL_TEXTURE_2D) in the given GL state.
This method is a shorthand equivalent of the following OpenGL code:
gl.glDisable(texture.getTarget());
<p<blockquote>
Call is ignored if the GL object's context is using a core profile, see GL#isGLcore(), or if getTarget() is GLES2#GL_TEXTURE_EXTERNAL_OES.
See the performance tips above for hints on how to maximize performance when using many Texture objects.
| gl | the current GL object |
| GLException | if no OpenGL context was current or if any OpenGL-related errors occurred |
Definition at line 357 of file Texture.java.
| void com.jogamp.opengl.util.texture.Texture.enable | ( | final GL | gl | ) | throws GLException |
Enables this texture's target (e.g., GL_TEXTURE_2D) in the given GL context's state.
This method is a shorthand equivalent of the following OpenGL code:
gl.glEnable(texture.getTarget());
<p<blockquote>
Call is ignored if the GL object's context is using a core profile, see GL#isGLcore(), or if getTarget() is GLES2#GL_TEXTURE_EXTERNAL_OES.
See the performance tips above for hints on how to maximize performance when using many Texture objects.
| gl | the current GL object |
| GLException | if no OpenGL context was current or if any OpenGL-related errors occurred |
Definition at line 330 of file Texture.java.
| float com.jogamp.opengl.util.texture.Texture.getAspectRatio | ( | ) |
Returns the original aspect ratio of the image, defined as (image width) / (image height), before any scaling that might have occurred as a result of using the GLU mipmap routines.
Definition at line 468 of file Texture.java.
| int com.jogamp.opengl.util.texture.Texture.getEstimatedMemorySize | ( | ) |
Returns an estimate of the amount of texture memory in bytes this Texture consumes.
It should only be treated as an estimate; most applications should not need to query this but instead let the OpenGL implementation page textures in and out as necessary.
Definition at line 992 of file Texture.java.
| int com.jogamp.opengl.util.texture.Texture.getHeight | ( | ) |
Returns the height of the allocated OpenGL texture in pixels.
Note that the texture height will be greater than or equal to the height of the image contained within.
Definition at line 431 of file Texture.java.
| int com.jogamp.opengl.util.texture.Texture.getImageHeight | ( | ) |
Returns the height of the image contained within this texture.
Note that for non-power-of-two textures in particular this may not be equal to the result of getHeight. It is recommended that applications call getImageTexCoords and getSubImageTexCoords rather than using this API directly.
Definition at line 459 of file Texture.java.
| int com.jogamp.opengl.util.texture.Texture.getImageTarget | ( | ) |
Returns the image OpenGL "target" of this texture, or its sub-components if cubemap.
Definition at line 409 of file Texture.java.
| TextureCoords com.jogamp.opengl.util.texture.Texture.getImageTexCoords | ( | ) |
Returns the set of texture coordinates corresponding to the entire image.
If the TextureData indicated that the texture coordinates must be flipped vertically, the returned TextureCoords will take that into account.
Definition at line 480 of file Texture.java.
| int com.jogamp.opengl.util.texture.Texture.getImageWidth | ( | ) |
Returns the width of the image contained within this texture.
Note that for non-power-of-two textures in particular this may not be equal to the result of getWidth. It is recommended that applications call getImageTexCoords and getSubImageTexCoords rather than using this API directly.
Definition at line 445 of file Texture.java.
| boolean com.jogamp.opengl.util.texture.Texture.getMustFlipVertically | ( | ) |
Indicates whether this texture's texture coordinates must be flipped vertically in order to properly display the texture.
This is handled automatically by getImageTexCoords and getSubImageTexCoords, but applications may generate or otherwise produce texture coordinates which must be corrected.
Definition at line 536 of file Texture.java.
| TextureCoords com.jogamp.opengl.util.texture.Texture.getSubImageTexCoords | ( | final int | x1, |
| final int | y1, | ||
| final int | x2, | ||
| final int | y2 | ||
| ) |
Returns the set of texture coordinates corresponding to the specified sub-image.
The (x1, y1) and (x2, y2) points are specified in terms of pixels starting from the lower-left of the image. (x1, y1) should specify the lower-left corner of the sub-image and (x2, y2) the upper-right corner of the sub-image. If the TextureData indicated that the texture coordinates must be flipped vertically, the returned TextureCoords will take that into account; this should not be handled by the end user in the specification of the y1 and y2 coordinates.
Definition at line 497 of file Texture.java.
| int com.jogamp.opengl.util.texture.Texture.getTarget | ( | ) |
Returns the OpenGL "target" of this texture.
Definition at line 400 of file Texture.java.
| int com.jogamp.opengl.util.texture.Texture.getTextureObject | ( | ) |
Returns the underlying OpenGL texture object for this texture, maybe 0 if not yet generated.
Most applications will not need to access this, since it is handled automatically by the bind(GL) and destroy(GL) APIs.
Definition at line 982 of file Texture.java.
| int com.jogamp.opengl.util.texture.Texture.getTextureObject | ( | final GL | gl | ) |
Returns the underlying OpenGL texture object for this texture and generates it if not done yet.
Most applications will not need to access this, since it is handled automatically by the bind(GL) and destroy(GL) APIs.
| gl | required to be valid and current in case the texture object has not been generated yet, otherwise it may be null. |
Definition at line 968 of file Texture.java.
| int com.jogamp.opengl.util.texture.Texture.getWidth | ( | ) |
Returns the width of the allocated OpenGL texture in pixels.
Note that the texture width will be greater than or equal to the width of the image contained within.
Definition at line 420 of file Texture.java.
| boolean com.jogamp.opengl.util.texture.Texture.isUsingAutoMipmapGeneration | ( | ) |
Indicates whether this Texture is using automatic mipmap generation (via the OpenGL texture parameter GL_GENERATE_MIPMAP).
This will automatically be used when mipmapping is requested via the TextureData and either OpenGL 1.4 or the GL_SGIS_generate_mipmap extension is available. If so, updates to the base image (mipmap level 0) will automatically propagate down to the lower mipmap levels. Manual updates of the mipmap data at these lower levels will be ignored.
Definition at line 1005 of file Texture.java.
| final boolean com.jogamp.opengl.util.texture.Texture.ownsTexture | ( | ) |
Returns whether getTextureObject() is owned by this Texture instance.
Definition at line 985 of file Texture.java.
| void com.jogamp.opengl.util.texture.Texture.set | ( | final int | texWidth, |
| final int | texHeight, | ||
| final int | imgWidth, | ||
| final int | imgHeight | ||
| ) |
Pending setup or update of texture and image dimensions.
| texWidth | the width of the texture in pixels |
| texHeight | the height of the texture in pixels |
| imgWidth | the width of the image within the texture in pixels (if the content is a sub-rectangle in the upper left corner); otherwise, pass in texWidth |
| imgHeight | the height of the image within the texture in pixels (if the content is a sub-rectangle in the upper left corner); otherwise, pass in texHeight |
Definition at line 299 of file Texture.java.
| void com.jogamp.opengl.util.texture.Texture.setMustFlipVertically | ( | final boolean | v | ) |
Change whether the TextureData requires a vertical flip of the texture coords.
No-op if no change, otherwise generates new TextureCoords.
Definition at line 547 of file Texture.java.
| void com.jogamp.opengl.util.texture.Texture.setTexParameterf | ( | final GL | gl, |
| final int | parameterName, | ||
| final float | value | ||
| ) |
Sets the OpenGL floating-point texture parameter for the texture's target.
This gives control over parameters such as GL_TEXTURE_MAX_ANISOTROPY_EXT. Causes this texture to be bound to the current texture state.
| GLException | if no OpenGL context was current or if any OpenGL-related errors occurred |
Definition at line 883 of file Texture.java.
| void com.jogamp.opengl.util.texture.Texture.setTexParameterfv | ( | final GL | gl, |
| final int | parameterName, | ||
| final float[] | params, | ||
| final int | params_offset | ||
| ) |
Sets the OpenGL multi-floating-point texture parameter for the texture's target.
Causes this texture to be bound to the current texture state.
| GLException | if any OpenGL-related errors occurred |
Definition at line 909 of file Texture.java.
| void com.jogamp.opengl.util.texture.Texture.setTexParameterfv | ( | final GL | gl, |
| final int | parameterName, | ||
| final FloatBuffer | params | ||
| ) |
Sets the OpenGL multi-floating-point texture parameter for the texture's target.
Causes this texture to be bound to the current texture state.
| GLException | if any OpenGL-related errors occurred |
Definition at line 896 of file Texture.java.
| void com.jogamp.opengl.util.texture.Texture.setTexParameteri | ( | final GL | gl, |
| final int | parameterName, | ||
| final int | value | ||
| ) |
Sets the OpenGL integer texture parameter for the texture's target.
This gives control over parameters such as GL_TEXTURE_WRAP_S and GL_TEXTURE_WRAP_T, which by default are set to GL_CLAMP_TO_EDGE if OpenGL 1.2 is supported on the current platform and GL_CLAMP if not. Causes this texture to be bound to the current texture state.
| GLException | if any OpenGL-related errors occurred |
Definition at line 925 of file Texture.java.
| void com.jogamp.opengl.util.texture.Texture.setTexParameteriv | ( | final GL | gl, |
| final int | parameterName, | ||
| final int[] | params, | ||
| final int | params_offset | ||
| ) |
Sets the OpenGL multi-integer texture parameter for the texture's target.
Causes this texture to be bound to the current texture state.
| GLException | if any OpenGL-related errors occurred |
Definition at line 951 of file Texture.java.
| void com.jogamp.opengl.util.texture.Texture.setTexParameteriv | ( | final GL | gl, |
| final int | parameterName, | ||
| final IntBuffer | params | ||
| ) |
Sets the OpenGL multi-integer texture parameter for the texture's target.
Causes this texture to be bound to the current texture state.
| GLException | if any OpenGL-related errors occurred |
Definition at line 938 of file Texture.java.
| String com.jogamp.opengl.util.texture.Texture.toString | ( | ) |
Definition at line 204 of file Texture.java.
| void com.jogamp.opengl.util.texture.Texture.updateImage | ( | final GL | gl, |
| final TextureData | data | ||
| ) | throws GLException |
Updates the entire content area incl.
TextureCoords of this texture using the data in the given image.
| GLException | if any OpenGL-related errors occurred |
Definition at line 524 of file Texture.java.
| void com.jogamp.opengl.util.texture.Texture.updateImage | ( | final GL | gl, |
| final TextureData | data, | ||
| final int | targetOverride | ||
| ) | throws GLException |
Updates the content area incl.
TextureCoords of the specified target of this texture using the data in the given image. In general this is intended for construction of cube maps.
| GLException | if any OpenGL-related errors occurred |
Definition at line 561 of file Texture.java.
| void com.jogamp.opengl.util.texture.Texture.updateSubImage | ( | final GL | gl, |
| final TextureData | data, | ||
| final int | mipmapLevel, | ||
| final int | dstx, | ||
| final int | dsty, | ||
| final int | srcx, | ||
| final int | srcy, | ||
| final int | width, | ||
| final int | height | ||
| ) | throws GLException |
Updates a subregion of the content area of this texture using the specified sub-region of the given data.
If automatic mipmap generation is in use (see isUsingAutoMipmapGeneration), updates to the base (level 0) mipmap will cause the lower-level mipmaps to be regenerated, and updates to other mipmap levels will be ignored. Otherwise, if automatic mipmap generation is not in use, only updates the specified mipmap level and does not re-generate mipmaps if they were originally produced or loaded. This method is only supported for uncompressed TextureData sources.
| data | the image data to be uploaded to this texture |
| mipmapLevel | the mipmap level of the texture to set. If this is non-zero and the TextureData contains mipmap data, the appropriate mipmap level will be selected. |
| dstx | the x offset (in pixels) relative to the lower-left corner of this texture where the update will be applied |
| dsty | the y offset (in pixels) relative to the lower-left corner of this texture where the update will be applied |
| srcx | the x offset (in pixels) relative to the lower-left corner of the supplied TextureData from which to fetch the update rectangle |
| srcy | the y offset (in pixels) relative to the lower-left corner of the supplied TextureData from which to fetch the update rectangle |
| width | the width (in pixels) of the rectangle to be updated |
| height | the height (in pixels) of the rectangle to be updated |
| GLException | if no OpenGL context was current or if any OpenGL-related errors occurred |
Definition at line 858 of file Texture.java.
| void com.jogamp.opengl.util.texture.Texture.updateSubImage | ( | final GL | gl, |
| final TextureData | data, | ||
| final int | mipmapLevel, | ||
| final int | x, | ||
| final int | y | ||
| ) | throws GLException |
Updates a subregion of the content area of this texture using the given data.
If automatic mipmap generation is in use (see isUsingAutoMipmapGeneration), updates to the base (level 0) mipmap will cause the lower-level mipmaps to be regenerated, and updates to other mipmap levels will be ignored. Otherwise, if automatic mipmap generation is not in use, only updates the specified mipmap level and does not re-generate mipmaps if they were originally produced or loaded.
| data | the image data to be uploaded to this texture |
| mipmapLevel | the mipmap level of the texture to set. If this is non-zero and the TextureData contains mipmap data, the appropriate mipmap level will be selected. |
| x | the x offset (in pixels) relative to the lower-left corner of this texture |
| y | the y offset (in pixels) relative to the lower-left corner of this texture |
| GLException | if any OpenGL-related errors occurred |
Definition at line 818 of file Texture.java.