UNPKG

s2maps-gpu

Version:

S2 Maps GPU - An open source, high-performance, and GPU-accelerated map engine for rendering large-scale, interactive maps.

40 lines (39 loc) 2.01 kB
import type { CodeDesign } from './vectorWorker.js'; import type { RasterWorker as RasterWorkerSpec } from './process.spec.js'; import type { BuildCodeFunctionZoom, GPUType, HillshadeDefinition, HillshadeWorkerLayer, RasterDefinition, RasterWorkerLayer, SensorDefinition, SensorWorkerLayer } from 'style/style.spec.js'; import type { TileRequest } from '../worker.spec.js'; /** Worker for processing raster data */ export default class RasterWorker implements RasterWorkerSpec { gpuType: GPUType; /** @param gpuType - the GPU context of the map renderer (WebGL(1|2) | WebGPU) */ constructor(gpuType: GPUType); /** * Setup an RGBA style layer for the appropriate layer type * @param layerDefinition - input sensor/raster/hillshade layer * @returns the pre-processed worker layer */ setupLayer(layerDefinition: SensorDefinition | RasterDefinition | HillshadeDefinition): RasterWorkerLayer | SensorWorkerLayer | HillshadeWorkerLayer; /** * Build code in relation to the design of the raster layer * @param design - the design to modify * @returns the build function */ buildCode(design: CodeDesign<number>): BuildCodeFunctionZoom; /** * Build the raster tile * @param mapID - the map id to ship the data back to * @param sourceName - the source name the data to belongs to * @param layers - the layers to process * @param tile - the tile request * @param data - the tile raster data * @param size - the tile size */ buildTile(mapID: string, sourceName: string, layers: Array<RasterWorkerLayer | SensorWorkerLayer | HillshadeWorkerLayer>, tile: TileRequest, data: ArrayBuffer, size: number): Promise<void>; /** * TODO: flush images * @param _mapID - the map id to ship the data back to * @param _tile - the tile request * @param _sourceName - the source name the data to belongs to */ flush(_mapID: string, _tile: TileRequest, _sourceName: string): Promise<void>; }