gl-react
Version:
Universal React library, write and compose WebGL shaders, implement complex effects using a descriptive paradigm
66 lines • 2.17 kB
TypeScript
import Bus from "./Bus";
import type { NDArray } from "ndarray";
import type { ShaderIdentifier, ShaderInfo } from "./Shaders";
import type { Shader } from "gl-shader";
import type { VisitorLike } from "./Visitor";
import type { WebGLTextureLoader } from "webgltexture-loader";
import type Node from "./Node";
type SurfaceProps = {
children?: any;
style?: any;
preload?: Array<any>;
onLoad?: () => void;
onLoadError?: (e: Error) => void;
onContextLost?: () => void;
onContextRestored?: () => void;
visitor?: VisitorLike;
[key: string]: any;
};
export interface Surface {
props: SurfaceProps;
gl: WebGLRenderingContext | null;
RenderLessElement: any;
root: Node | null;
id: number;
mapRenderableContent: ((inst: any) => any) | undefined;
getVisitors(): Array<VisitorLike>;
getGLSize(): [number, number];
getGLName(): string;
getGLShortName(): string;
captureAsDataURL(...args: any[]): string;
captureAsBlob(...args: any[]): Promise<Blob>;
capture(x?: number, y?: number, w?: number, h?: number): NDArray;
redraw(): void;
flush(): void;
getEmptyTexture(): WebGLTexture;
glIsAvailable(): boolean;
rebootForDebug(): void;
_addGLNodeChild(node: Node): void;
_removeGLNodeChild(node: Node): void;
_resolveTextureLoader(raw: any): {
loader: WebGLTextureLoader | null;
input: any;
};
_getShader(shaderId: ShaderIdentifier): Shader;
_makeShader(shaderInfo: ShaderInfo): Shader;
_draw(): void;
_bindRootNode(): void;
}
export type SurfaceContext = {
glParent: Node | Surface | Bus;
glSurface: Surface;
glSizable: {
getGLSize(): [number, number];
};
};
export declare const list: () => Array<Surface>;
type SurfaceOpts = {
GLView: any;
RenderLessElement: any;
mapRenderableContent?: (instance: any) => any;
requestFrame: (f: Function) => number;
cancelFrame: (id: number) => void;
};
declare const _default: ({ GLView, RenderLessElement, mapRenderableContent, requestFrame, cancelFrame, }: SurfaceOpts) => any;
export default _default;
//# sourceMappingURL=createSurface.d.ts.map