@virtualscenery/greenscreenstream
Version:
Genereate new MediaStreams or Canvas elements based on MediaStreams (webcam) with any background image/video. Greenscreen your webcam and enable virtual backgrounds in your web applications.
140 lines • 4.25 kB
TypeScript
export interface ITexture {
src?: any;
fn?(prg: WebGLProgram, gl: WebGLRenderingContext, src: any): Function;
w?: number;
h?: number;
}
export declare class RenderTarget {
framebuffer: WebGLFramebuffer;
renderbuffer: WebGLRenderbuffer;
texture: WebGLTexture;
textures: Array<string>;
uniforms: any;
locations: Map<string, WebGLUniformLocation>;
constructor(gl: WebGLRenderingContext, textures: string[], customUniforms: any);
}
export declare class DemolishedRenderer {
canvas: HTMLCanvasElement;
cU: any;
gl: WebGLRenderingContext;
mainProgram: WebGLProgram;
programs: Map<string, {
program: WebGLProgram;
state: boolean;
}>;
surfaceBuffer: WebGLBuffer;
textureCache: Map<string, ITexture>;
targets: Map<string, RenderTarget>;
mainUniforms: Map<string, WebGLUniformLocation>;
buffer: WebGLBuffer;
vertexPosition: number;
screenVertexPosition: number;
frameCount: number;
deltaTime: number;
header: string;
constructor(canvas: HTMLCanvasElement, v: string, f: string, cU?: any);
/**
* Create a Shader
*
* @param {WebGLProgram} program
* @param {number} type
* @param {string} source
* @memberof DemolishedRenderer
*/
createShader(program: WebGLProgram, type: number, source: string): void;
/**
* Create and add a WebGLProgram
*
* @param {string} name
* @returns {WebGLProgram}
* @memberof DemolishedRenderer
*/
addProgram(name: string): WebGLProgram;
/**
* Create a new WEBGLTexture
*
* @param {*} data image or UInt8Array
* @returns WebGLTexture
* @memberof DemolishedRenderer
*/
createTexture(data: HTMLImageElement | Uint8Array, d: number): WebGLTexture;
/**
* Create a texture cube map
*
* @param {Array<any>} sources
* @param {number} d
* @returns {WebGLTexture}
* @memberof DemolishedRenderer
*/
createTextureCubeMap(sources: Array<any>, d: number): WebGLTexture;
/**
* add assets ( textures )
*
* @param {*} assets
* @param {()=>void} cb
* @returns {this}
* @memberof DemolishedRenderer
*/
addAssets(assets: any, cb: (r?: any) => void): this;
/**
* add a new buffer / shader program
*
* @param {string} name
* @param {string} vertex
* @param {string} fragment
* @param {Array<string>} [textures]
* @param {*} [customUniforms]
* @returns {this}
* @memberof DemolishedRenderer
*/
addBuffer(name: string, vertex: string, fragment: string, textures?: Array<string>, customUniforms?: any): DemolishedRenderer;
/**
* Set program state ( enable / or disable)
*
* @param {string} key
* @param {boolean} state
* @memberof DemolishedRenderer
*/
setProgram(key: string, state: boolean): void;
/**
* Render
*
* @param {number} time
* @memberof DemolishedRenderer
*/
render(time: number): void;
/**
* Create render target
*
* @param {number} width
* @param {number} height
* @param {Array<string>} textures
* @returns {*}
* @memberof DemolishedRenderer
*/
createRenderTarget(width: number, height: number, textures: Array<string>, customUniforms: any): RenderTarget;
/**
* Render loop
*
* @param {number} t
* @param {number} fps
* @returns {this}
* @memberof DemolishedRenderer
*/
run(t: number, fps: number): this;
/**
* Generate a texture and return a canvas element
*
* @static
* @param {string} mainVertex
* @param {string} mainFrag
* @param {string} textureVertex
* @param {*} textureFrag
* @param {number} w
* @param {number} h
* @returns {HTMLCanvasElement}
* @memberof DemolishedRenderer
*/
static generateTexture(mainVertex: string, mainFrag: string, textureVertex: string, textureFrag: any, w: number, h: number): HTMLCanvasElement;
}
//# sourceMappingURL=DemolishedRenderer.d.ts.map