@antv/l7-renderer 2.9.15 → 2.9.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +1 -1
- package/es/regl/ReglTexture2D.js.map +1 -1
- package/es/regl/index.js +3 -0
- package/es/regl/index.js.map +1 -1
- package/lib/regl/ReglTexture2D.js.map +1 -1
- package/lib/regl/index.js +3 -0
- package/lib/regl/index.js.map +1 -1
- package/package.json +3 -3
package/LICENSE.md
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/regl/ReglTexture2D.ts"],"names":["gl","colorSpaceMap","dataTypeMap","filterMap","formatMap","mipmapMap","wrapModeMap","ReglTexture2D","reGl","options","data","type","UNSIGNED_BYTE","width","height","flipY","format","RGBA","mipmap","wrapS","CLAMP_TO_EDGE","wrapT","aniso","alignment","premultiplyAlpha","mag","NEAREST","min","colorSpace","BROWSER_DEFAULT_WEBGL","x","y","copy","textureOptions","texture","props","_texture","bind","resize","isDistroy","destroy"],"mappings":"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
|
|
1
|
+
{"version":3,"sources":["../../src/regl/ReglTexture2D.ts"],"names":["gl","colorSpaceMap","dataTypeMap","filterMap","formatMap","mipmapMap","wrapModeMap","ReglTexture2D","reGl","options","data","type","UNSIGNED_BYTE","width","height","flipY","format","RGBA","mipmap","wrapS","CLAMP_TO_EDGE","wrapT","aniso","alignment","premultiplyAlpha","mag","NEAREST","min","colorSpace","BROWSER_DEFAULT_WEBGL","x","y","copy","textureOptions","texture","props","_texture","bind","resize","isDistroy","destroy"],"mappings":"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","sourcesContent":["import { gl, ITexture2D, ITexture2DInitializationOptions } from '@antv/l7-core';\nimport regl from 'l7regl';\nimport {\n colorSpaceMap,\n dataTypeMap,\n filterMap,\n formatMap,\n mipmapMap,\n wrapModeMap,\n} from './constants';\n\n/**\n * adaptor for regl.Buffer\n * @see https://github.com/regl-project/regl/blob/gh-pages/API.md#buffers\n */\nexport default class ReglTexture2D implements ITexture2D {\n private texture: regl.Texture2D;\n private width: number;\n private height: number;\n private isDistroy: boolean = false;\n\n constructor(reGl: regl.Regl, options: ITexture2DInitializationOptions) {\n const {\n data,\n type = gl.UNSIGNED_BYTE,\n width,\n height,\n flipY = false,\n format = gl.RGBA,\n mipmap = false,\n wrapS = gl.CLAMP_TO_EDGE,\n wrapT = gl.CLAMP_TO_EDGE,\n aniso = 0,\n alignment = 1,\n premultiplyAlpha = false,\n mag = gl.NEAREST,\n min = gl.NEAREST,\n colorSpace = gl.BROWSER_DEFAULT_WEBGL,\n x = 0,\n y = 0,\n copy = false,\n } = options;\n this.width = width;\n this.height = height;\n\n const textureOptions: regl.Texture2DOptions = {\n width,\n height,\n // @ts-ignore\n type: dataTypeMap[type],\n format: formatMap[format],\n wrapS: wrapModeMap[wrapS],\n wrapT: wrapModeMap[wrapT],\n // @ts-ignore\n mag: filterMap[mag],\n min: filterMap[min],\n alignment,\n flipY,\n colorSpace: colorSpaceMap[colorSpace],\n premultiplyAlpha,\n aniso,\n\n // copy pixels from current bind framebuffer\n x,\n y,\n copy,\n };\n\n if (data) {\n // @ts-ignore\n textureOptions.data = data;\n }\n\n if (typeof mipmap === 'number') {\n textureOptions.mipmap = mipmapMap[mipmap];\n } else if (typeof mipmap === 'boolean') {\n textureOptions.mipmap = mipmap;\n }\n\n this.texture = reGl.texture(textureOptions);\n }\n\n public get() {\n return this.texture;\n }\n public update(props: regl.Texture2DOptions = {}) {\n this.texture(props);\n }\n\n public bind() {\n // @ts-ignore\n this.texture._texture.bind();\n }\n\n public resize({ width, height }: { width: number; height: number }): void {\n this.texture.resize(width, height);\n this.width = width;\n this.height = height;\n }\n\n public destroy() {\n if (!this.isDistroy) {\n this.texture?.destroy();\n }\n this.isDistroy = true;\n }\n}\n"],"file":"ReglTexture2D.js"}
|
package/es/regl/index.js
CHANGED
|
@@ -143,7 +143,10 @@ var ReglRendererService = (_dec = injectable(), _dec(_class = function () {
|
|
|
143
143
|
});
|
|
144
144
|
|
|
145
145
|
_defineProperty(this, "destroy", function () {
|
|
146
|
+
var _this$gl2, _this$gl2$_gl, _this$gl2$_gl$getExte;
|
|
147
|
+
|
|
146
148
|
_this.canvas = null;
|
|
149
|
+
(_this$gl2 = _this.gl) === null || _this$gl2 === void 0 ? void 0 : (_this$gl2$_gl = _this$gl2._gl) === null || _this$gl2$_gl === void 0 ? void 0 : (_this$gl2$_gl$getExte = _this$gl2$_gl.getExtension('WEBGL_lose_context')) === null || _this$gl2$_gl$getExte === void 0 ? void 0 : _this$gl2$_gl$getExte.loseContext();
|
|
147
150
|
|
|
148
151
|
_this.gl.destroy();
|
|
149
152
|
|
package/es/regl/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/regl/index.ts"],"names":["isMini","injectable","regl","ReglAttribute","ReglBuffer","ReglElements","ReglFramebuffer","ReglModel","ReglTexture2D","ReglRendererService","options","gl","framebuffer","drawCommands","get","color","depth","stencil","reglClearOptions","clear","x","y","width","height","_gl","viewport","_refresh","readPixelsOptions","read","drawingBufferWidth","drawingBufferHeight","canvas","parentElement","destroy","cfg","Promise","resolve","reject","attributes","alpha","antialias","premultipliedAlpha","preserveDrawingBuffer","extensions","optionalExtensions","profile","onDone","err","r","extensionObject","OES_texture_float","testExtension","getParameter","ALIASED_POINT_SIZE_RANGE","name","getGLContext","getExtension","cull","enable","face","blend","equation","disable","CULL_FACE","flag","isDirty"],"mappings":"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","sourcesContent":["/**\n * render w/ regl\n * @see https://github.com/regl-project/regl/blob/gh-pages/API.md\n */\nimport {\n IAttribute,\n IAttributeInitializationOptions,\n IBuffer,\n IBufferInitializationOptions,\n IClearOptions,\n IElements,\n IElementsInitializationOptions,\n IExtensions,\n IFramebuffer,\n IFramebufferInitializationOptions,\n IModel,\n IModelInitializationOptions,\n IReadPixelsOptions,\n IRenderConfig,\n IRendererService,\n ITexture2D,\n ITexture2DInitializationOptions,\n} from '@antv/l7-core';\nimport { isMini } from '@antv/l7-utils';\nimport { injectable } from 'inversify';\nimport regl from 'l7regl';\nimport 'reflect-metadata';\nimport ReglAttribute from './ReglAttribute';\nimport ReglBuffer from './ReglBuffer';\nimport ReglElements from './ReglElements';\nimport ReglFramebuffer from './ReglFramebuffer';\nimport ReglModel from './ReglModel';\nimport ReglTexture2D from './ReglTexture2D';\n\n/**\n * regl renderer\n */\n@injectable()\nexport default class ReglRendererService implements IRendererService {\n public extensionObject: IExtensions;\n private gl: regl.Regl;\n private $container: HTMLDivElement | null;\n private canvas: HTMLCanvasElement;\n private width: number;\n private height: number;\n private isDirty: boolean;\n\n public async init(\n canvas: HTMLCanvasElement,\n cfg: IRenderConfig,\n ): Promise<void> {\n // this.$container = $container;\n this.canvas = canvas;\n // tslint:disable-next-line:typedef\n this.gl = await new Promise((resolve, reject) => {\n regl({\n canvas: this.canvas,\n attributes: {\n alpha: true,\n // use TAA instead of MSAA\n // @see https://www.khronos.org/registry/webgl/specs/1.0/#5.2.1\n antialias: cfg.antialias,\n premultipliedAlpha: true,\n preserveDrawingBuffer: cfg.preserveDrawingBuffer,\n\n stencil: cfg.stencil,\n },\n // TODO: use extensions\n extensions: [\n 'OES_element_index_uint',\n 'OES_standard_derivatives', // wireframe\n 'ANGLE_instanced_arrays', // VSM shadow map\n ],\n optionalExtensions: [\n 'oes_texture_float_linear',\n 'OES_texture_float',\n 'EXT_texture_filter_anisotropic',\n 'EXT_blend_minmax',\n 'WEBGL_depth_texture',\n ],\n profile: true,\n onDone: (err: Error | null, r?: regl.Regl | undefined): void => {\n if (err || !r) {\n reject(err);\n }\n // @ts-ignore\n resolve(r);\n },\n });\n });\n\n this.extensionObject = {\n OES_texture_float: this.testExtension('OES_texture_float'),\n };\n }\n\n public getPointSizeRange() {\n return this.gl._gl.getParameter(this.gl._gl.ALIASED_POINT_SIZE_RANGE);\n }\n\n public testExtension(name: string) {\n // OES_texture_float\n return !!this.getGLContext().getExtension(name);\n }\n\n public createModel = (options: IModelInitializationOptions): IModel =>\n new ReglModel(this.gl, options);\n\n public createAttribute = (\n options: IAttributeInitializationOptions,\n ): IAttribute => new ReglAttribute(this.gl, options);\n\n public createBuffer = (options: IBufferInitializationOptions): IBuffer =>\n new ReglBuffer(this.gl, options);\n\n public createElements = (\n options: IElementsInitializationOptions,\n ): IElements => new ReglElements(this.gl, options);\n\n public createTexture2D = (\n options: ITexture2DInitializationOptions,\n ): ITexture2D => new ReglTexture2D(this.gl, options);\n\n public createFramebuffer = (options: IFramebufferInitializationOptions) =>\n new ReglFramebuffer(this.gl, options);\n\n public useFramebuffer = (\n framebuffer: IFramebuffer | null,\n drawCommands: () => void,\n ) => {\n this.gl({\n framebuffer: framebuffer ? (framebuffer as ReglFramebuffer).get() : null,\n })(drawCommands);\n };\n\n public clear = (options: IClearOptions) => {\n // @see https://github.com/regl-project/regl/blob/gh-pages/API.md#clear-the-draw-buffer\n const { color, depth, stencil, framebuffer = null } = options;\n const reglClearOptions: regl.ClearOptions = {\n color,\n depth,\n stencil,\n };\n\n reglClearOptions.framebuffer =\n framebuffer === null\n ? framebuffer\n : (framebuffer as ReglFramebuffer).get();\n\n this.gl?.clear(reglClearOptions);\n };\n\n public viewport = ({\n x,\n y,\n width,\n height,\n }: {\n x: number;\n y: number;\n width: number;\n height: number;\n }) => {\n // use WebGL context directly\n // @see https://github.com/regl-project/regl/blob/gh-pages/API.md#unsafe-escape-hatch\n this.gl._gl.viewport(x, y, width, height);\n this.width = width;\n this.height = height;\n this.gl._refresh();\n };\n\n public readPixels = (options: IReadPixelsOptions) => {\n const { framebuffer, x, y, width, height } = options;\n const readPixelsOptions: regl.ReadOptions = {\n x,\n y,\n width,\n height,\n };\n if (framebuffer) {\n readPixelsOptions.framebuffer = (framebuffer as ReglFramebuffer).get();\n }\n return this.gl.read(readPixelsOptions);\n };\n\n public getViewportSize = () => {\n return {\n width: this.gl._gl.drawingBufferWidth,\n height: this.gl._gl.drawingBufferHeight,\n };\n };\n\n public getContainer = () => {\n if (isMini) {\n return this.canvas;\n } else {\n return this.canvas?.parentElement;\n }\n };\n\n public getCanvas = () => {\n // return this.$container?.getElementsByTagName('canvas')[0] || null;\n return this.canvas;\n };\n\n public getGLContext = () => {\n return this.gl._gl;\n };\n\n // TODO: 临时方法\n public setState() {\n this.gl({\n cull: {\n enable: false,\n face: 'back',\n },\n viewport: {\n x: 0,\n y: 0,\n height: this.width,\n width: this.height,\n },\n blend: {\n enable: true,\n equation: 'add',\n },\n framebuffer: null,\n });\n this.gl._refresh();\n }\n\n public setBaseState() {\n this.gl({\n cull: {\n enable: false,\n face: 'back',\n },\n viewport: {\n x: 0,\n y: 0,\n height: this.width,\n width: this.height,\n },\n blend: {\n enable: false,\n equation: 'add',\n },\n framebuffer: null,\n });\n this.gl._refresh();\n }\n public setCustomLayerDefaults() {\n const gl = this.getGLContext();\n gl.disable(gl.CULL_FACE);\n }\n\n public setDirty(flag: boolean): void {\n this.isDirty = flag;\n }\n\n public getDirty(): boolean {\n return this.isDirty;\n }\n\n public destroy = () => {\n // this.canvas = null 清除对 webgl 实例的引用\n // @ts-ignore\n this.canvas = null;\n // @see https://github.com/regl-project/regl/blob/gh-pages/API.md#clean-up\n this.gl.destroy();\n\n // @ts-ignore\n this.gl = null;\n };\n}\n"],"file":"index.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/regl/index.ts"],"names":["isMini","injectable","regl","ReglAttribute","ReglBuffer","ReglElements","ReglFramebuffer","ReglModel","ReglTexture2D","ReglRendererService","options","gl","framebuffer","drawCommands","get","color","depth","stencil","reglClearOptions","clear","x","y","width","height","_gl","viewport","_refresh","readPixelsOptions","read","drawingBufferWidth","drawingBufferHeight","canvas","parentElement","getExtension","loseContext","destroy","cfg","Promise","resolve","reject","attributes","alpha","antialias","premultipliedAlpha","preserveDrawingBuffer","extensions","optionalExtensions","profile","onDone","err","r","extensionObject","OES_texture_float","testExtension","getParameter","ALIASED_POINT_SIZE_RANGE","name","getGLContext","cull","enable","face","blend","equation","disable","CULL_FACE","flag","isDirty"],"mappings":"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","sourcesContent":["/**\n * render w/ regl\n * @see https://github.com/regl-project/regl/blob/gh-pages/API.md\n */\nimport {\n IAttribute,\n IAttributeInitializationOptions,\n IBuffer,\n IBufferInitializationOptions,\n IClearOptions,\n IElements,\n IElementsInitializationOptions,\n IExtensions,\n IFramebuffer,\n IFramebufferInitializationOptions,\n IModel,\n IModelInitializationOptions,\n IReadPixelsOptions,\n IRenderConfig,\n IRendererService,\n ITexture2D,\n ITexture2DInitializationOptions,\n} from '@antv/l7-core';\nimport { isMini } from '@antv/l7-utils';\nimport { injectable } from 'inversify';\nimport regl from 'l7regl';\nimport 'reflect-metadata';\nimport ReglAttribute from './ReglAttribute';\nimport ReglBuffer from './ReglBuffer';\nimport ReglElements from './ReglElements';\nimport ReglFramebuffer from './ReglFramebuffer';\nimport ReglModel from './ReglModel';\nimport ReglTexture2D from './ReglTexture2D';\n\n/**\n * regl renderer\n */\n@injectable()\nexport default class ReglRendererService implements IRendererService {\n public extensionObject: IExtensions;\n private gl: regl.Regl;\n private $container: HTMLDivElement | null;\n private canvas: HTMLCanvasElement;\n private width: number;\n private height: number;\n private isDirty: boolean;\n\n public async init(\n canvas: HTMLCanvasElement,\n cfg: IRenderConfig,\n ): Promise<void> {\n // this.$container = $container;\n this.canvas = canvas;\n // tslint:disable-next-line:typedef\n this.gl = await new Promise((resolve, reject) => {\n regl({\n canvas: this.canvas,\n attributes: {\n alpha: true,\n // use TAA instead of MSAA\n // @see https://www.khronos.org/registry/webgl/specs/1.0/#5.2.1\n antialias: cfg.antialias,\n premultipliedAlpha: true,\n preserveDrawingBuffer: cfg.preserveDrawingBuffer,\n\n stencil: cfg.stencil,\n },\n // TODO: use extensions\n extensions: [\n 'OES_element_index_uint',\n 'OES_standard_derivatives', // wireframe\n 'ANGLE_instanced_arrays', // VSM shadow map\n ],\n optionalExtensions: [\n 'oes_texture_float_linear',\n 'OES_texture_float',\n 'EXT_texture_filter_anisotropic',\n 'EXT_blend_minmax',\n 'WEBGL_depth_texture',\n ],\n profile: true,\n onDone: (err: Error | null, r?: regl.Regl | undefined): void => {\n if (err || !r) {\n reject(err);\n }\n // @ts-ignore\n resolve(r);\n },\n });\n });\n\n this.extensionObject = {\n OES_texture_float: this.testExtension('OES_texture_float'),\n };\n }\n\n public getPointSizeRange() {\n return this.gl._gl.getParameter(this.gl._gl.ALIASED_POINT_SIZE_RANGE);\n }\n\n public testExtension(name: string) {\n // OES_texture_float\n return !!this.getGLContext().getExtension(name);\n }\n\n public createModel = (options: IModelInitializationOptions): IModel =>\n new ReglModel(this.gl, options);\n\n public createAttribute = (\n options: IAttributeInitializationOptions,\n ): IAttribute => new ReglAttribute(this.gl, options);\n\n public createBuffer = (options: IBufferInitializationOptions): IBuffer =>\n new ReglBuffer(this.gl, options);\n\n public createElements = (\n options: IElementsInitializationOptions,\n ): IElements => new ReglElements(this.gl, options);\n\n public createTexture2D = (\n options: ITexture2DInitializationOptions,\n ): ITexture2D => new ReglTexture2D(this.gl, options);\n\n public createFramebuffer = (options: IFramebufferInitializationOptions) =>\n new ReglFramebuffer(this.gl, options);\n\n public useFramebuffer = (\n framebuffer: IFramebuffer | null,\n drawCommands: () => void,\n ) => {\n this.gl({\n framebuffer: framebuffer ? (framebuffer as ReglFramebuffer).get() : null,\n })(drawCommands);\n };\n\n public clear = (options: IClearOptions) => {\n // @see https://github.com/regl-project/regl/blob/gh-pages/API.md#clear-the-draw-buffer\n const { color, depth, stencil, framebuffer = null } = options;\n const reglClearOptions: regl.ClearOptions = {\n color,\n depth,\n stencil,\n };\n\n reglClearOptions.framebuffer =\n framebuffer === null\n ? framebuffer\n : (framebuffer as ReglFramebuffer).get();\n\n this.gl?.clear(reglClearOptions);\n };\n\n public viewport = ({\n x,\n y,\n width,\n height,\n }: {\n x: number;\n y: number;\n width: number;\n height: number;\n }) => {\n // use WebGL context directly\n // @see https://github.com/regl-project/regl/blob/gh-pages/API.md#unsafe-escape-hatch\n this.gl._gl.viewport(x, y, width, height);\n this.width = width;\n this.height = height;\n this.gl._refresh();\n };\n\n public readPixels = (options: IReadPixelsOptions) => {\n const { framebuffer, x, y, width, height } = options;\n const readPixelsOptions: regl.ReadOptions = {\n x,\n y,\n width,\n height,\n };\n if (framebuffer) {\n readPixelsOptions.framebuffer = (framebuffer as ReglFramebuffer).get();\n }\n return this.gl.read(readPixelsOptions);\n };\n\n public getViewportSize = () => {\n return {\n width: this.gl._gl.drawingBufferWidth,\n height: this.gl._gl.drawingBufferHeight,\n };\n };\n\n public getContainer = () => {\n if (isMini) {\n return this.canvas;\n } else {\n return this.canvas?.parentElement;\n }\n };\n\n public getCanvas = () => {\n // return this.$container?.getElementsByTagName('canvas')[0] || null;\n return this.canvas;\n };\n\n public getGLContext = () => {\n return this.gl._gl;\n };\n\n // TODO: 临时方法\n public setState() {\n this.gl({\n cull: {\n enable: false,\n face: 'back',\n },\n viewport: {\n x: 0,\n y: 0,\n height: this.width,\n width: this.height,\n },\n blend: {\n enable: true,\n equation: 'add',\n },\n framebuffer: null,\n });\n this.gl._refresh();\n }\n\n public setBaseState() {\n this.gl({\n cull: {\n enable: false,\n face: 'back',\n },\n viewport: {\n x: 0,\n y: 0,\n height: this.width,\n width: this.height,\n },\n blend: {\n enable: false,\n equation: 'add',\n },\n framebuffer: null,\n });\n this.gl._refresh();\n }\n public setCustomLayerDefaults() {\n const gl = this.getGLContext();\n gl.disable(gl.CULL_FACE);\n }\n\n public setDirty(flag: boolean): void {\n this.isDirty = flag;\n }\n\n public getDirty(): boolean {\n return this.isDirty;\n }\n\n public destroy = () => {\n // this.canvas = null 清除对 webgl 实例的引用\n // @ts-ignore\n this.canvas = null;\n\n // make sure release webgl context\n this.gl?._gl?.getExtension('WEBGL_lose_context')?.loseContext();\n\n // @see https://github.com/regl-project/regl/blob/gh-pages/API.md#clean-up\n this.gl.destroy();\n\n // @ts-ignore\n this.gl = null;\n };\n}\n"],"file":"index.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/regl/ReglTexture2D.ts"],"names":["ReglTexture2D","reGl","options","data","type","gl","UNSIGNED_BYTE","width","height","flipY","format","RGBA","mipmap","wrapS","CLAMP_TO_EDGE","wrapT","aniso","alignment","premultiplyAlpha","mag","NEAREST","min","colorSpace","BROWSER_DEFAULT_WEBGL","x","y","copy","textureOptions","dataTypeMap","formatMap","wrapModeMap","filterMap","colorSpaceMap","mipmapMap","texture","props","_texture","bind","resize","isDistroy","destroy"],"mappings":";;;;;;;;;;;;;;;AAAA;;AAEA;;IAaqBA,a;AAMnB,yBAAYC,IAAZ,EAA6BC,OAA7B,EAAuE;AAAA;AAAA;AAAA;AAAA;AAAA,qDAF1C,KAE0C;AACrE,QACEC,IADF,GAmBID,OAnBJ,CACEC,IADF;AAAA,wBAmBID,OAnBJ,CAEEE,IAFF;AAAA,QAEEA,IAFF,8BAESC,WAAGC,aAFZ;AAAA,QAGEC,KAHF,GAmBIL,OAnBJ,CAGEK,KAHF;AAAA,QAIEC,MAJF,GAmBIN,OAnBJ,CAIEM,MAJF;AAAA,yBAmBIN,OAnBJ,CAKEO,KALF;AAAA,QAKEA,KALF,+BAKU,KALV;AAAA,0BAmBIP,OAnBJ,CAMEQ,MANF;AAAA,QAMEA,MANF,gCAMWL,WAAGM,IANd;AAAA,0BAmBIT,OAnBJ,CAOEU,MAPF;AAAA,QAOEA,MAPF,gCAOW,KAPX;AAAA,yBAmBIV,OAnBJ,CAQEW,KARF;AAAA,QAQEA,KARF,+BAQUR,WAAGS,aARb;AAAA,yBAmBIZ,OAnBJ,CASEa,KATF;AAAA,QASEA,KATF,+BASUV,WAAGS,aATb;AAAA,yBAmBIZ,OAnBJ,CAUEc,KAVF;AAAA,QAUEA,KAVF,+BAUU,CAVV;AAAA,6BAmBId,OAnBJ,CAWEe,SAXF;AAAA,QAWEA,SAXF,mCAWc,CAXd;AAAA,gCAmBIf,OAnBJ,CAYEgB,gBAZF;AAAA,QAYEA,gBAZF,sCAYqB,KAZrB;AAAA,uBAmBIhB,OAnBJ,CAaEiB,GAbF;AAAA,QAaEA,GAbF,6BAaQd,WAAGe,OAbX;AAAA,uBAmBIlB,OAnBJ,CAcEmB,GAdF;AAAA,QAcEA,GAdF,6BAcQhB,WAAGe,OAdX;AAAA,8BAmBIlB,OAnBJ,CAeEoB,UAfF;AAAA,QAeEA,UAfF,oCAeejB,WAAGkB,qBAflB;AAAA,qBAmBIrB,OAnBJ,CAgBEsB,CAhBF;AAAA,QAgBEA,CAhBF,2BAgBM,CAhBN;AAAA,qBAmBItB,OAnBJ,CAiBEuB,CAjBF;AAAA,QAiBEA,CAjBF,2BAiBM,CAjBN;AAAA,wBAmBIvB,OAnBJ,CAkBEwB,IAlBF;AAAA,QAkBEA,IAlBF,8BAkBS,KAlBT;AAoBA,SAAKnB,KAAL,GAAaA,KAAb;AACA,SAAKC,MAAL,GAAcA,MAAd;AAEA,QAAMmB,cAAqC,GAAG;AAC5CpB,MAAAA,KAAK,EAALA,KAD4C;AAE5CC,MAAAA,MAAM,EAANA,MAF4C;AAI5CJ,MAAAA,IAAI,EAAEwB,uBAAYxB,IAAZ,CAJsC;AAK5CM,MAAAA,MAAM,EAAEmB,qBAAUnB,MAAV,CALoC;AAM5CG,MAAAA,KAAK,EAAEiB,uBAAYjB,KAAZ,CANqC;AAO5CE,MAAAA,KAAK,EAAEe,uBAAYf,KAAZ,CAPqC;AAS5CI,MAAAA,GAAG,EAAEY,qBAAUZ,GAAV,CATuC;AAU5CE,MAAAA,GAAG,EAAEU,qBAAUV,GAAV,CAVuC;AAW5CJ,MAAAA,SAAS,EAATA,SAX4C;AAY5CR,MAAAA,KAAK,EAALA,KAZ4C;AAa5Ca,MAAAA,UAAU,EAAEU,yBAAcV,UAAd,CAbgC;AAc5CJ,MAAAA,gBAAgB,EAAhBA,gBAd4C;AAe5CF,MAAAA,KAAK,EAALA,KAf4C;AAkB5CQ,MAAAA,CAAC,EAADA,CAlB4C;AAmB5CC,MAAAA,CAAC,EAADA,CAnB4C;AAoB5CC,MAAAA,IAAI,EAAJA;AApB4C,KAA9C;;AAuBA,QAAIvB,IAAJ,EAAU;
|
|
1
|
+
{"version":3,"sources":["../../src/regl/ReglTexture2D.ts"],"names":["ReglTexture2D","reGl","options","data","type","gl","UNSIGNED_BYTE","width","height","flipY","format","RGBA","mipmap","wrapS","CLAMP_TO_EDGE","wrapT","aniso","alignment","premultiplyAlpha","mag","NEAREST","min","colorSpace","BROWSER_DEFAULT_WEBGL","x","y","copy","textureOptions","dataTypeMap","formatMap","wrapModeMap","filterMap","colorSpaceMap","mipmapMap","texture","props","_texture","bind","resize","isDistroy","destroy"],"mappings":"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","sourcesContent":["import { gl, ITexture2D, ITexture2DInitializationOptions } from '@antv/l7-core';\nimport regl from 'l7regl';\nimport {\n colorSpaceMap,\n dataTypeMap,\n filterMap,\n formatMap,\n mipmapMap,\n wrapModeMap,\n} from './constants';\n\n/**\n * adaptor for regl.Buffer\n * @see https://github.com/regl-project/regl/blob/gh-pages/API.md#buffers\n */\nexport default class ReglTexture2D implements ITexture2D {\n private texture: regl.Texture2D;\n private width: number;\n private height: number;\n private isDistroy: boolean = false;\n\n constructor(reGl: regl.Regl, options: ITexture2DInitializationOptions) {\n const {\n data,\n type = gl.UNSIGNED_BYTE,\n width,\n height,\n flipY = false,\n format = gl.RGBA,\n mipmap = false,\n wrapS = gl.CLAMP_TO_EDGE,\n wrapT = gl.CLAMP_TO_EDGE,\n aniso = 0,\n alignment = 1,\n premultiplyAlpha = false,\n mag = gl.NEAREST,\n min = gl.NEAREST,\n colorSpace = gl.BROWSER_DEFAULT_WEBGL,\n x = 0,\n y = 0,\n copy = false,\n } = options;\n this.width = width;\n this.height = height;\n\n const textureOptions: regl.Texture2DOptions = {\n width,\n height,\n // @ts-ignore\n type: dataTypeMap[type],\n format: formatMap[format],\n wrapS: wrapModeMap[wrapS],\n wrapT: wrapModeMap[wrapT],\n // @ts-ignore\n mag: filterMap[mag],\n min: filterMap[min],\n alignment,\n flipY,\n colorSpace: colorSpaceMap[colorSpace],\n premultiplyAlpha,\n aniso,\n\n // copy pixels from current bind framebuffer\n x,\n y,\n copy,\n };\n\n if (data) {\n // @ts-ignore\n textureOptions.data = data;\n }\n\n if (typeof mipmap === 'number') {\n textureOptions.mipmap = mipmapMap[mipmap];\n } else if (typeof mipmap === 'boolean') {\n textureOptions.mipmap = mipmap;\n }\n\n this.texture = reGl.texture(textureOptions);\n }\n\n public get() {\n return this.texture;\n }\n public update(props: regl.Texture2DOptions = {}) {\n this.texture(props);\n }\n\n public bind() {\n // @ts-ignore\n this.texture._texture.bind();\n }\n\n public resize({ width, height }: { width: number; height: number }): void {\n this.texture.resize(width, height);\n this.width = width;\n this.height = height;\n }\n\n public destroy() {\n if (!this.isDistroy) {\n this.texture?.destroy();\n }\n this.isDistroy = true;\n }\n}\n"],"file":"ReglTexture2D.js"}
|
package/lib/regl/index.js
CHANGED
|
@@ -144,7 +144,10 @@ var ReglRendererService = (_dec = (0, _inversify.injectable)(), _dec(_class = fu
|
|
|
144
144
|
return _this.gl._gl;
|
|
145
145
|
});
|
|
146
146
|
(0, _defineProperty2.default)(this, "destroy", function () {
|
|
147
|
+
var _this$gl2, _this$gl2$_gl, _this$gl2$_gl$getExte;
|
|
148
|
+
|
|
147
149
|
_this.canvas = null;
|
|
150
|
+
(_this$gl2 = _this.gl) === null || _this$gl2 === void 0 ? void 0 : (_this$gl2$_gl = _this$gl2._gl) === null || _this$gl2$_gl === void 0 ? void 0 : (_this$gl2$_gl$getExte = _this$gl2$_gl.getExtension('WEBGL_lose_context')) === null || _this$gl2$_gl$getExte === void 0 ? void 0 : _this$gl2$_gl$getExte.loseContext();
|
|
148
151
|
|
|
149
152
|
_this.gl.destroy();
|
|
150
153
|
|
package/lib/regl/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/regl/index.ts"],"names":["ReglRendererService","options","ReglModel","gl","ReglAttribute","ReglBuffer","ReglElements","ReglTexture2D","ReglFramebuffer","framebuffer","drawCommands","get","color","depth","stencil","reglClearOptions","clear","x","y","width","height","_gl","viewport","_refresh","readPixelsOptions","read","drawingBufferWidth","drawingBufferHeight","isMini","canvas","parentElement","destroy","cfg","Promise","resolve","reject","attributes","alpha","antialias","premultipliedAlpha","preserveDrawingBuffer","extensions","optionalExtensions","profile","onDone","err","r","extensionObject","OES_texture_float","testExtension","getParameter","ALIASED_POINT_SIZE_RANGE","name","getGLContext","getExtension","cull","enable","face","blend","equation","disable","CULL_FACE","flag","isDirty"],"mappings":"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","sourcesContent":["/**\n * render w/ regl\n * @see https://github.com/regl-project/regl/blob/gh-pages/API.md\n */\nimport {\n IAttribute,\n IAttributeInitializationOptions,\n IBuffer,\n IBufferInitializationOptions,\n IClearOptions,\n IElements,\n IElementsInitializationOptions,\n IExtensions,\n IFramebuffer,\n IFramebufferInitializationOptions,\n IModel,\n IModelInitializationOptions,\n IReadPixelsOptions,\n IRenderConfig,\n IRendererService,\n ITexture2D,\n ITexture2DInitializationOptions,\n} from '@antv/l7-core';\nimport { isMini } from '@antv/l7-utils';\nimport { injectable } from 'inversify';\nimport regl from 'l7regl';\nimport 'reflect-metadata';\nimport ReglAttribute from './ReglAttribute';\nimport ReglBuffer from './ReglBuffer';\nimport ReglElements from './ReglElements';\nimport ReglFramebuffer from './ReglFramebuffer';\nimport ReglModel from './ReglModel';\nimport ReglTexture2D from './ReglTexture2D';\n\n/**\n * regl renderer\n */\n@injectable()\nexport default class ReglRendererService implements IRendererService {\n public extensionObject: IExtensions;\n private gl: regl.Regl;\n private $container: HTMLDivElement | null;\n private canvas: HTMLCanvasElement;\n private width: number;\n private height: number;\n private isDirty: boolean;\n\n public async init(\n canvas: HTMLCanvasElement,\n cfg: IRenderConfig,\n ): Promise<void> {\n // this.$container = $container;\n this.canvas = canvas;\n // tslint:disable-next-line:typedef\n this.gl = await new Promise((resolve, reject) => {\n regl({\n canvas: this.canvas,\n attributes: {\n alpha: true,\n // use TAA instead of MSAA\n // @see https://www.khronos.org/registry/webgl/specs/1.0/#5.2.1\n antialias: cfg.antialias,\n premultipliedAlpha: true,\n preserveDrawingBuffer: cfg.preserveDrawingBuffer,\n\n stencil: cfg.stencil,\n },\n // TODO: use extensions\n extensions: [\n 'OES_element_index_uint',\n 'OES_standard_derivatives', // wireframe\n 'ANGLE_instanced_arrays', // VSM shadow map\n ],\n optionalExtensions: [\n 'oes_texture_float_linear',\n 'OES_texture_float',\n 'EXT_texture_filter_anisotropic',\n 'EXT_blend_minmax',\n 'WEBGL_depth_texture',\n ],\n profile: true,\n onDone: (err: Error | null, r?: regl.Regl | undefined): void => {\n if (err || !r) {\n reject(err);\n }\n // @ts-ignore\n resolve(r);\n },\n });\n });\n\n this.extensionObject = {\n OES_texture_float: this.testExtension('OES_texture_float'),\n };\n }\n\n public getPointSizeRange() {\n return this.gl._gl.getParameter(this.gl._gl.ALIASED_POINT_SIZE_RANGE);\n }\n\n public testExtension(name: string) {\n // OES_texture_float\n return !!this.getGLContext().getExtension(name);\n }\n\n public createModel = (options: IModelInitializationOptions): IModel =>\n new ReglModel(this.gl, options);\n\n public createAttribute = (\n options: IAttributeInitializationOptions,\n ): IAttribute => new ReglAttribute(this.gl, options);\n\n public createBuffer = (options: IBufferInitializationOptions): IBuffer =>\n new ReglBuffer(this.gl, options);\n\n public createElements = (\n options: IElementsInitializationOptions,\n ): IElements => new ReglElements(this.gl, options);\n\n public createTexture2D = (\n options: ITexture2DInitializationOptions,\n ): ITexture2D => new ReglTexture2D(this.gl, options);\n\n public createFramebuffer = (options: IFramebufferInitializationOptions) =>\n new ReglFramebuffer(this.gl, options);\n\n public useFramebuffer = (\n framebuffer: IFramebuffer | null,\n drawCommands: () => void,\n ) => {\n this.gl({\n framebuffer: framebuffer ? (framebuffer as ReglFramebuffer).get() : null,\n })(drawCommands);\n };\n\n public clear = (options: IClearOptions) => {\n // @see https://github.com/regl-project/regl/blob/gh-pages/API.md#clear-the-draw-buffer\n const { color, depth, stencil, framebuffer = null } = options;\n const reglClearOptions: regl.ClearOptions = {\n color,\n depth,\n stencil,\n };\n\n reglClearOptions.framebuffer =\n framebuffer === null\n ? framebuffer\n : (framebuffer as ReglFramebuffer).get();\n\n this.gl?.clear(reglClearOptions);\n };\n\n public viewport = ({\n x,\n y,\n width,\n height,\n }: {\n x: number;\n y: number;\n width: number;\n height: number;\n }) => {\n // use WebGL context directly\n // @see https://github.com/regl-project/regl/blob/gh-pages/API.md#unsafe-escape-hatch\n this.gl._gl.viewport(x, y, width, height);\n this.width = width;\n this.height = height;\n this.gl._refresh();\n };\n\n public readPixels = (options: IReadPixelsOptions) => {\n const { framebuffer, x, y, width, height } = options;\n const readPixelsOptions: regl.ReadOptions = {\n x,\n y,\n width,\n height,\n };\n if (framebuffer) {\n readPixelsOptions.framebuffer = (framebuffer as ReglFramebuffer).get();\n }\n return this.gl.read(readPixelsOptions);\n };\n\n public getViewportSize = () => {\n return {\n width: this.gl._gl.drawingBufferWidth,\n height: this.gl._gl.drawingBufferHeight,\n };\n };\n\n public getContainer = () => {\n if (isMini) {\n return this.canvas;\n } else {\n return this.canvas?.parentElement;\n }\n };\n\n public getCanvas = () => {\n // return this.$container?.getElementsByTagName('canvas')[0] || null;\n return this.canvas;\n };\n\n public getGLContext = () => {\n return this.gl._gl;\n };\n\n // TODO: 临时方法\n public setState() {\n this.gl({\n cull: {\n enable: false,\n face: 'back',\n },\n viewport: {\n x: 0,\n y: 0,\n height: this.width,\n width: this.height,\n },\n blend: {\n enable: true,\n equation: 'add',\n },\n framebuffer: null,\n });\n this.gl._refresh();\n }\n\n public setBaseState() {\n this.gl({\n cull: {\n enable: false,\n face: 'back',\n },\n viewport: {\n x: 0,\n y: 0,\n height: this.width,\n width: this.height,\n },\n blend: {\n enable: false,\n equation: 'add',\n },\n framebuffer: null,\n });\n this.gl._refresh();\n }\n public setCustomLayerDefaults() {\n const gl = this.getGLContext();\n gl.disable(gl.CULL_FACE);\n }\n\n public setDirty(flag: boolean): void {\n this.isDirty = flag;\n }\n\n public getDirty(): boolean {\n return this.isDirty;\n }\n\n public destroy = () => {\n // this.canvas = null 清除对 webgl 实例的引用\n // @ts-ignore\n this.canvas = null;\n // @see https://github.com/regl-project/regl/blob/gh-pages/API.md#clean-up\n this.gl.destroy();\n\n // @ts-ignore\n this.gl = null;\n };\n}\n"],"file":"index.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/regl/index.ts"],"names":["ReglRendererService","options","ReglModel","gl","ReglAttribute","ReglBuffer","ReglElements","ReglTexture2D","ReglFramebuffer","framebuffer","drawCommands","get","color","depth","stencil","reglClearOptions","clear","x","y","width","height","_gl","viewport","_refresh","readPixelsOptions","read","drawingBufferWidth","drawingBufferHeight","isMini","canvas","parentElement","getExtension","loseContext","destroy","cfg","Promise","resolve","reject","attributes","alpha","antialias","premultipliedAlpha","preserveDrawingBuffer","extensions","optionalExtensions","profile","onDone","err","r","extensionObject","OES_texture_float","testExtension","getParameter","ALIASED_POINT_SIZE_RANGE","name","getGLContext","cull","enable","face","blend","equation","disable","CULL_FACE","flag","isDirty"],"mappings":"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","sourcesContent":["/**\n * render w/ regl\n * @see https://github.com/regl-project/regl/blob/gh-pages/API.md\n */\nimport {\n IAttribute,\n IAttributeInitializationOptions,\n IBuffer,\n IBufferInitializationOptions,\n IClearOptions,\n IElements,\n IElementsInitializationOptions,\n IExtensions,\n IFramebuffer,\n IFramebufferInitializationOptions,\n IModel,\n IModelInitializationOptions,\n IReadPixelsOptions,\n IRenderConfig,\n IRendererService,\n ITexture2D,\n ITexture2DInitializationOptions,\n} from '@antv/l7-core';\nimport { isMini } from '@antv/l7-utils';\nimport { injectable } from 'inversify';\nimport regl from 'l7regl';\nimport 'reflect-metadata';\nimport ReglAttribute from './ReglAttribute';\nimport ReglBuffer from './ReglBuffer';\nimport ReglElements from './ReglElements';\nimport ReglFramebuffer from './ReglFramebuffer';\nimport ReglModel from './ReglModel';\nimport ReglTexture2D from './ReglTexture2D';\n\n/**\n * regl renderer\n */\n@injectable()\nexport default class ReglRendererService implements IRendererService {\n public extensionObject: IExtensions;\n private gl: regl.Regl;\n private $container: HTMLDivElement | null;\n private canvas: HTMLCanvasElement;\n private width: number;\n private height: number;\n private isDirty: boolean;\n\n public async init(\n canvas: HTMLCanvasElement,\n cfg: IRenderConfig,\n ): Promise<void> {\n // this.$container = $container;\n this.canvas = canvas;\n // tslint:disable-next-line:typedef\n this.gl = await new Promise((resolve, reject) => {\n regl({\n canvas: this.canvas,\n attributes: {\n alpha: true,\n // use TAA instead of MSAA\n // @see https://www.khronos.org/registry/webgl/specs/1.0/#5.2.1\n antialias: cfg.antialias,\n premultipliedAlpha: true,\n preserveDrawingBuffer: cfg.preserveDrawingBuffer,\n\n stencil: cfg.stencil,\n },\n // TODO: use extensions\n extensions: [\n 'OES_element_index_uint',\n 'OES_standard_derivatives', // wireframe\n 'ANGLE_instanced_arrays', // VSM shadow map\n ],\n optionalExtensions: [\n 'oes_texture_float_linear',\n 'OES_texture_float',\n 'EXT_texture_filter_anisotropic',\n 'EXT_blend_minmax',\n 'WEBGL_depth_texture',\n ],\n profile: true,\n onDone: (err: Error | null, r?: regl.Regl | undefined): void => {\n if (err || !r) {\n reject(err);\n }\n // @ts-ignore\n resolve(r);\n },\n });\n });\n\n this.extensionObject = {\n OES_texture_float: this.testExtension('OES_texture_float'),\n };\n }\n\n public getPointSizeRange() {\n return this.gl._gl.getParameter(this.gl._gl.ALIASED_POINT_SIZE_RANGE);\n }\n\n public testExtension(name: string) {\n // OES_texture_float\n return !!this.getGLContext().getExtension(name);\n }\n\n public createModel = (options: IModelInitializationOptions): IModel =>\n new ReglModel(this.gl, options);\n\n public createAttribute = (\n options: IAttributeInitializationOptions,\n ): IAttribute => new ReglAttribute(this.gl, options);\n\n public createBuffer = (options: IBufferInitializationOptions): IBuffer =>\n new ReglBuffer(this.gl, options);\n\n public createElements = (\n options: IElementsInitializationOptions,\n ): IElements => new ReglElements(this.gl, options);\n\n public createTexture2D = (\n options: ITexture2DInitializationOptions,\n ): ITexture2D => new ReglTexture2D(this.gl, options);\n\n public createFramebuffer = (options: IFramebufferInitializationOptions) =>\n new ReglFramebuffer(this.gl, options);\n\n public useFramebuffer = (\n framebuffer: IFramebuffer | null,\n drawCommands: () => void,\n ) => {\n this.gl({\n framebuffer: framebuffer ? (framebuffer as ReglFramebuffer).get() : null,\n })(drawCommands);\n };\n\n public clear = (options: IClearOptions) => {\n // @see https://github.com/regl-project/regl/blob/gh-pages/API.md#clear-the-draw-buffer\n const { color, depth, stencil, framebuffer = null } = options;\n const reglClearOptions: regl.ClearOptions = {\n color,\n depth,\n stencil,\n };\n\n reglClearOptions.framebuffer =\n framebuffer === null\n ? framebuffer\n : (framebuffer as ReglFramebuffer).get();\n\n this.gl?.clear(reglClearOptions);\n };\n\n public viewport = ({\n x,\n y,\n width,\n height,\n }: {\n x: number;\n y: number;\n width: number;\n height: number;\n }) => {\n // use WebGL context directly\n // @see https://github.com/regl-project/regl/blob/gh-pages/API.md#unsafe-escape-hatch\n this.gl._gl.viewport(x, y, width, height);\n this.width = width;\n this.height = height;\n this.gl._refresh();\n };\n\n public readPixels = (options: IReadPixelsOptions) => {\n const { framebuffer, x, y, width, height } = options;\n const readPixelsOptions: regl.ReadOptions = {\n x,\n y,\n width,\n height,\n };\n if (framebuffer) {\n readPixelsOptions.framebuffer = (framebuffer as ReglFramebuffer).get();\n }\n return this.gl.read(readPixelsOptions);\n };\n\n public getViewportSize = () => {\n return {\n width: this.gl._gl.drawingBufferWidth,\n height: this.gl._gl.drawingBufferHeight,\n };\n };\n\n public getContainer = () => {\n if (isMini) {\n return this.canvas;\n } else {\n return this.canvas?.parentElement;\n }\n };\n\n public getCanvas = () => {\n // return this.$container?.getElementsByTagName('canvas')[0] || null;\n return this.canvas;\n };\n\n public getGLContext = () => {\n return this.gl._gl;\n };\n\n // TODO: 临时方法\n public setState() {\n this.gl({\n cull: {\n enable: false,\n face: 'back',\n },\n viewport: {\n x: 0,\n y: 0,\n height: this.width,\n width: this.height,\n },\n blend: {\n enable: true,\n equation: 'add',\n },\n framebuffer: null,\n });\n this.gl._refresh();\n }\n\n public setBaseState() {\n this.gl({\n cull: {\n enable: false,\n face: 'back',\n },\n viewport: {\n x: 0,\n y: 0,\n height: this.width,\n width: this.height,\n },\n blend: {\n enable: false,\n equation: 'add',\n },\n framebuffer: null,\n });\n this.gl._refresh();\n }\n public setCustomLayerDefaults() {\n const gl = this.getGLContext();\n gl.disable(gl.CULL_FACE);\n }\n\n public setDirty(flag: boolean): void {\n this.isDirty = flag;\n }\n\n public getDirty(): boolean {\n return this.isDirty;\n }\n\n public destroy = () => {\n // this.canvas = null 清除对 webgl 实例的引用\n // @ts-ignore\n this.canvas = null;\n\n // make sure release webgl context\n this.gl?._gl?.getExtension('WEBGL_lose_context')?.loseContext();\n\n // @see https://github.com/regl-project/regl/blob/gh-pages/API.md#clean-up\n this.gl.destroy();\n\n // @ts-ignore\n this.gl = null;\n };\n}\n"],"file":"index.js"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@antv/l7-renderer",
|
|
3
|
-
"version": "2.9.
|
|
3
|
+
"version": "2.9.16",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"module": "es/index.js",
|
|
@@ -26,14 +26,14 @@
|
|
|
26
26
|
"gl": "^4.4.0"
|
|
27
27
|
},
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"@antv/l7-core": "2.9.
|
|
29
|
+
"@antv/l7-core": "2.9.16",
|
|
30
30
|
"@babel/runtime": "^7.7.7",
|
|
31
31
|
"inversify": "^5.0.1",
|
|
32
32
|
"l7regl": "^0.0.20",
|
|
33
33
|
"lodash": "^4.17.15",
|
|
34
34
|
"reflect-metadata": "^0.1.13"
|
|
35
35
|
},
|
|
36
|
-
"gitHead": "
|
|
36
|
+
"gitHead": "7a4758195bb4d33cfb40e50536768e097b359022",
|
|
37
37
|
"publishConfig": {
|
|
38
38
|
"access": "public"
|
|
39
39
|
}
|