import GLEnv from "./GLEnv"; import { Vector4 } from "./GeoMath"; /** * サポートされる入力画像の型 */ export type SourceImage = HTMLImageElement | HTMLCanvasElement; /** * モデルテクスチャ */ declare class Texture { /** * オプション `mag_filter`, `min_filter`, `wrap_s`, `wrap_t` は * WebGL の定数と同じ値を指定する。 * * これらのうち、指定がなかったオプションは `usage` オプションによ * り決定される。 * * @param glenv - WebGL 環境 * @param image - 元画像 (`usage=COLOR` のときは `null`) * @param options - オプション */ constructor(glenv: GLEnv, image: SourceImage | null, options?: Option); /** * テクスチャのハンドル */ get handle(): WebGLTexture; /** * リソースを破棄 */ dispose(): void; /** * WebGL テクスチャオブジェクトを生成 * * @param image - 元画像 * @param opts - オプション集合 * * @return WebGL テクスチャオブジェクト */ private _createTexture; /** * テクスチャの生成パラメータを取得 * * @param gl - WebGL コンテキスト * @param opts - オプション集合 */ private static _getParameters; /** * テクスチャの生成パラメータを取得 * * @param opts - オプション集合 * * @return 均一色用の画像データ */ private static _getColorArray; /** * ミップマップを生成するか? * * @param gl - WebGL コンテキスト * @param params - 生成パラメータ * * @return ミップマップを生成するとき true, それ以外のとき false */ private static _generateMipmapQ; private readonly _glenv; private readonly _handle; } /** * [[Texture.constructor]] に与えるオプションの型 */ export interface Option { /** * テクスチャ用途 * * @defaultValue [[Usage.GENERAL]] */ usage?: Texture.Usage; /** * 拡大フィルタ * * NEAREST | LINEAR */ mag_filter?: GLenum; /** * 縮小フィルタ * * NEAREST | LINEAR | NEAREST_MIPMAP_NEAREST | * LINEAR_MIPMAP_NEAREST | NEAREST_MIPMAP_LINEAR | * LINEAR_MIPMAP_LINEAR */ min_filter?: GLenum; /** * S Wrap * * CLAMP_TO_EDGE | MIRRORED_REPEAT | REPEAT */ wrap_s?: GLenum; /** * T Wrap * * CLAMP_TO_EDGE | MIRRORED_REPEAT | REPEAT */ wrap_t?: GLenum; /** * 画像読み込み時に上下を反転するか? * * @defaultValue `true` */ flip_y?: boolean; /** * `usage=COLOR` のときの色指定 * * @defaultValue `[1,1,1,1]` */ color?: Vector4; } declare namespace Texture { /** * テクスチャ用途の型 * * [[Texture.constructor]] で `opts.usage` パラメータに指定する値の型 * である。 */ const enum Usage { /** * 一般用途 (既定値) */ GENERAL = "@@_Usage.GENERAL", /** * 均一色 */ COLOR = "@@_Usage.COLOR", /** * テキスト表示 */ TEXT = "@@_Usage.TEXT", /** * シンプルテキスト表示 */ SIMPLETEXT = "@@_Usage.SIMPLETEXT", /** * アイコン */ ICON = "@@_Usage.ICON" } } export default Texture; //# sourceMappingURL=Texture.d.ts.map