Skip to content

Commit 08b02f2

Browse files
authored
Merge pull request #10 from 2gis/TILES-4788
TILES-4788 add plugin registry
2 parents c453a2a + a03174e commit 08b02f2

File tree

6 files changed

+38
-5
lines changed

6 files changed

+38
-5
lines changed

package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@2gis/deck2gis-layer",
3-
"version": "1.1.0",
3+
"version": "1.1.1",
44
"description": "",
55
"main": "dist/deck2gislayer.js",
66
"typings": "dist/types/index.d.ts",

project.d.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,12 @@
1+
import * as _mapgl from '@2gis/mapgl/types';
2+
3+
declare global {
4+
const mapgl: typeof _mapgl;
5+
}
6+
7+
export as namespace mapgl;
8+
export = _mapgl;
9+
110
declare module '*.fsh' {
211
const _: string;
312
export default _;

src/deckgl2gisLayer.ts

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,14 @@
11
// Use fork mapbox layer in deck.gl
22
// https://github.com/visgl/deck.gl/tree/master/modules/mapbox
33

4-
import { prepareDeckInstance, addLayer, removeLayer, updateLayer, drawLayer } from './utils';
4+
import {
5+
prepareDeckInstance,
6+
addLayer,
7+
removeLayer,
8+
updateLayer,
9+
drawLayer,
10+
initDeck2gisProps,
11+
} from './utils';
512
import type { Deck, Layer } from '@deck.gl/core/typed';
613
import { CustomRenderProps, DeckCustomLayer } from './types';
714
import type { Map } from '@2gis/mapgl/types';
@@ -29,6 +36,9 @@ export class Deck2gisLayer<LayerT extends Layer> implements DeckCustomLayer {
2936
gl?: WebGLRenderingContext | WebGL2RenderingContext;
3037
antialiasing: boolean;
3138

39+
static initDeck2gisProps = (map: Map, deckProps?: CustomRenderProps) =>
40+
initDeck2gisProps(map, deckProps);
41+
3242
private frameBuffer?: RenderTarget;
3343
private program?: ShaderProgram;
3444
private vao?: Vao;

src/index.ts

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,18 @@
11
import { Deck2gisLayer } from './deckgl2gisLayer';
22
import { initDeck2gisProps } from './utils';
33

4+
if (typeof window !== 'undefined') {
5+
if ('mapgl' in window) {
6+
(mapgl as any).Deck2gisLayer = Deck2gisLayer;
7+
} else {
8+
// Если так вышло, что плагин инициализирован раньше mapgl, поместим его во временную переменную
9+
// Из нее уже сам mapgl все положит в себя.
10+
if (!(window as any).__mapglPlugins) {
11+
(window as any).__mapglPlugins = {};
12+
}
13+
14+
(window as any).__mapglPlugins.Deck2gisLayer = Deck2gisLayer;
15+
}
16+
}
17+
418
export { Deck2gisLayer, initDeck2gisProps };

src/utils.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -195,7 +195,7 @@ export function initDeck2gisProps(map: Map, deckProps?: CustomRenderProps): Deck
195195
// Fix heatmap layer render: need reset gl state after each draw layers
196196
function stateBinder(map: Map, layer: Deck2gisLayer<any>) {
197197
const gl = map.getWebGLContext();
198-
if (!layer.props.parameters.cullFaceEnabled) {
198+
if (!layer.props?.parameters?.cullFaceEnabled) {
199199
gl.disable(gl.CULL_FACE);
200200
}
201201
gl.clearDepth(1);

0 commit comments

Comments
 (0)