@antv/l7-renderer 2.5.37-mini11 → 2.5.37-mini15

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/lib/regl/index.js CHANGED
@@ -17,6 +17,8 @@ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/creat
17
17
 
18
18
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
19
19
 
20
+ var _l7Utils = require("@antv/l7-utils");
21
+
20
22
  var _inversify = require("inversify");
21
23
 
22
24
  var _l7regl = _interopRequireDefault(require("l7regl"));
@@ -126,9 +128,13 @@ var ReglRendererService = (_dec = (0, _inversify.injectable)(), _dec(_class = fu
126
128
  };
127
129
  });
128
130
  (0, _defineProperty2.default)(this, "getContainer", function () {
129
- var _this$canvas;
131
+ if (_l7Utils.isMini) {
132
+ return _this.canvas;
133
+ } else {
134
+ var _this$canvas;
130
135
 
131
- return (_this$canvas = _this.canvas) === null || _this$canvas === void 0 ? void 0 : _this$canvas.parentElement;
136
+ return (_this$canvas = _this.canvas) === null || _this$canvas === void 0 ? void 0 : _this$canvas.parentElement;
137
+ }
132
138
  });
133
139
  (0, _defineProperty2.default)(this, "getCanvas", function () {
134
140
  return _this.canvas;
@@ -162,7 +168,7 @@ var ReglRendererService = (_dec = (0, _inversify.injectable)(), _dec(_class = fu
162
168
  premultipliedAlpha: true,
163
169
  preserveDrawingBuffer: cfg.preserveDrawingBuffer
164
170
  },
165
- extensions: ['OES_element_index_uint', 'OES_standard_derivatives', 'angle_instanced_arrays'],
171
+ extensions: ['OES_element_index_uint', 'OES_standard_derivatives', 'ANGLE_instanced_arrays'],
166
172
  optionalExtensions: ['oes_texture_float_linear', 'OES_texture_float', 'EXT_texture_filter_anisotropic', 'EXT_blend_minmax', 'WEBGL_depth_texture'],
167
173
  profile: true,
168
174
  onDone: function onDone(err, r) {
@@ -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","canvas","parentElement","destroy","cfg","Promise","resolve","reject","attributes","alpha","antialias","premultipliedAlpha","preserveDrawingBuffer","extensions","optionalExtensions","profile","onDone","err","r","extensionObject","OES_texture_float","testExtension","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 { 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 // 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 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 return this.canvas?.parentElement;\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 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 // @see https://github.com/regl-project/regl/blob/gh-pages/API.md#clean-up\n this.gl.destroy();\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","destroy","cfg","Promise","resolve","reject","attributes","alpha","antialias","premultipliedAlpha","preserveDrawingBuffer","extensions","optionalExtensions","profile","onDone","err","r","extensionObject","OES_texture_float","testExtension","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 // 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 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 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 // @see https://github.com/regl-project/regl/blob/gh-pages/API.md#clean-up\n this.gl.destroy();\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.5.37-mini11",
3
+ "version": "2.5.37-mini15",
4
4
  "description": "",
5
5
  "main": "lib/index.js",
6
6
  "module": "es/index.js",
@@ -26,7 +26,7 @@
26
26
  "gl": "^4.4.0"
27
27
  },
28
28
  "dependencies": {
29
- "@antv/l7-core": "^2.5.37-mini11",
29
+ "@antv/l7-core": "^2.5.37-mini15",
30
30
  "@babel/runtime": "^7.7.7",
31
31
  "inversify": "^5.0.1",
32
32
  "l7regl": "^0.0.15",