/** * render w/ regl * @see https://github.com/regl-project/regl/blob/gh-pages/API.md */ import type { IAttribute, IAttributeInitializationOptions, IBuffer, IBufferInitializationOptions, IClearOptions, IElements, IElementsInitializationOptions, IExtensions, IFramebuffer, IFramebufferInitializationOptions, IModel, IModelInitializationOptions, IReadPixelsOptions, IRenderConfig, IRendererService, ITexture2D, ITexture2DInitializationOptions } from '@antv/l7-core'; import regl from 'regl'; import ReglFramebuffer from './ReglFramebuffer'; /** * regl renderer */ export default class ReglRendererService implements IRendererService { uniformBuffers: IBuffer[]; extensionObject: IExtensions; private gl; private $container; private canvas; private width; private height; private isDirty; queryVerdorInfo: () => string; init(canvas: HTMLCanvasElement, cfg: IRenderConfig, gl?: regl.Regl): Promise; getPointSizeRange(): any; testExtension(name: string): boolean; createModel: (options: IModelInitializationOptions) => IModel; createAttribute: (options: IAttributeInitializationOptions) => IAttribute; createBuffer: (options: IBufferInitializationOptions) => IBuffer; createElements: (options: IElementsInitializationOptions) => IElements; createTexture2D: (options: ITexture2DInitializationOptions) => ITexture2D; createFramebuffer: (options: IFramebufferInitializationOptions) => ReglFramebuffer; useFramebuffer: (framebuffer: IFramebuffer | null, drawCommands: () => void) => void; useFramebufferAsync: (framebuffer: IFramebuffer | null, drawCommands: () => Promise) => Promise; clear: (options: IClearOptions) => void; viewport: ({ x, y, width, height, }: { x: number; y: number; width: number; height: number; }) => void; readPixels: (options: IReadPixelsOptions) => Uint8Array; readPixelsAsync: (options: IReadPixelsOptions) => Promise; getViewportSize: () => { width: number; height: number; }; getContainer: () => HTMLElement | null; getCanvas: () => HTMLCanvasElement; getGLContext: () => WebGLRenderingContext; setState(): void; setBaseState(): void; setCustomLayerDefaults(): void; setDirty(flag: boolean): void; getDirty(): boolean; destroy: () => void; beginFrame(): void; endFrame(): void; }