@types/three
Version:
TypeScript definitions for three
119 lines (109 loc) • 3.86 kB
TypeScript
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;
}