import { MagnificationTextureFilter, Mapping, MinificationTextureFilter, PixelFormat, TextureDataType, Wrapping, } from "../constants.js"; import { OffscreenCanvas, Texture } from "./Texture.js"; /** * Creates a texture from a {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/canvas | canvas element}. * @remarks * This is almost the same as the base {@link Texture | Texture} class, * except that it sets {@link Texture.needsUpdate | needsUpdate} to `true` immediately. * @see {@link THREE.Texture | Texture} * @see {@link https://threejs.org/docs/index.html#api/en/textures/CanvasTexture | Official Documentation} * @see {@link https://github.com/mrdoob/three.js/blob/master/src/textures/CanvasTexture.js | Source} */ export class CanvasTexture extends Texture { /** * This creates a new {@link THREE.CanvasTexture | CanvasTexture} object. * @param canvas The HTML canvas element from which to load the texture. * @param mapping See {@link Texture.mapping | .mapping}. Default {@link THREE.Texture.DEFAULT_MAPPING} * @param wrapS See {@link Texture.wrapS | .wrapS}. Default {@link THREE.ClampToEdgeWrapping} * @param wrapT See {@link Texture.wrapT | .wrapT}. Default {@link THREE.ClampToEdgeWrapping} * @param magFilter See {@link Texture.magFilter | .magFilter}. Default {@link THREE.LinearFilter} * @param minFilter See {@link Texture.minFilter | .minFilter}. Default {@link THREE.LinearMipmapLinearFilter} * @param format See {@link Texture.format | .format}. Default {@link THREE.RGBAFormat} * @param type See {@link Texture.type | .type}. Default {@link THREE.UnsignedByteType} * @param anisotropy See {@link Texture.anisotropy | .anisotropy}. Default {@link THREE.Texture.DEFAULT_ANISOTROPY} */ constructor( canvas: TexImageSource | OffscreenCanvas, mapping?: Mapping, wrapS?: Wrapping, wrapT?: Wrapping, magFilter?: MagnificationTextureFilter, minFilter?: MinificationTextureFilter, format?: PixelFormat, type?: TextureDataType, anisotropy?: number, ); /** * Read-only flag to check if a given object is of type {@link CanvasTexture}. * @remarks This is a _constant_ value * @defaultValue `true` */ readonly isCanvasTexture: true; }