mirror of
https://github.com/EsotericSoftware/spine-runtimes.git
synced 2026-02-04 14:24:53 +08:00
91 lines
3.9 KiB
TypeScript
91 lines
3.9 KiB
TypeScript
|
|
/** Renderer class for drawing at runtime.
|
|
* @see {@link https://www.construct.net/en/make-games/manuals/construct-3/scripting/scripting-reference/graphics-interfaces/irenderer-interface | IRenderer documentation } */
|
|
|
|
type TextureWrapMode = "clamp-to-edge" | "repeat" | "mirror-repeat";
|
|
interface TextureCreateOptions {
|
|
wrapX?: TextureWrapMode;
|
|
wrapY?: TextureWrapMode;
|
|
defaultSampling?: SamplingModeType;
|
|
mipMap?: boolean
|
|
}
|
|
interface TextureUpdateOptions {
|
|
premultiplyAlpha?: boolean;
|
|
}
|
|
type TextureStaticDataType = HTMLImageElement | HTMLCanvasElement | OffscreenCanvas | ImageBitmap;
|
|
type TextureUpdateDataType = HTMLImageElement | HTMLVideoElement | HTMLCanvasElement | ImageBitmap | OffscreenCanvas | ImageData;
|
|
|
|
type RendererLineCapMode = "butt" | "square";
|
|
type RendererCullFaceMode = "none" | "back" | "front";
|
|
type RendererFrontFaceWinding = "cw" | "ccw";
|
|
|
|
interface CreateMeshDataOptions {
|
|
debugLabel?: string;
|
|
}
|
|
|
|
declare class IRenderer
|
|
{
|
|
setAlphaBlendMode(): void;
|
|
setBlendMode(blendMode: BlendModeParameter): void;
|
|
|
|
setColorFillMode(): void;
|
|
setTextureFillMode(): void;
|
|
setSmoothLineFillMode(): void;
|
|
|
|
setColor(color: Vec4Arr): void;
|
|
setColorRgba(r: number, g: number, b: number, a: number): void;
|
|
setOpacity(o: number): void;
|
|
resetColor(): void;
|
|
|
|
setCurrentZ(z: number): void;
|
|
getCurrentZ(): number;
|
|
|
|
setCullFaceMode(m: RendererCullFaceMode): void;
|
|
getCullFaceMode(): RendererCullFaceMode;
|
|
setFrontFaceWinding(m: RendererFrontFaceWinding): void;
|
|
getFrontFaceWinding(): RendererFrontFaceWinding;
|
|
|
|
rect(r: DOMRect): void;
|
|
rect2(l: number, t: number, r: number, b: number): void;
|
|
|
|
quad(quad: DOMQuad): void;
|
|
quad2(tlx: number, tly: number, trx: number, try_: number, brx: number, bry: number, blx: number, bly: number): void;
|
|
quad3(quad: DOMQuad, rect: DOMRect): void;
|
|
quad4(quad: DOMQuad, texQuad: DOMQuad): void;
|
|
quad5(quad: DOMQuad, texQuad: DOMQuad, colorArr: Float32Array): void;
|
|
quad3D(tlx: number, tly: number, tlz: number, trx: number, try_: number, trz: number, brx: number, bry: number, brz: number, blx: number, bly: number, blz: number, rect: DOMRect): void;
|
|
quad3D2(tlx: number, tly: number, tlz: number, trx: number, try_: number, trz: number, brx: number, bry: number, brz: number, blx: number, bly: number, blz: number, texQuad: DOMQuad): void;
|
|
quad3D3(tlx: number, tly: number, tlz: number, trx: number, try_: number, trz: number, brx: number, bry: number, brz: number, blx: number, bly: number, blz: number, texQuad: DOMQuad, colorArr: Float32Array): void;
|
|
|
|
createMeshData(vertexCount: number, indexCount: number, opts?: CreateMeshDataOptions): IMeshData;
|
|
drawMeshData(meshData: IMeshData, indexOffset?: number, indexCount?: number): void;
|
|
drawMesh(posArr: Float32Array, uvArr: Float32Array, indexArr: Uint16Array, colorArr?: Float32Array): void;
|
|
|
|
convexPoly(pointsArray: number[]): void;
|
|
line(x1: number, y1: number, x2: number, y2: number): void;
|
|
texturedLine(x1: number, y1: number, x2: number, y2: number, u: number, v: number): void;
|
|
lineRect(l: number, t: number, r: number, b: number): void;
|
|
lineRect2(rect: DOMRect): void;
|
|
lineQuad(quad: DOMQuad): void;
|
|
|
|
pushLineWidth(w: number): void;
|
|
popLineWidth(): void;
|
|
|
|
pushLineCap(lineCap: RendererLineCapMode): void;
|
|
popLineCap(): void;
|
|
|
|
setTexture(texture: ITexture, sampling?: SamplingModeOrAutoType): void;
|
|
createStaticTexture(data: TextureStaticDataType, opts?: TextureCreateOptions): Promise<ITexture>;
|
|
createDynamicTexture(width: number, height: number, opts?: TextureCreateOptions): ITexture;
|
|
updateTexture(data: TextureUpdateDataType, texture: ITexture, opts?: TextureUpdateOptions): void;
|
|
deleteTexture(texture: ITexture): void;
|
|
loadTextureForImageInfo(imageInfo: IImageInfo, opts?: TextureCreateOptions): Promise<ITexture>;
|
|
releaseTextureForImageInfo(imageInfo: IImageInfo): void;
|
|
getTextureForImageInfo(imageInfo: IImageInfo): ITexture | null;
|
|
|
|
createRendererText(): IRendererText;
|
|
|
|
setDeviceTransform(): void;
|
|
setLayerTransform(layer: ILayer): void;
|
|
}
|