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