UNPKG

@egjs/view360

Version:

360 integrated viewing solution from inside-out view to outside-in view. It provides user-friendly service by rotating 360 degrees through various user interaction such as motion sensor and touch.

47 lines (46 loc) 1.89 kB
import Component from "@egjs/component"; import { mat4 } from "gl-matrix"; import { CubemapConfig, TileConfig } from "../../types/internal"; declare const EVENTS: { ERROR: "error"; }; declare abstract class Renderer extends Component<{ [EVENTS.ERROR]: { message: string; }; }> { static EVENTS: { ERROR: "error"; }; private _forceDimension; private _pixelCanvas; private _pixelContext; constructor(); abstract getVertexPositionData(): number[]; abstract getIndexData(): number[]; abstract getTextureCoordData(textureData: { image: HTMLImageElement | HTMLVideoElement; imageConfig: CubemapConfig; }): number[]; abstract getVertexShaderSource(): string; abstract getFragmentShaderSource(): string; abstract bindTexture(gl: WebGLRenderingContext, texture: WebGLTexture, image: HTMLImageElement | HTMLVideoElement, imageConfig?: CubemapConfig): void; abstract updateTexture(gl: WebGLRenderingContext, image: HTMLImageElement | HTMLVideoElement, imageConfig?: CubemapConfig): void; render({ gl, shaderProgram, indexBuffer, mvMatrix, pMatrix }: { gl: WebGLRenderingContext; shaderProgram: WebGLProgram; indexBuffer: WebGLBuffer; mvMatrix: mat4; pMatrix: mat4; }): void; getDimension(pixelSource: HTMLImageElement | HTMLVideoElement): { width: number; height: number; }; updateShaderData(param: any): void; protected _initPixelSource(image: HTMLImageElement | HTMLVideoElement, forceDimension?: Renderer["_forceDimension"]): void; protected _getPixelSource(image: HTMLImageElement | HTMLVideoElement): HTMLCanvasElement | HTMLImageElement | HTMLVideoElement; protected _extractTileConfig(imageConfig: CubemapConfig): TileConfig[]; protected _triggerError(error: any): void; } export default Renderer;