UNPKG

@types/three

Version:
119 lines (109 loc) 3.86 kB
import { MagnificationTextureFilter, Mapping, MinificationTextureFilter, PixelFormat, TextureDataType, Wrapping, } from "../constants.js"; import { TypedArray } from "../core/BufferAttribute.js"; import { Texture } from "./Texture.js"; /** * Creates a texture directly from raw data, width and height. * @example * ```typescript * // create a buffer with color data * const width = 512; * const height = 512; * const size = width * height; * const data = new Uint8Array(4 * size); * const color = new THREE.Color(0xffffff); * const r = Math.floor(color.r * 255); * const g = Math.floor(color.g * 255); * const b = Math.floor(color.b * 255); * for (let i = 0; i & lt; size; i++) { * const stride = i * 4; * data[stride] = r; * data[stride + 1] = g; * data[stride + 2] = b; * data[stride + 3] = 255; * } * // used the buffer to create a [name] * const texture = new THREE.DataTexture(data, width, height); * texture.needsUpdate = true; * ``` * @see {@link https://threejs.org/docs/index.html#api/en/textures/DataTexture | Official Documentation} * @see {@link https://github.com/mrdoob/three.js/blob/master/src/textures/DataTexture.js | Source} */ export class DataTexture extends Texture { /** * @param data {@link https://developer.mozilla.org/en-US/docs/Web/API/ArrayBufferView | ArrayBufferView} of the texture. Default `null`. * @param width Width of the texture. Default `1`. * @param height Height of the texture. Default `1`. * @param format See {@link Texture.format | .format}. Default {@link THREE.RGBAFormat} * @param type See {@link Texture.type | .type}. Default {@link THREE.UnsignedByteType} * @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.NearestFilter} * @param minFilter See {@link Texture.minFilter | .minFilter}. Default {@link THREE.NearestFilter} * @param anisotropy See {@link Texture.anisotropy | .anisotropy}. Default {@link THREE.Texture.DEFAULT_ANISOTROPY} * @param colorSpace See {@link Texture.colorSpace | .colorSpace}. Default {@link NoColorSpace} */ constructor( data?: TypedArray | null, width?: number, height?: number, format?: PixelFormat, type?: TextureDataType, mapping?: Mapping, wrapS?: Wrapping, wrapT?: Wrapping, magFilter?: MagnificationTextureFilter, minFilter?: MinificationTextureFilter, anisotropy?: number, colorSpace?: string, ); /** * Read-only flag to check if a given object is of type {@link DataTexture}. * @remarks This is a _constant_ value * @defaultValue `true` */ readonly isDataTexture: true; /** * Overridden with a record type holding data, width and height and depth. * @override */ get image(): TextureImageData; set image(value: TextureImageData); /** * @override * @defaultValue {@link THREE.NearestFilter} */ magFilter: MagnificationTextureFilter; /** * @override * @defaultValue {@link THREE.NearestFilter} */ minFilter: MinificationTextureFilter; /** * @override * @defaultValue `false` */ flipY: boolean; /** * @override * @defaultValue `false` */ generateMipmaps: boolean; /** * @override * @defaultValue `1` */ unpackAlignment: number; } export interface TextureImageData { data: TypedArray; height: number; width: number; }