From a53c115888e2e3367c0298eb7639314e1eb31dc7 Mon Sep 17 00:00:00 2001 From: hongfaqiu <951142905@qq.com> Date: Mon, 26 Jun 2023 18:05:13 +0800 Subject: [PATCH] perf: some uncertain modifications --- .../src/TIFFImageryProvider.ts | 39 ++++++------------- .../TIFFImageryProvider/src/plotty/index.ts | 18 ++++----- .../TIFFImageryProvider/src/plotty/typing.ts | 2 +- .../TIFFImageryProvider/src/worker-farm.ts | 2 +- 4 files changed, 22 insertions(+), 39 deletions(-) diff --git a/packages/TIFFImageryProvider/src/TIFFImageryProvider.ts b/packages/TIFFImageryProvider/src/TIFFImageryProvider.ts index e76b5bc..f19b856 100644 --- a/packages/TIFFImageryProvider/src/TIFFImageryProvider.ts +++ b/packages/TIFFImageryProvider/src/TIFFImageryProvider.ts @@ -1,4 +1,4 @@ -import { Event, GeographicTilingScheme, Credit, Rectangle, ImageryLayerFeatureInfo, Math as CMath, DeveloperError, defined } from "cesium"; +import { Event, GeographicTilingScheme, Credit, Rectangle, ImageryLayerFeatureInfo, Math as CMath, DeveloperError, defined, ImageryProvider } from "cesium"; import GeoTIFF, { Pool, fromUrl, fromBlob, GeoTIFFImage } from 'geotiff'; import { addColorScale, plot } from './plotty' @@ -132,7 +132,7 @@ function getWorkerPool() { return workerPool; } -export class TIFFImageryProvider { +export class TIFFImageryProvider extends ImageryProvider { ready: boolean; tilingScheme: GeographicTilingScheme; rectangle: Rectangle; @@ -142,7 +142,7 @@ export class TIFFImageryProvider { maximumLevel: number; minimumLevel: number; credit: Credit; - private _error: Event; + errorEvent: Event; readyPromise: Promise; private _destroyed = false; _source!: GeoTIFF; @@ -150,7 +150,7 @@ export class TIFFImageryProvider { _images: (GeoTIFFImage | null)[] = []; _imagesCache: Record = {}; bands: Record; gl: WebGLRenderingContext | null; program: WebGLProgram; texCoordBuffer: WebGLBuffer; - ctx: OffscreenCanvasRenderingContext2D | CanvasRenderingContext2D; + ctx: CanvasRenderingContext2D; displayRange: number[]; applyDisplayRange: boolean; matrix: number[]; @@ -282,8 +282,8 @@ class plot { if (defaultFor(options.useWebGL, true)) { // Try to create a webgl context in a temporary canvas to see if webgl and // required OES_texture_float is supported - if (create3DContext(new OffscreenCanvas(512, 512), {premultipliedAlpha: false}) !== null) { - const gl = create3DContext(this.canvas, {premultipliedAlpha: false}); + const gl = create3DContext(this.canvas, { premultipliedAlpha: false }); + if (gl !== null) { this.gl = gl; this.program = createProgram(gl, vertexShaderSource, fragmentShaderSource); gl.useProgram(this.program); @@ -466,9 +466,9 @@ class plot { /** * Set the canvas to draw to. When no canvas is supplied, a new canvas element * is created. - * @param {HTMLCanvasElement | OffscreenCanvas} [canvas] the canvas element to render to. + * @param {HTMLCanvasElement} [canvas] the canvas element to render to. */ - setCanvas(canvas: HTMLCanvasElement | OffscreenCanvas) { + setCanvas(canvas: HTMLCanvasElement) { this.canvas = canvas || document.createElement('canvas'); } @@ -503,9 +503,9 @@ class plot { /** * Get the canvas that is currently rendered to. - * @returns {HTMLCanvasElement | OffscreenCanvas} the canvas that is currently rendered to. + * @returns {HTMLCanvasElement} the canvas that is currently rendered to. */ - getCanvas(): HTMLCanvasElement | OffscreenCanvas { + getCanvas(): HTMLCanvasElement { return this.canvas; } diff --git a/packages/TIFFImageryProvider/src/plotty/typing.ts b/packages/TIFFImageryProvider/src/plotty/typing.ts index 625fa46..56b1e4b 100644 --- a/packages/TIFFImageryProvider/src/plotty/typing.ts +++ b/packages/TIFFImageryProvider/src/plotty/typing.ts @@ -19,7 +19,7 @@ export type PlotOptions = { /** * The canvas to render to. */ - canvas?: HTMLCanvasElement | OffscreenCanvas; + canvas?: HTMLCanvasElement; /** * The raster data to render. diff --git a/packages/TIFFImageryProvider/src/worker-farm.ts b/packages/TIFFImageryProvider/src/worker-farm.ts index 1b1a78f..75547ea 100644 --- a/packages/TIFFImageryProvider/src/worker-farm.ts +++ b/packages/TIFFImageryProvider/src/worker-farm.ts @@ -13,7 +13,7 @@ async function sendMessage(worker: Worker, payload: { data: TypedArray[], opts: id: msgId, payload, }; - return new Promise(function (resolve, reject) { + return new Promise(function (resolve, reject) { // save callbacks for later resolves[msgId] = resolve; rejects[msgId] = reject;