UNPKG

textmode.js

Version:

textmode.js is a lightweight creative coding library for creating real-time ASCII art on the web.

68 lines (67 loc) 3.2 kB
import type { GLRenderer } from '../../rendering/webgl/core/Renderer'; import type { Material } from '../../rendering/webgl/materials/Material'; import { TextmodeColor } from '../TextmodeColor'; import type { TextmodeFont } from './font/TextmodeFont'; import type { ITextmodeSource } from './ITextmodeSource'; import type { TextmodeConversionMode, TextmodeConversionManager } from '../conversion'; type GlyphColor = [number, number, number]; export declare abstract class TextmodeSource implements ITextmodeSource { protected _gl: WebGL2RenderingContext; protected _renderer: GLRenderer; protected _texture: WebGLTexture; protected _originalWidth: number; protected _originalHeight: number; protected _width: number; protected _height: number; protected _material: Material | null; protected _activeFont: TextmodeFont | null; protected _conversionMode: TextmodeConversionMode; private _cachedConversionStrategy; private _conversionManager; protected _invert: number; protected _flipX: number; protected _flipY: number; protected _charRotation: number; protected _charColorMode: 'sampled' | 'fixed'; protected _cellColorMode: 'sampled' | 'fixed'; protected _charColor: [number, number, number, number]; protected _cellColor: [number, number, number, number]; protected _backgroundColor: [number, number, number, number]; protected _glyphColors: GlyphColor[]; private _characterString; protected constructor(gl: WebGL2RenderingContext, renderer: GLRenderer, texture: WebGLTexture, conversionManager: TextmodeConversionManager, originalWidth: number, originalHeight: number, width: number, height: number); conversionMode(mode: TextmodeConversionMode): this; $dispose(): void; invert(v?: boolean | number): this; flipX(v?: boolean | number): this; flipY(v?: boolean | number): this; charRotation(degrees: number): this; charColorMode(mode: 'sampled' | 'fixed'): this; cellColorMode(mode: 'sampled' | 'fixed'): this; charColor(colorOrGray: number | string | TextmodeColor, g?: number, b?: number, a?: number): this; cellColor(colorOrGray: number | string | TextmodeColor, g?: number, b?: number, a?: number): this; background(colorOrGray: number | TextmodeColor | string, g?: number, b?: number, a?: number): this; characters(chars: string): this; /** * Set the active font for the current render pass. * Called by the renderer before getMaterial() to ensure the source uses the correct layer's font. * @param font The font to use for this render * @ignore */ $setActiveFont(font: TextmodeFont): void; get texture(): WebGLTexture; get width(): number; get height(): number; get originalWidth(): number; get originalHeight(): number; $getMaterial(): Material; protected $beforeMaterialUpdate(): void; protected abstract $getActiveTexture(): WebGLTexture; private _updateMaterial; private _setColor; private _applyCharacterPalette; createBaseConversionUniforms(): Record<string, any>; private _getActiveConversionStrategy; private _createConversionContext; } export {};