@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
TypeScript
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;