56 lines
2.3 KiB
TypeScript
56 lines
2.3 KiB
TypeScript
import { ExtensionType } from '../../../../extensions/Extensions';
|
|
import { Texture } from '../../shared/texture/Texture';
|
|
import { GlTexture } from './GlTexture';
|
|
import type { ICanvas } from '../../../../environment/canvas/ICanvas';
|
|
import type { System } from '../../shared/system/System';
|
|
import type { CanvasGenerator, GetPixelsOutput } from '../../shared/texture/GenerateCanvas';
|
|
import type { TextureSource } from '../../shared/texture/sources/TextureSource';
|
|
import type { BindableTexture } from '../../shared/texture/Texture';
|
|
import type { GlRenderingContext } from '../context/GlRenderingContext';
|
|
import type { WebGLRenderer } from '../WebGLRenderer';
|
|
/**
|
|
* The system for managing textures in WebGL.
|
|
* @memberof rendering
|
|
*/
|
|
export declare class GlTextureSystem implements System, CanvasGenerator {
|
|
/** @ignore */
|
|
static extension: {
|
|
readonly type: readonly [ExtensionType.WebGLSystem];
|
|
readonly name: "texture";
|
|
};
|
|
readonly managedTextures: TextureSource[];
|
|
private readonly _renderer;
|
|
private _glTextures;
|
|
private _glSamplers;
|
|
private _boundTextures;
|
|
private _activeTextureLocation;
|
|
private _boundSamplers;
|
|
private readonly _uploads;
|
|
private _gl;
|
|
private _mapFormatToInternalFormat;
|
|
private _mapFormatToType;
|
|
private _mapFormatToFormat;
|
|
private readonly _useSeparateSamplers;
|
|
constructor(renderer: WebGLRenderer);
|
|
protected contextChange(gl: GlRenderingContext): void;
|
|
initSource(source: TextureSource): void;
|
|
bind(texture: BindableTexture, location?: number): void;
|
|
bindSource(source: TextureSource, location?: number): void;
|
|
private _bindSampler;
|
|
unbind(texture: BindableTexture): void;
|
|
private _activateLocation;
|
|
private _initSource;
|
|
protected onStyleChange(source: TextureSource): void;
|
|
protected updateStyle(source: TextureSource, firstCreation: boolean): void;
|
|
protected onSourceUnload(source: TextureSource): void;
|
|
protected onSourceUpdate(source: TextureSource): void;
|
|
protected onUpdateMipmaps(source: TextureSource, bind?: boolean): void;
|
|
protected onSourceDestroy(source: TextureSource): void;
|
|
private _initSampler;
|
|
private _getGlSampler;
|
|
getGlSource(source: TextureSource): GlTexture;
|
|
generateCanvas(texture: Texture): ICanvas;
|
|
getPixels(texture: Texture): GetPixelsOutput;
|
|
destroy(): void;
|
|
}
|