Creates a new AbstractTexture instance. Automatically assigns a unique texture UID to this texture.
Protected Optional__Protected__Protected__Protected__Protected__Protected Optional__Protected Optional__Protected Optional__Protected__Protected__Protected__Protected__Protected__Protected__Protected__Protected__Protected Optional__Protected__Optional_Collection of tags associated with this object
The unique identifier for the underlying texture resource
The unique identifier for the texture view used as a render target
The unique identifier for the texture view resource
StaticcurrentCurrent maximum object count for UID generation
Static ReadonlyInvalidInvalid object UID constant
Sets the framebuffer object associated with this render target.
The framebuffer object to associate with this texture
Gets the number of layers in the texture array.
The array length (number of layers)
Gets the framebuffer object associated with this render target.
The associated framebuffer object, or undefined if not set
Gets the height of the texture in pixels.
The texture height
Sets the height of the texture in pixels.
The new height value
Gets or creates an HTML canvas element with the texture content. If an image element exists, it will be drawn onto the canvas.
The HTML canvas element containing the texture data
Gets the HTML image element associated with this texture.
The HTML image element or undefined if not available
Checks whether this texture is marked as a dummy (placeholder) texture.
True if the texture is marked as dummy, false otherwise
Checks if the texture is ready for use.
True if the texture is ready, false otherwise
Checks if the texture contains transparent pixels.
True if the texture has transparency, false otherwise
Gets the name of the texture.
The texture name
Sets the name of the texture.
The new texture name
Gets the unique object identifier
The object's UID
Checks if the texture has started loading.
True if loading has started, false otherwise
Gets the unique identifier for this texture.
The unique texture UID
Gets the unique name of this object
The unique name string
Gets the URI/URL of the texture source.
The texture URI or undefined if not set
Gets the width of the texture in pixels.
The texture width
Sets the width of the texture in pixels.
The new width value
InternalCopies tag data from another RnObject instance to this object
The source RnObject to copy tags from
Blits (copies) data from this texture array to a 2D texture. This operation copies the first layer of the array to the target texture.
The target 2D texture to copy data to
Alternative blit implementation from texture array to 2D texture. This version uses a different approach and scales the target to half width.
The target 2D texture to copy data to
Performs a fake blit operation from this texture array to a 2D texture. This is likely a fallback or alternative implementation for specific use cases.
The target 2D texture to copy data to
Changes the render target layer for WebGPU rendering. This method creates a new texture view targeting a specific layer of the array.
The index of the layer to target for rendering
Creates and initializes the 2D texture array with the specified parameters.
Configuration object for texture creation
Number of layers in the texture array
Pixel format of the texture (default: RGBA)
Height of the texture in pixels
Internal format of the texture (default: RGB8)
Mipmap level (default: 0)
Component type of the texture data (default: UnsignedByte)
Width of the texture in pixels
Creates an HTMLCanvasElement containing the texture data read from GPU. This is useful for displaying texture previews when htmlImageElement is not available. Works with both WebGL and WebGPU backends.
Promise resolving to an HTMLCanvasElement with the texture content, or undefined if the texture is not ready or reading fails
Creates a cube texture view as a render target for a specific face and mip level. Currently this method is not implemented (empty body).
Creates an internal canvas context for pixel manipulation operations. Uses existing canvas element if available, otherwise creates a new one.
Destroys all graphics API resources associated with this texture. This should be called when the texture is no longer needed to free GPU memory.
True if resources were successfully destroyed
Downloads the texture pixel data as a PNG image file. This method creates a canvas, draws the texture data to it, and triggers a download of the resulting image.
Generates mipmaps for the texture. This creates lower resolution versions of the texture for improved rendering performance and quality when the texture is viewed at different distances.
Calculates the height of the texture at a specific mip level.
The mip level to calculate height for
The height at the specified mip level (minimum 1 pixel)
Retrieves image data from a rectangular region of the texture. Creates an internal canvas context if one doesn't exist.
The x-coordinate of the top-left corner
The y-coordinate of the top-left corner
The width of the region
The height of the region
ImageData object containing the pixel data
Gets a single pixel value at the specified coordinates as a specific type. Supports various color and vector types for different use cases.
The x-coordinate of the pixel
The y-coordinate of the pixel
The class type to return the pixel as (ColorRgb, ColorRgba, Vector3, etc.)
An instance of the specified type containing the pixel data
Gets the pixel data at the specified coordinates as a raw Uint8ClampedArray. This provides direct access to the RGBA values as 8-bit integers.
The x-coordinate of the pixel
The y-coordinate of the pixel
A Uint8ClampedArray containing the RGBA pixel data
Gets the pixel value at a specific coordinate in the texture. The coordinate system has its origin at the bottom-left corner.
Horizontal pixel position (0 is left)
Vertical pixel position (0 is bottom)
OptionalargByteArray: Uint8Array<ArrayBufferLike>Optional pre-fetched pixel data array. If not provided, data will be fetched from GPU
Promise that resolves to a Vector4 containing the RGBA pixel values
Retrieves a complete tag object (name and value) for the specified tag name
The name of the tag to retrieve
A Tag object containing the name and value
Retrieves the value associated with a specific tag name
The name of the tag whose value to retrieve
The tag value, or undefined if the tag doesn't exist
Converts the texture data to a TextureDataFloat object with the specified number of channels. This is useful for processing texture data in floating-point format.
The number of channels to include in the output (1-4)
A TextureDataFloat object containing the converted pixel data
Retrieves the pixel data from the texture as a byte array. This is an asynchronous operation that reads back data from the GPU.
Promise that resolves to a Uint8Array containing the pixel data
Reads the texture data from GPU and returns it as a Uint8Array. This method works with both WebGL and WebGPU backends. Useful for textures that don't have an associated htmlImageElement (e.g., dummy textures).
Promise resolving to the pixel data as a Uint8Array in RGBA format, or undefined if the texture is not ready or reading fails
Calculates the width of the texture at a specific mip level.
The mip level to calculate width for
The width at the specified mip level (minimum 1 pixel)
Checks whether this object has a tag with the specified name
The name of the tag to check for
True if the tag exists (value is not null/undefined), false otherwise
Marks this texture as a dummy (placeholder) texture.
Whether to mark the texture as dummy (default: true)
Checks if this object has a tag with the specified name and value
The tag name to match
The tag value to match
True if the object has a matching tag, false otherwise
Checks if this object has all the specified tags with exactly matching values
Object containing tag names as keys and expected values
True if all specified tags exist with matching values, false otherwise
Checks if the object's combined tag string contains all the provided search strings. This allows for flexible searching within tag names and values.
Array of strings that must all be present in the combined tag string
True if all strings are found in the combined tag string, false otherwise
Removes a tag from this object
The name of the tag to remove
Resizes the texture array to new dimensions. This destroys the existing resources and recreates them with the new size.
New width in pixels
New height in pixels
Sets a pixel value at the specified coordinates using a color or vector object. Automatically determines the number of components based on the input type.
The x-coordinate of the pixel
The y-coordinate of the pixel
The color or vector value to set
Sets a specific channel value for a pixel at the given coordinates. Useful for modifying individual color channels (R, G, B, A).
The x-coordinate of the pixel
The y-coordinate of the pixel
The channel index (0=R, 1=G, 2=B, 3=A)
The new value for the channel (0-255)
Attempts to set a tag on this object. If the tag already exists, it will be replaced.
The tag object containing the name and value to set
True if the tag was successfully set, false if the tag name contains invalid characters
Attempts to set a unique name for this object
The desired unique name
If true, appends UID to make name unique when conflicts occur; if false, fails on conflict
True if the name was successfully set, false if there was a conflict and toAddNameIfConflict was false
Unregisters this object from all tracking collections. Should be called when the object is being destroyed.
Validates that a tag string contains only allowed characters (alphanumeric and underscore)
The string to validate
True if the string contains only valid characters, false if it contains invalid characters
Static_InternalResets all static object tracking data. Used primarily for testing.
StaticgetRetrieves an RnObject instance by its unique identifier
The unique identifier of the object to retrieve
The RnObject instance or undefined if not found or garbage collected
StaticgetRetrieves an RnObject instance by its unique name
The unique name of the object to retrieve
The RnObject instance or undefined if not found or garbage collected
StaticsearchSearches for the first object that has a specific tag with the given value
The tag name to search for
The tag value to match
WeakRef to the first matching object, or undefined if not found
A 2D texture array that can be used as a render target. This class extends AbstractTexture and implements IRenderable to provide functionality for creating and managing 2D texture arrays that can be rendered to in graphics pipelines.