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
StaticcurrentCurrent maximum object count for UID generation
Static ReadonlyInvalidInvalid object UID constant
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
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 an internal canvas context for pixel manipulation operations. Uses existing canvas element if available, otherwise creates a new one.
Generates a texture from a video file URI. Creates a video element, loads the specified video, and sets up texture generation. Supports both automatic playback and manual playback via a play button.
URI of the video file to load
Configuration options for texture generation
Optional_level?: numberOptionalformat?: EnumIOPixel format (default: RGBA)
OptionalgenerateMipmap?: booleanWhether to generate mipmaps (default: false)
OptionalinternalFormat?: TextureFormatEnumInternal pixel format (default: RGBA8)
OptionalmutedAutoPlay?: booleanWhether to enable muted autoplay (default: true)
OptionalplayButtonDomElement?: undefinedOptional button element to trigger manual playback
Optionaltype?: ComponentTypeClass<"UNSIGNED_BYTE">Component type (default: UnsignedByte)
Promise that resolves when the texture is ready
Generates a texture from an existing HTMLVideoElement. Sets up the video element for playback and creates the corresponding WebGL texture.
The HTMLVideoElement to use as texture source
Configuration options for texture generation
Optional_level?: numberOptionalformat?: EnumIOPixel format (default: RGBA)
OptionalgenerateMipmap?: booleanWhether to generate mipmaps (default: false)
OptionalinternalFormat?: TextureFormatEnumInternal pixel format (default: RGBA8)
OptionalmutedAutoPlay?: booleanWhether to enable muted autoplay (default: true)
Optionaltype?: ComponentTypeClass<"UNSIGNED_BYTE">Component type (default: UnsignedByte)
Retrieves the pixel data of the current video frame. Useful for image processing or analysis of video content.
A tuple containing [pixelData, width, height] where pixelData is a Uint8Array of RGBA values, or [undefined, width, height] if texture is not ready
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
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
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
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.
Updates the texture with the current video frame. Should be called regularly (e.g., in a render loop) to keep the texture synchronized with the video playback.
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 texture class that handles video content as texture data. Extends AbstractTexture to provide video-specific functionality including video loading, playback control, and real-time texture updates.
Example