asciiground
Version:
Library for creating animated ASCII canvas backgrounds supporting generative patterns and extensive configuration options.
59 lines (58 loc) • 1.78 kB
text/typescript
import { ASCIIRendererOptions } from './ascii-renderer.mjs';
import { CharacterData, RenderRegion } from '../patterns/pattern.mjs';
/**
* Common interface for all renderers.
* @category Rendering
*/
export interface Renderer {
/**
* Get the rendering options.
*/
get options(): ASCIIRendererOptions;
/**
* Set the rendering options.
*/
set options(options: ASCIIRendererOptions);
/**
* Initialize the renderer with the given canvas.
*/
initialize(canvas: HTMLCanvasElement, options: ASCIIRendererOptions): void;
/**
* Clear the canvas with the given background color.
*/
clear(backgroundColor: string): void;
/**
* Render the given characters.
*/
render(characters: CharacterData[], region: RenderRegion): void;
/**
* Resize the renderer to the given dimensions.
*/
resize(width: number, height: number): void;
/**
* Cleanup resources.
*/
destroy(): void;
}
/**
* 2D Canvas renderer for ASCII characters.
* @category Rendering
*/
export declare class Canvas2DRenderer implements Renderer {
private _canvas;
private _context;
private _options;
get options(): ASCIIRendererOptions;
set options(options: ASCIIRendererOptions);
initialize(canvas: HTMLCanvasElement, options: ASCIIRendererOptions): void;
clear(backgroundColor: string): void;
render(characters: CharacterData[], region: RenderRegion): void;
resize(width: number, height: number): void;
destroy(): void;
private _setupContext;
}
/**
* Factory function to create appropriate renderer based on preference.
*/
export declare const createRenderer: (rendererType: "2D" | "WebGL") => Renderer;
export { WebGLRenderer } from './webgl-renderer.mjs';