@antv/l7-renderer 2.9.21 → 2.9.23
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/es/index.js +5 -3
- package/es/regl/ReglAttribute.js +5 -8
- package/es/regl/ReglBuffer.js +9 -8
- package/es/regl/ReglElements.js +8 -8
- package/es/regl/ReglFramebuffer.js +8 -7
- package/es/regl/ReglModel.js +63 -42
- package/es/regl/ReglRenderbuffer.js +7 -7
- package/es/regl/ReglTexture2D.js +12 -10
- package/es/regl/constants.js +5 -2
- package/es/regl/index.js +43 -31
- package/lib/index.js +29 -13
- package/lib/regl/ReglAttribute.js +38 -48
- package/lib/regl/ReglBuffer.js +46 -52
- package/lib/regl/ReglElements.js +45 -51
- package/lib/regl/ReglFramebuffer.js +43 -58
- package/lib/regl/ReglModel.js +217 -283
- package/lib/regl/ReglRenderbuffer.js +42 -50
- package/lib/regl/ReglTexture2D.js +90 -122
- package/lib/regl/constants.js +168 -42
- package/lib/regl/index.js +204 -272
- package/package.json +11 -8
- package/es/index.js.map +0 -1
- package/es/regl/ReglAttribute.js.map +0 -1
- package/es/regl/ReglBuffer.js.map +0 -1
- package/es/regl/ReglElements.js.map +0 -1
- package/es/regl/ReglFramebuffer.js.map +0 -1
- package/es/regl/ReglModel.js.map +0 -1
- package/es/regl/ReglRenderbuffer.js.map +0 -1
- package/es/regl/ReglTexture2D.js.map +0 -1
- package/es/regl/constants.js.map +0 -1
- package/es/regl/index.js.map +0 -1
- package/lib/index.js.map +0 -1
- package/lib/regl/ReglAttribute.js.map +0 -1
- package/lib/regl/ReglBuffer.js.map +0 -1
- package/lib/regl/ReglElements.js.map +0 -1
- package/lib/regl/ReglFramebuffer.js.map +0 -1
- package/lib/regl/ReglModel.js.map +0 -1
- package/lib/regl/ReglRenderbuffer.js.map +0 -1
- package/lib/regl/ReglTexture2D.js.map +0 -1
- package/lib/regl/constants.js.map +0 -1
- package/lib/regl/index.js.map +0 -1
package/es/regl/constants.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/regl/constants.ts"],"names":["gl","primitiveMap","POINTS","LINES","LINE_LOOP","LINE_STRIP","TRIANGLES","TRIANGLE_FAN","TRIANGLE_STRIP","usageMap","STATIC_DRAW","DYNAMIC_DRAW","STREAM_DRAW","dataTypeMap","BYTE","UNSIGNED_INT","INT","UNSIGNED_BYTE","UNSIGNED_SHORT","FLOAT","formatMap","ALPHA","LUMINANCE","LUMINANCE_ALPHA","RGB","RGBA","RGBA4","RGB5_A1","RGB565","DEPTH_COMPONENT","DEPTH_STENCIL","mipmapMap","DONT_CARE","NICEST","FASTEST","filterMap","NEAREST","LINEAR","LINEAR_MIPMAP_LINEAR","NEAREST_MIPMAP_LINEAR","LINEAR_MIPMAP_NEAREST","NEAREST_MIPMAP_NEAREST","wrapModeMap","REPEAT","CLAMP_TO_EDGE","MIRRORED_REPEAT","colorSpaceMap","NONE","BROWSER_DEFAULT_WEBGL","depthFuncMap","NEVER","ALWAYS","LESS","LEQUAL","GREATER","GEQUAL","EQUAL","NOTEQUAL","blendEquationMap","FUNC_ADD","MIN_EXT","MAX_EXT","FUNC_SUBTRACT","FUNC_REVERSE_SUBTRACT","blendFuncMap","ZERO","ONE","SRC_COLOR","ONE_MINUS_SRC_COLOR","SRC_ALPHA","ONE_MINUS_SRC_ALPHA","DST_COLOR","ONE_MINUS_DST_COLOR","DST_ALPHA","ONE_MINUS_DST_ALPHA","CONSTANT_COLOR","ONE_MINUS_CONSTANT_COLOR","CONSTANT_ALPHA","ONE_MINUS_CONSTANT_ALPHA","SRC_ALPHA_SATURATE","stencilFuncMap","stencilOpMap","KEEP","REPLACE","INVERT","INCR","DECR","INCR_WRAP","DECR_WRAP","cullFaceMap","FRONT","BACK"],"mappings":"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","sourcesContent":["/**\n * @desc 由于 regl 使用大量字符串而非 WebGL 常量,因此需要映射\n */\nimport { gl } from '@antv/l7-core';\nimport regl from 'l7regl';\n\n// @see https://github.com/regl-project/regl/blob/gh-pages/lib/constants/primitives.json\nexport const primitiveMap: {\n [key: string]:\n | 'points'\n | 'lines'\n | 'line loop'\n | 'line strip'\n | 'triangles'\n | 'triangle strip'\n | 'triangle fan';\n} = {\n [gl.POINTS]: 'points',\n [gl.LINES]: 'lines',\n [gl.LINE_LOOP]: 'line loop',\n [gl.LINE_STRIP]: 'line strip',\n [gl.TRIANGLES]: 'triangles',\n [gl.TRIANGLE_FAN]: 'triangle fan',\n [gl.TRIANGLE_STRIP]: 'triangle strip',\n};\n\nexport const usageMap: {\n [key: string]: 'static' | 'dynamic' | 'stream';\n} = {\n [gl.STATIC_DRAW]: 'static',\n [gl.DYNAMIC_DRAW]: 'dynamic',\n [gl.STREAM_DRAW]: 'stream',\n};\n\nexport const dataTypeMap: {\n [key: string]:\n | 'int8'\n | 'int16'\n | 'int32'\n | 'uint8'\n | 'uint16'\n | 'uint32'\n | 'float';\n} = {\n [gl.BYTE]: 'int8',\n [gl.UNSIGNED_INT]: 'int16',\n [gl.INT]: 'int32',\n [gl.UNSIGNED_BYTE]: 'uint8',\n [gl.UNSIGNED_SHORT]: 'uint16',\n [gl.UNSIGNED_INT]: 'uint32',\n [gl.FLOAT]: 'float',\n};\n\nexport const formatMap: {\n [key: string]:\n | 'alpha'\n | 'luminance'\n | 'luminance alpha'\n | 'rgb'\n | 'rgba'\n | 'rgba4'\n | 'rgb5 a1'\n | 'rgb565'\n | 'depth'\n | 'depth stencil';\n} = {\n [gl.ALPHA]: 'alpha',\n [gl.LUMINANCE]: 'luminance',\n [gl.LUMINANCE_ALPHA]: 'luminance alpha',\n [gl.RGB]: 'rgb',\n [gl.RGBA]: 'rgba',\n [gl.RGBA4]: 'rgba4',\n [gl.RGB5_A1]: 'rgb5 a1',\n [gl.RGB565]: 'rgb565',\n [gl.DEPTH_COMPONENT]: 'depth',\n [gl.DEPTH_STENCIL]: 'depth stencil',\n};\n\nexport const mipmapMap: {\n [key: string]: 'dont care' | 'nice' | 'fast';\n} = {\n [gl.DONT_CARE]: 'dont care',\n [gl.NICEST]: 'nice',\n [gl.FASTEST]: 'fast',\n};\n\nexport const filterMap: {\n [key: string]:\n | 'nearest'\n | 'linear'\n | 'mipmap'\n | 'nearest mipmap linear'\n | 'linear mipmap nearest'\n | 'nearest mipmap nearest';\n} = {\n [gl.NEAREST]: 'nearest',\n [gl.LINEAR]: 'linear',\n [gl.LINEAR_MIPMAP_LINEAR]: 'mipmap',\n [gl.NEAREST_MIPMAP_LINEAR]: 'nearest mipmap linear',\n [gl.LINEAR_MIPMAP_NEAREST]: 'linear mipmap nearest',\n [gl.NEAREST_MIPMAP_NEAREST]: 'nearest mipmap nearest',\n};\n\nexport const wrapModeMap: {\n [key: string]: 'repeat' | 'clamp' | 'mirror';\n} = {\n [gl.REPEAT]: 'repeat',\n [gl.CLAMP_TO_EDGE]: 'clamp',\n [gl.MIRRORED_REPEAT]: 'mirror',\n};\n\nexport const colorSpaceMap: {\n [key: string]: 'none' | 'browser';\n} = {\n [gl.NONE]: 'none',\n [gl.BROWSER_DEFAULT_WEBGL]: 'browser',\n};\n\nexport const depthFuncMap: {\n [key: string]:\n | 'never'\n | 'always'\n | 'less'\n | 'lequal'\n | 'greater'\n | 'gequal'\n | 'equal'\n | 'notequal';\n} = {\n [gl.NEVER]: 'never',\n [gl.ALWAYS]: 'always',\n [gl.LESS]: 'less',\n [gl.LEQUAL]: 'lequal',\n [gl.GREATER]: 'greater',\n [gl.GEQUAL]: 'gequal',\n [gl.EQUAL]: 'equal',\n [gl.NOTEQUAL]: 'notequal',\n};\n\nexport const blendEquationMap: {\n [key: string]: regl.BlendingEquation;\n} = {\n [gl.FUNC_ADD]: 'add',\n [gl.MIN_EXT]: 'min',\n [gl.MAX_EXT]: 'max',\n [gl.FUNC_SUBTRACT]: 'subtract',\n [gl.FUNC_REVERSE_SUBTRACT]: 'reverse subtract',\n};\n\nexport const blendFuncMap: {\n [key: string]: regl.BlendingFunction;\n} = {\n [gl.ZERO]: 'zero',\n [gl.ONE]: 'one',\n [gl.SRC_COLOR]: 'src color',\n [gl.ONE_MINUS_SRC_COLOR]: 'one minus src color',\n [gl.SRC_ALPHA]: 'src alpha',\n [gl.ONE_MINUS_SRC_ALPHA]: 'one minus src alpha',\n [gl.DST_COLOR]: 'dst color',\n [gl.ONE_MINUS_DST_COLOR]: 'one minus dst color',\n [gl.DST_ALPHA]: 'dst alpha',\n [gl.ONE_MINUS_DST_ALPHA]: 'one minus dst alpha',\n [gl.CONSTANT_COLOR]: 'constant color',\n [gl.ONE_MINUS_CONSTANT_COLOR]: 'one minus constant color',\n [gl.CONSTANT_ALPHA]: 'constant alpha',\n [gl.ONE_MINUS_CONSTANT_ALPHA]: 'one minus constant alpha',\n [gl.SRC_ALPHA_SATURATE]: 'src alpha saturate',\n};\n\nexport const stencilFuncMap: {\n [key: string]: regl.ComparisonOperatorType;\n} = {\n [gl.NEVER]: 'never',\n [gl.ALWAYS]: 'always',\n [gl.LESS]: 'less',\n [gl.LEQUAL]: 'lequal',\n [gl.GREATER]: 'greater',\n [gl.GEQUAL]: 'gequal',\n [gl.EQUAL]: 'equal',\n [gl.NOTEQUAL]: 'notequal',\n};\n\nexport const stencilOpMap: {\n [key: string]: regl.StencilOperationType;\n} = {\n [gl.ZERO]: 'zero',\n [gl.KEEP]: 'keep',\n [gl.REPLACE]: 'replace',\n [gl.INVERT]: 'invert',\n [gl.INCR]: 'increment',\n [gl.DECR]: 'decrement',\n [gl.INCR_WRAP]: 'increment wrap',\n [gl.DECR_WRAP]: 'decrement wrap',\n};\n\nexport const cullFaceMap: {\n [key: string]: regl.FaceOrientationType;\n} = {\n [gl.FRONT]: 'front',\n [gl.BACK]: 'back',\n};\n"],"file":"constants.js"}
|
package/es/regl/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
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"}
|
package/lib/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAGA","sourcesContent":["/**\n *\n */\nimport ReglRendererService from './regl';\n\nexport { ReglRendererService };\n"],"file":"index.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/regl/ReglAttribute.ts"],"names":["ReglAttribute","gl","options","buffer","offset","stride","normalized","size","divisor","attribute","get","subData","destroy"],"mappings":";;;;;;;;;;;;;;;IAWqBA,a;AAInB,yBAAYC,EAAZ,EAA2BC,OAA3B,EAAqE;AAAA;AAAA;AAAA;AACnE,QAAQC,MAAR,GAA8DD,OAA9D,CAAQC,MAAR;AAAA,QAAgBC,MAAhB,GAA8DF,OAA9D,CAAgBE,MAAhB;AAAA,QAAwBC,MAAxB,GAA8DH,OAA9D,CAAwBG,MAAxB;AAAA,QAAgCC,UAAhC,GAA8DJ,OAA9D,CAAgCI,UAAhC;AAAA,QAA4CC,IAA5C,GAA8DL,OAA9D,CAA4CK,IAA5C;AAAA,QAAkDC,OAAlD,GAA8DN,OAA9D,CAAkDM,OAAlD;AACA,SAAKL,MAAL,GAAcA,MAAd;AACA,SAAKM,SAAL,GAAiB;AACfN,MAAAA,MAAM,EAAGA,MAAD,CAAuBO,GAAvB,EADO;AAEfN,MAAAA,MAAM,EAAEA,MAAM,IAAI,CAFH;AAGfC,MAAAA,MAAM,EAAEA,MAAM,IAAI,CAHH;AAIfC,MAAAA,UAAU,EAAEA,UAAU,IAAI,KAJX;AAKfE,MAAAA,OAAO,EAAEA,OAAO,IAAI;AALL,KAAjB;;AAQA,QAAID,IAAJ,EAAU;AACR,WAAKE,SAAL,CAAeF,IAAf,GAAsBA,IAAtB;AACD;AACF;;;;WAED,eAAa;AACX,aAAO,KAAKE,SAAZ;AACD;;;WAED,sBAAoBP,OAApB,EAKG;AACD,WAAKC,MAAL,CAAYQ,OAAZ,CAAoBT,OAApB;AACD;;;WAED,mBAAiB;AACf,WAAKC,MAAL,CAAYS,OAAZ;AACD","sourcesContent":["import {\n IAttribute,\n IAttributeInitializationOptions,\n IBuffer,\n} from '@antv/l7-core';\nimport regl from 'l7regl';\nimport ReglBuffer from './ReglBuffer';\n\n/**\n * @see https://github.com/regl-project/regl/blob/gh-pages/API.md#attributes\n */\nexport default class ReglAttribute implements IAttribute {\n private attribute: regl.Attribute;\n private buffer: IBuffer;\n\n constructor(gl: regl.Regl, options: IAttributeInitializationOptions) {\n const { buffer, offset, stride, normalized, size, divisor } = options;\n this.buffer = buffer;\n this.attribute = {\n buffer: (buffer as ReglBuffer).get(),\n offset: offset || 0,\n stride: stride || 0,\n normalized: normalized || false,\n divisor: divisor || 0,\n };\n\n if (size) {\n this.attribute.size = size;\n }\n }\n\n public get() {\n return this.attribute;\n }\n\n public updateBuffer(options: {\n // 用于替换的数据\n data: number[] | number[][] | Uint8Array | Uint16Array | Uint32Array;\n // 原 Buffer 替换位置,单位为 byte\n offset: number;\n }) {\n this.buffer.subData(options);\n }\n\n public destroy() {\n this.buffer.destroy();\n }\n}\n"],"file":"ReglAttribute.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/regl/ReglBuffer.ts"],"names":["ReglBuffer","reGl","options","data","usage","type","buffer","usageMap","gl","STATIC_DRAW","dataTypeMap","UNSIGNED_BYTE","destroy","offset","subdata"],"mappings":";;;;;;;;;;;;;;;AAAA;;AAEA;;IAMqBA,U;AAGnB,sBAAYC,IAAZ,EAA6BC,OAA7B,EAAoE;AAAA;AAAA;AAClE,QAAQC,IAAR,GAA8BD,OAA9B,CAAQC,IAAR;AAAA,QAAcC,KAAd,GAA8BF,OAA9B,CAAcE,KAAd;AAAA,QAAqBC,IAArB,GAA8BH,OAA9B,CAAqBG,IAArB;AACA,SAAKC,MAAL,GAAcL,IAAI,CAACK,MAAL,CAAY;AACxBH,MAAAA,IAAI,EAAJA,IADwB;AAExBC,MAAAA,KAAK,EAAEG,oBAASH,KAAK,IAAII,WAAGC,WAArB,CAFiB;AAGxBJ,MAAAA,IAAI,EAAEK,uBAAYL,IAAI,IAAIG,WAAGG,aAAvB;AAHkB,KAAZ,CAAd;AAMD;;;;WAED,eAAa;AACX,aAAO,KAAKL,MAAZ;AACD;;;WAED,mBAAiB;AACf,WAAKA,MAAL,CAAYM,OAAZ;AACD;;;WAED,uBAMG;AAAA,UALDT,IAKC,QALDA,IAKC;AAAA,UAJDU,MAIC,QAJDA,MAIC;AACD,WAAKP,MAAL,CAAYQ,OAAZ,CAAoBX,IAApB,EAA0BU,MAA1B;AACD","sourcesContent":["import { gl, IBuffer, IBufferInitializationOptions } from '@antv/l7-core';\nimport regl from 'l7regl';\nimport { dataTypeMap, usageMap } 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 ReglBuffer implements IBuffer {\n private buffer: regl.Buffer;\n\n constructor(reGl: regl.Regl, options: IBufferInitializationOptions) {\n const { data, usage, type } = options;\n this.buffer = reGl.buffer({\n data,\n usage: usageMap[usage || gl.STATIC_DRAW],\n type: dataTypeMap[type || gl.UNSIGNED_BYTE],\n // length: 0,\n });\n }\n\n public get() {\n return this.buffer;\n }\n\n public destroy() {\n this.buffer.destroy();\n }\n\n public subData({\n data,\n offset,\n }: {\n data: number[] | number[][] | Uint8Array | Uint16Array | Uint32Array;\n offset: number;\n }) {\n this.buffer.subdata(data, offset);\n }\n}\n"],"file":"ReglBuffer.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/regl/ReglElements.ts"],"names":["ReglElements","reGl","options","data","usage","type","count","elements","usageMap","gl","STATIC_DRAW","dataTypeMap","UNSIGNED_BYTE","subdata"],"mappings":";;;;;;;;;;;;;;;AAAA;;AAEA;;IAKqBA,Y;AAGnB,wBAAYC,IAAZ,EAA6BC,OAA7B,EAAsE;AAAA;AAAA;AACpE,QAAQC,IAAR,GAAqCD,OAArC,CAAQC,IAAR;AAAA,QAAcC,KAAd,GAAqCF,OAArC,CAAcE,KAAd;AAAA,QAAqBC,IAArB,GAAqCH,OAArC,CAAqBG,IAArB;AAAA,QAA2BC,KAA3B,GAAqCJ,OAArC,CAA2BI,KAA3B;AAEA,SAAKC,QAAL,GAAgBN,IAAI,CAACM,QAAL,CAAc;AAC5BJ,MAAAA,IAAI,EAAJA,IAD4B;AAE5BC,MAAAA,KAAK,EAAEI,oBAASJ,KAAK,IAAIK,WAAGC,WAArB,CAFqB;AAG5BL,MAAAA,IAAI,EAAEM,uBAAYN,IAAI,IAAII,WAAGG,aAAvB,CAHsB;AAO5BN,MAAAA,KAAK,EAALA;AAP4B,KAAd,CAAhB;AASD;;;;WAED,eAAa;AACX,aAAO,KAAKC,QAAZ;AACD;;;WAED,uBAIG;AAAA,UAHDJ,IAGC,QAHDA,IAGC;AACD,WAAKI,QAAL,CAAcM,OAAd,CAAsBV,IAAtB;AACD;;;WAED,mBAAiB,CAEhB","sourcesContent":["import { gl, IElements, IElementsInitializationOptions } from '@antv/l7-core';\nimport regl from 'l7regl';\nimport { dataTypeMap, usageMap } from './constants';\n\n/**\n * @see https://github.com/regl-project/regl/blob/gh-pages/API.md#elements\n */\nexport default class ReglElements implements IElements {\n private elements: regl.Elements;\n\n constructor(reGl: regl.Regl, options: IElementsInitializationOptions) {\n const { data, usage, type, count } = options;\n\n this.elements = reGl.elements({\n data,\n usage: usageMap[usage || gl.STATIC_DRAW],\n type: dataTypeMap[type || gl.UNSIGNED_BYTE] as\n | 'uint8'\n | 'uint16'\n | 'uint32',\n count,\n });\n }\n\n public get() {\n return this.elements;\n }\n\n public subData({\n data,\n }: {\n data: number[] | number[][] | Uint8Array | Uint16Array | Uint32Array;\n }) {\n this.elements.subdata(data);\n }\n\n public destroy() {\n // this.elements.destroy();\n }\n}\n"],"file":"ReglElements.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/regl/ReglFramebuffer.ts"],"names":["ReglFramebuffer","reGl","options","width","height","color","colors","depth","stencil","framebufferOptions","Array","isArray","map","c","get","framebuffer","destroy","resize"],"mappings":";;;;;;;;;;;;;;;IAcqBA,e;AAGnB,2BAAYC,IAAZ,EAA6BC,OAA7B,EAAyE;AAAA;AAAA;AACvE,QAAQC,KAAR,GAAyDD,OAAzD,CAAQC,KAAR;AAAA,QAAeC,MAAf,GAAyDF,OAAzD,CAAeE,MAAf;AAAA,QAAuBC,KAAvB,GAAyDH,OAAzD,CAAuBG,KAAvB;AAAA,QAA8BC,MAA9B,GAAyDJ,OAAzD,CAA8BI,MAA9B;AAAA,QAAsCC,KAAtC,GAAyDL,OAAzD,CAAsCK,KAAtC;AAAA,QAA6CC,OAA7C,GAAyDN,OAAzD,CAA6CM,OAA7C;AAEA,QAAMC,kBAA2C,GAAG;AAClDN,MAAAA,KAAK,EAALA,KADkD;AAElDC,MAAAA,MAAM,EAANA;AAFkD,KAApD;;AAKA,QAAIM,KAAK,CAACC,OAAN,CAAcL,MAAd,CAAJ,EAA2B;AACzBG,MAAAA,kBAAkB,CAACH,MAAnB,GAA4BA,MAAM,CAACM,GAAP,CAAW,UAACC,CAAD;AAAA,eACpCA,CAAD,CAAqBC,GAArB,EADqC;AAAA,OAAX,CAA5B;AAGD;;AAED,QAAIT,KAAK,IAAI,OAAOA,KAAP,KAAiB,SAA9B,EAAyC;AACvCI,MAAAA,kBAAkB,CAACJ,KAAnB,GAA4BA,KAAD,CAAyBS,GAAzB,EAA3B;AACD;;AAID,SAAKC,WAAL,GAAmBd,IAAI,CAACc,WAAL,CAAiBN,kBAAjB,CAAnB;AACD;;;;WAED,eAAa;AACX,aAAO,KAAKM,WAAZ;AACD;;;WAED,mBAAiB;AACf,WAAKA,WAAL,CAAiBC,OAAjB;AACD;;;WAED,sBAAoE;AAAA,UAApDb,KAAoD,QAApDA,KAAoD;AAAA,UAA7CC,MAA6C,QAA7CA,MAA6C;AAClE,WAAKW,WAAL,CAAiBE,MAAjB,CAAwBd,KAAxB,EAA+BC,MAA/B;AACD","sourcesContent":["import {\n gl,\n IFramebuffer,\n IFramebufferInitializationOptions,\n IRenderbuffer,\n ITexture2D,\n} from '@antv/l7-core';\nimport regl from 'l7regl';\nimport ReglTexture2D from './ReglTexture2D';\n\n/**\n * adaptor for regl.Framebuffer\n * @see https://github.com/regl-project/regl/blob/gh-pages/API.md#framebuffers\n */\nexport default class ReglFramebuffer implements IFramebuffer {\n private framebuffer: regl.Framebuffer;\n\n constructor(reGl: regl.Regl, options: IFramebufferInitializationOptions) {\n const { width, height, color, colors, depth, stencil } = options;\n\n const framebufferOptions: regl.FramebufferOptions = {\n width,\n height,\n };\n\n if (Array.isArray(colors)) {\n framebufferOptions.colors = colors.map((c: ITexture2D | IRenderbuffer) =>\n (c as ReglTexture2D).get(),\n );\n }\n\n if (color && typeof color !== 'boolean') {\n framebufferOptions.color = (color as ReglTexture2D).get();\n }\n\n // TODO: depth & stencil\n\n this.framebuffer = reGl.framebuffer(framebufferOptions);\n }\n\n public get() {\n return this.framebuffer;\n }\n\n public destroy() {\n this.framebuffer.destroy();\n }\n\n public resize({ width, height }: { width: number; height: number }) {\n this.framebuffer.resize(width, height);\n }\n}\n"],"file":"ReglFramebuffer.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/regl/ReglModel.ts"],"names":["ReglModel","reGl","options","vs","fs","attributes","uniforms","primitive","count","elements","depth","blend","stencil","cull","instances","reglUniforms","extractUniforms","Object","keys","forEach","uniformName","prop","reglAttributes","name","get","drawParams","frag","vert","primitiveMap","undefined","gl","TRIANGLES","initDepthDrawParams","initBlendDrawParams","initStencilDrawParams","initCullDrawParams","drawCommand","pickDrawParams","enable","drawPickCommand","pick","length","reglDrawProps","type","Array","isArray","BYTES_PER_ELEMENT","destroy","values","attr","destroyed","mask","func","depthFuncMap","LESS","range","equation","color","srcRGB","blendFuncMap","SRC_ALPHA","srcAlpha","dstRGB","ONE_MINUS_SRC_ALPHA","dstAlpha","rgb","blendEquationMap","FUNC_ADD","alpha","cmp","ALWAYS","ref","opFront","fail","KEEP","zfail","zpass","opBack","stencilFuncMap","stencilOpMap","face","BACK","cullFaceMap","extractedUniforms","extractUniformsRecursively","uniformValue","prefix","childName","child","idx"],"mappings":"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","sourcesContent":["import {\n gl,\n IAttribute,\n IElements,\n IModel,\n IModelDrawOptions,\n IModelInitializationOptions,\n IUniform,\n} from '@antv/l7-core';\nimport regl from 'l7regl';\nimport { cloneDeep, extend, isPlainObject, isTypedArray } from 'lodash';\nimport {\n blendEquationMap,\n blendFuncMap,\n cullFaceMap,\n depthFuncMap,\n primitiveMap,\n stencilFuncMap,\n stencilOpMap,\n} from './constants';\nimport ReglAttribute from './ReglAttribute';\nimport ReglElements from './ReglElements';\nimport ReglFramebuffer from './ReglFramebuffer';\nimport ReglTexture2D from './ReglTexture2D';\n\n/**\n * adaptor for regl.DrawCommand\n */\nexport default class ReglModel implements IModel {\n private reGl: regl.Regl;\n private destroyed: boolean = false;\n private drawCommand: regl.DrawCommand;\n private drawPickCommand: regl.DrawCommand;\n private drawParams: regl.DrawConfig;\n private options: IModelInitializationOptions;\n private uniforms: {\n [key: string]: IUniform;\n } = {};\n\n constructor(reGl: regl.Regl, options: IModelInitializationOptions) {\n this.reGl = reGl;\n const {\n vs,\n fs,\n attributes,\n uniforms,\n primitive,\n count,\n elements,\n depth,\n blend,\n stencil,\n cull,\n instances,\n } = options;\n const reglUniforms: { [key: string]: IUniform } = {};\n this.options = options;\n if (uniforms) {\n this.uniforms = this.extractUniforms(uniforms);\n Object.keys(uniforms).forEach((uniformName) => {\n // use regl prop API\n // @ts-ignore\n reglUniforms[uniformName] = reGl.prop(uniformName);\n });\n }\n\n const reglAttributes: { [key: string]: regl.Attribute } = {};\n Object.keys(attributes).forEach((name: string) => {\n reglAttributes[name] = (attributes[name] as ReglAttribute).get();\n });\n const drawParams: regl.DrawConfig = {\n attributes: reglAttributes,\n frag: fs,\n uniforms: reglUniforms,\n vert: vs,\n blend: {},\n primitive:\n primitiveMap[primitive === undefined ? gl.TRIANGLES : primitive],\n };\n if (instances) {\n drawParams.instances = instances;\n }\n\n // elements 中可能包含 count,此时不应传入\n if (count) {\n drawParams.count = count;\n }\n\n if (elements) {\n drawParams.elements = (elements as ReglElements).get();\n }\n\n this.initDepthDrawParams({ depth }, drawParams);\n this.initBlendDrawParams({ blend }, drawParams);\n this.initStencilDrawParams({ stencil }, drawParams);\n this.initCullDrawParams({ cull }, drawParams);\n\n this.drawCommand = reGl(drawParams);\n\n const pickDrawParams = cloneDeep(drawParams);\n\n pickDrawParams.blend = {\n ...pickDrawParams.blend,\n enable: false,\n };\n\n this.drawPickCommand = reGl(pickDrawParams);\n this.drawParams = drawParams;\n }\n\n public updateAttributesAndElements(\n attributes: { [key: string]: IAttribute },\n elements: IElements,\n ) {\n const reglAttributes: { [key: string]: regl.Attribute } = {};\n Object.keys(attributes).forEach((name: string) => {\n reglAttributes[name] = (attributes[name] as ReglAttribute).get();\n });\n this.drawParams.attributes = reglAttributes;\n this.drawParams.elements = (elements as ReglElements).get();\n\n this.drawCommand = this.reGl(this.drawParams);\n const pickDrawParams = cloneDeep(this.drawParams);\n pickDrawParams.blend = {\n ...pickDrawParams.blend,\n enable: false,\n };\n\n this.drawPickCommand = this.reGl(pickDrawParams);\n }\n\n public updateAttributes(attributes: { [key: string]: IAttribute }) {\n const reglAttributes: { [key: string]: regl.Attribute } = {};\n Object.keys(attributes).forEach((name: string) => {\n reglAttributes[name] = (attributes[name] as ReglAttribute).get();\n });\n this.drawParams.attributes = reglAttributes;\n this.drawCommand = this.reGl(this.drawParams);\n\n const pickDrawParams = cloneDeep(this.drawParams);\n\n pickDrawParams.blend = {\n ...pickDrawParams.blend,\n enable: false,\n };\n\n this.drawPickCommand = this.reGl(pickDrawParams);\n }\n\n public addUniforms(uniforms: { [key: string]: IUniform }) {\n this.uniforms = {\n ...this.uniforms,\n ...this.extractUniforms(uniforms),\n };\n }\n\n public draw(options: IModelDrawOptions, pick?: boolean) {\n // console.log('options', this.drawParams)\n if (\n this.drawParams.attributes &&\n Object.keys(this.drawParams.attributes).length === 0\n ) {\n return;\n }\n const uniforms: {\n [key: string]: IUniform;\n } = {\n ...this.uniforms,\n ...this.extractUniforms(options.uniforms || {}),\n };\n const reglDrawProps: {\n [key: string]:\n | regl.Framebuffer\n | regl.Texture2D\n | number\n | number[]\n | boolean;\n } = {};\n Object.keys(uniforms).forEach((uniformName: string) => {\n const type = typeof uniforms[uniformName];\n if (\n type === 'boolean' ||\n type === 'number' ||\n Array.isArray(uniforms[uniformName]) ||\n // @ts-ignore\n uniforms[uniformName].BYTES_PER_ELEMENT\n ) {\n reglDrawProps[uniformName] = uniforms[uniformName] as\n | number\n | number[]\n | boolean;\n } else {\n reglDrawProps[uniformName] = (uniforms[uniformName] as\n | ReglFramebuffer\n | ReglTexture2D).get();\n }\n });\n // TODO: 在进行拾取操作的绘制中,不应该使用叠加模式 - picking 根据拾取的颜色作为判断的输入,而叠加模式会产生新的,在 id 序列中不存在的颜色\n if (!pick) {\n this.drawCommand(reglDrawProps);\n } else {\n this.drawPickCommand(reglDrawProps);\n }\n // this.drawCommand(reglDrawProps);\n // this.drawPickCommand(reglDrawProps);\n }\n\n public destroy() {\n // @ts-ignore\n this.drawParams.elements.destroy();\n if (this.options.attributes) {\n Object.values(this.options.attributes).forEach((attr: any) => {\n // @ts-ignore\n (attr as ReglAttribute).destroy();\n });\n }\n this.destroyed = true;\n }\n\n /**\n * @see https://github.com/regl-project/regl/blob/gh-pages/API.md#depth-buffer\n */\n private initDepthDrawParams(\n { depth }: Pick<IModelInitializationOptions, 'depth'>,\n drawParams: regl.DrawConfig,\n ) {\n if (depth) {\n drawParams.depth = {\n enable: depth.enable === undefined ? true : !!depth.enable,\n mask: depth.mask === undefined ? true : !!depth.mask,\n func: depthFuncMap[depth.func || gl.LESS],\n range: depth.range || [0, 1],\n };\n }\n }\n\n /**\n * @see https://github.com/regl-project/regl/blob/gh-pages/API.md#blending\n */\n private initBlendDrawParams(\n { blend }: Pick<IModelInitializationOptions, 'blend'>,\n drawParams: regl.DrawConfig,\n ) {\n if (blend) {\n const { enable, func, equation, color = [0, 0, 0, 0] } = blend;\n // @ts-ignore\n drawParams.blend = {\n enable: !!enable,\n func: {\n srcRGB: blendFuncMap[(func && func.srcRGB) || gl.SRC_ALPHA],\n srcAlpha: blendFuncMap[(func && func.srcAlpha) || gl.SRC_ALPHA],\n dstRGB: blendFuncMap[(func && func.dstRGB) || gl.ONE_MINUS_SRC_ALPHA],\n dstAlpha:\n blendFuncMap[(func && func.dstAlpha) || gl.ONE_MINUS_SRC_ALPHA],\n },\n equation: {\n rgb: blendEquationMap[(equation && equation.rgb) || gl.FUNC_ADD],\n alpha: blendEquationMap[(equation && equation.alpha) || gl.FUNC_ADD],\n },\n color,\n };\n }\n }\n\n /**\n * @see https://github.com/regl-project/regl/blob/gh-pages/API.md#stencil\n */\n private initStencilDrawParams(\n { stencil }: Pick<IModelInitializationOptions, 'stencil'>,\n drawParams: regl.DrawConfig,\n ) {\n if (stencil) {\n const {\n enable,\n mask = -1,\n func = {\n cmp: gl.ALWAYS,\n ref: 0,\n mask: -1,\n },\n opFront = {\n fail: gl.KEEP,\n zfail: gl.KEEP,\n zpass: gl.KEEP,\n },\n opBack = {\n fail: gl.KEEP,\n zfail: gl.KEEP,\n zpass: gl.KEEP,\n },\n } = stencil;\n drawParams.stencil = {\n enable: !!enable,\n mask,\n func: {\n ...func,\n cmp: stencilFuncMap[func.cmp],\n },\n opFront: {\n fail: stencilOpMap[opFront.fail],\n zfail: stencilOpMap[opFront.zfail],\n zpass: stencilOpMap[opFront.zpass],\n },\n opBack: {\n fail: stencilOpMap[opBack.fail],\n zfail: stencilOpMap[opBack.zfail],\n zpass: stencilOpMap[opBack.zpass],\n },\n };\n }\n }\n\n /**\n * @see https://github.com/regl-project/regl/blob/gh-pages/API.md#culling\n */\n private initCullDrawParams(\n { cull }: Pick<IModelInitializationOptions, 'cull'>,\n drawParams: regl.DrawConfig,\n ) {\n if (cull) {\n const { enable, face = gl.BACK } = cull;\n drawParams.cull = {\n enable: !!enable,\n face: cullFaceMap[face],\n };\n }\n }\n\n /**\n * 考虑结构体命名, eg:\n * a: { b: 1 } -> 'a.b'\n * a: [ { b: 1 } ] -> 'a[0].b'\n */\n private extractUniforms(uniforms: {\n [key: string]: IUniform;\n }): {\n [key: string]: IUniform;\n } {\n const extractedUniforms = {};\n Object.keys(uniforms).forEach((uniformName) => {\n this.extractUniformsRecursively(\n uniformName,\n uniforms[uniformName],\n extractedUniforms,\n '',\n );\n });\n\n return extractedUniforms;\n }\n\n private extractUniformsRecursively(\n uniformName: string,\n uniformValue: IUniform,\n uniforms: {\n [key: string]: IUniform;\n },\n prefix: string,\n ) {\n if (\n uniformValue === null ||\n typeof uniformValue === 'number' || // u_A: 1\n typeof uniformValue === 'boolean' || // u_A: false\n (Array.isArray(uniformValue) && typeof uniformValue[0] === 'number') || // u_A: [1, 2, 3]\n isTypedArray(uniformValue) || // u_A: Float32Array\n // @ts-ignore\n uniformValue === '' ||\n 'resize' in uniformValue\n ) {\n uniforms[`${prefix && prefix + '.'}${uniformName}`] = uniformValue;\n return;\n }\n\n // u_Struct.a.b.c\n if (isPlainObject(uniformValue)) {\n Object.keys(uniformValue).forEach((childName) => {\n this.extractUniformsRecursively(\n childName,\n // @ts-ignore\n uniformValue[childName],\n uniforms,\n `${prefix && prefix + '.'}${uniformName}`,\n );\n });\n }\n\n // u_Struct[0].a\n if (Array.isArray(uniformValue)) {\n uniformValue.forEach((child, idx) => {\n Object.keys(child).forEach((childName) => {\n this.extractUniformsRecursively(\n childName,\n // @ts-ignore\n child[childName],\n uniforms,\n `${prefix && prefix + '.'}${uniformName}[${idx}]`,\n );\n });\n });\n }\n }\n}\n"],"file":"ReglModel.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/regl/ReglRenderbuffer.ts"],"names":["ReglRenderbuffer","reGl","options","width","height","format","renderbuffer","formatMap","destroy","resize"],"mappings":";;;;;;;;;;;;;;;AAKA;;IAMqBA,gB;AAGnB,4BAAYC,IAAZ,EAA6BC,OAA7B,EAA0E;AAAA;AAAA;AACxE,QAAQC,KAAR,GAAkCD,OAAlC,CAAQC,KAAR;AAAA,QAAeC,MAAf,GAAkCF,OAAlC,CAAeE,MAAf;AAAA,QAAuBC,MAAvB,GAAkCH,OAAlC,CAAuBG,MAAvB;AACA,SAAKC,YAAL,GAAoBL,IAAI,CAACK,YAAL,CAAkB;AACpCH,MAAAA,KAAK,EAALA,KADoC;AAEpCC,MAAAA,MAAM,EAANA,MAFoC;AAGpCC,MAAAA,MAAM,EAAEE,qBAAUF,MAAV;AAH4B,KAAlB,CAApB;AAKD;;;;WAED,eAAa;AACX,aAAO,KAAKC,YAAZ;AACD;;;WAED,mBAAiB;AACf,WAAKA,YAAL,CAAkBE,OAAlB;AACD;;;WAED,sBAAoE;AAAA,UAApDL,KAAoD,QAApDA,KAAoD;AAAA,UAA7CC,MAA6C,QAA7CA,MAA6C;AAClE,WAAKE,YAAL,CAAkBG,MAAlB,CAAyBN,KAAzB,EAAgCC,MAAhC;AACD","sourcesContent":["import {\n IRenderbuffer,\n IRenderbufferInitializationOptions,\n} from '@antv/l7-core';\nimport regl from 'l7regl';\nimport { formatMap } from './constants';\n\n/**\n * adaptor for regl.Renderbuffer\n * @see https://github.com/regl-project/regl/blob/gh-pages/API.md#renderbuffers\n */\nexport default class ReglRenderbuffer implements IRenderbuffer {\n private renderbuffer: regl.Renderbuffer;\n\n constructor(reGl: regl.Regl, options: IRenderbufferInitializationOptions) {\n const { width, height, format } = options;\n this.renderbuffer = reGl.renderbuffer({\n width,\n height,\n format: formatMap[format] as regl.RenderbufferFormat,\n });\n }\n\n public get() {\n return this.renderbuffer;\n }\n\n public destroy() {\n this.renderbuffer.destroy();\n }\n\n public resize({ width, height }: { width: number; height: number }) {\n this.renderbuffer.resize(width, height);\n }\n}\n"],"file":"ReglRenderbuffer.js"}
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/regl/constants.ts"],"names":["primitiveMap","gl","POINTS","LINES","LINE_LOOP","LINE_STRIP","TRIANGLES","TRIANGLE_FAN","TRIANGLE_STRIP","usageMap","STATIC_DRAW","DYNAMIC_DRAW","STREAM_DRAW","dataTypeMap","BYTE","UNSIGNED_INT","INT","UNSIGNED_BYTE","UNSIGNED_SHORT","FLOAT","formatMap","ALPHA","LUMINANCE","LUMINANCE_ALPHA","RGB","RGBA","RGBA4","RGB5_A1","RGB565","DEPTH_COMPONENT","DEPTH_STENCIL","mipmapMap","DONT_CARE","NICEST","FASTEST","filterMap","NEAREST","LINEAR","LINEAR_MIPMAP_LINEAR","NEAREST_MIPMAP_LINEAR","LINEAR_MIPMAP_NEAREST","NEAREST_MIPMAP_NEAREST","wrapModeMap","REPEAT","CLAMP_TO_EDGE","MIRRORED_REPEAT","colorSpaceMap","NONE","BROWSER_DEFAULT_WEBGL","depthFuncMap","NEVER","ALWAYS","LESS","LEQUAL","GREATER","GEQUAL","EQUAL","NOTEQUAL","blendEquationMap","FUNC_ADD","MIN_EXT","MAX_EXT","FUNC_SUBTRACT","FUNC_REVERSE_SUBTRACT","blendFuncMap","ZERO","ONE","SRC_COLOR","ONE_MINUS_SRC_COLOR","SRC_ALPHA","ONE_MINUS_SRC_ALPHA","DST_COLOR","ONE_MINUS_DST_COLOR","DST_ALPHA","ONE_MINUS_DST_ALPHA","CONSTANT_COLOR","ONE_MINUS_CONSTANT_COLOR","CONSTANT_ALPHA","ONE_MINUS_CONSTANT_ALPHA","SRC_ALPHA_SATURATE","stencilFuncMap","stencilOpMap","KEEP","REPLACE","INVERT","INCR","DECR","INCR_WRAP","DECR_WRAP","cullFaceMap","FRONT","BACK"],"mappings":"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","sourcesContent":["/**\n * @desc 由于 regl 使用大量字符串而非 WebGL 常量,因此需要映射\n */\nimport { gl } from '@antv/l7-core';\nimport regl from 'l7regl';\n\n// @see https://github.com/regl-project/regl/blob/gh-pages/lib/constants/primitives.json\nexport const primitiveMap: {\n [key: string]:\n | 'points'\n | 'lines'\n | 'line loop'\n | 'line strip'\n | 'triangles'\n | 'triangle strip'\n | 'triangle fan';\n} = {\n [gl.POINTS]: 'points',\n [gl.LINES]: 'lines',\n [gl.LINE_LOOP]: 'line loop',\n [gl.LINE_STRIP]: 'line strip',\n [gl.TRIANGLES]: 'triangles',\n [gl.TRIANGLE_FAN]: 'triangle fan',\n [gl.TRIANGLE_STRIP]: 'triangle strip',\n};\n\nexport const usageMap: {\n [key: string]: 'static' | 'dynamic' | 'stream';\n} = {\n [gl.STATIC_DRAW]: 'static',\n [gl.DYNAMIC_DRAW]: 'dynamic',\n [gl.STREAM_DRAW]: 'stream',\n};\n\nexport const dataTypeMap: {\n [key: string]:\n | 'int8'\n | 'int16'\n | 'int32'\n | 'uint8'\n | 'uint16'\n | 'uint32'\n | 'float';\n} = {\n [gl.BYTE]: 'int8',\n [gl.UNSIGNED_INT]: 'int16',\n [gl.INT]: 'int32',\n [gl.UNSIGNED_BYTE]: 'uint8',\n [gl.UNSIGNED_SHORT]: 'uint16',\n [gl.UNSIGNED_INT]: 'uint32',\n [gl.FLOAT]: 'float',\n};\n\nexport const formatMap: {\n [key: string]:\n | 'alpha'\n | 'luminance'\n | 'luminance alpha'\n | 'rgb'\n | 'rgba'\n | 'rgba4'\n | 'rgb5 a1'\n | 'rgb565'\n | 'depth'\n | 'depth stencil';\n} = {\n [gl.ALPHA]: 'alpha',\n [gl.LUMINANCE]: 'luminance',\n [gl.LUMINANCE_ALPHA]: 'luminance alpha',\n [gl.RGB]: 'rgb',\n [gl.RGBA]: 'rgba',\n [gl.RGBA4]: 'rgba4',\n [gl.RGB5_A1]: 'rgb5 a1',\n [gl.RGB565]: 'rgb565',\n [gl.DEPTH_COMPONENT]: 'depth',\n [gl.DEPTH_STENCIL]: 'depth stencil',\n};\n\nexport const mipmapMap: {\n [key: string]: 'dont care' | 'nice' | 'fast';\n} = {\n [gl.DONT_CARE]: 'dont care',\n [gl.NICEST]: 'nice',\n [gl.FASTEST]: 'fast',\n};\n\nexport const filterMap: {\n [key: string]:\n | 'nearest'\n | 'linear'\n | 'mipmap'\n | 'nearest mipmap linear'\n | 'linear mipmap nearest'\n | 'nearest mipmap nearest';\n} = {\n [gl.NEAREST]: 'nearest',\n [gl.LINEAR]: 'linear',\n [gl.LINEAR_MIPMAP_LINEAR]: 'mipmap',\n [gl.NEAREST_MIPMAP_LINEAR]: 'nearest mipmap linear',\n [gl.LINEAR_MIPMAP_NEAREST]: 'linear mipmap nearest',\n [gl.NEAREST_MIPMAP_NEAREST]: 'nearest mipmap nearest',\n};\n\nexport const wrapModeMap: {\n [key: string]: 'repeat' | 'clamp' | 'mirror';\n} = {\n [gl.REPEAT]: 'repeat',\n [gl.CLAMP_TO_EDGE]: 'clamp',\n [gl.MIRRORED_REPEAT]: 'mirror',\n};\n\nexport const colorSpaceMap: {\n [key: string]: 'none' | 'browser';\n} = {\n [gl.NONE]: 'none',\n [gl.BROWSER_DEFAULT_WEBGL]: 'browser',\n};\n\nexport const depthFuncMap: {\n [key: string]:\n | 'never'\n | 'always'\n | 'less'\n | 'lequal'\n | 'greater'\n | 'gequal'\n | 'equal'\n | 'notequal';\n} = {\n [gl.NEVER]: 'never',\n [gl.ALWAYS]: 'always',\n [gl.LESS]: 'less',\n [gl.LEQUAL]: 'lequal',\n [gl.GREATER]: 'greater',\n [gl.GEQUAL]: 'gequal',\n [gl.EQUAL]: 'equal',\n [gl.NOTEQUAL]: 'notequal',\n};\n\nexport const blendEquationMap: {\n [key: string]: regl.BlendingEquation;\n} = {\n [gl.FUNC_ADD]: 'add',\n [gl.MIN_EXT]: 'min',\n [gl.MAX_EXT]: 'max',\n [gl.FUNC_SUBTRACT]: 'subtract',\n [gl.FUNC_REVERSE_SUBTRACT]: 'reverse subtract',\n};\n\nexport const blendFuncMap: {\n [key: string]: regl.BlendingFunction;\n} = {\n [gl.ZERO]: 'zero',\n [gl.ONE]: 'one',\n [gl.SRC_COLOR]: 'src color',\n [gl.ONE_MINUS_SRC_COLOR]: 'one minus src color',\n [gl.SRC_ALPHA]: 'src alpha',\n [gl.ONE_MINUS_SRC_ALPHA]: 'one minus src alpha',\n [gl.DST_COLOR]: 'dst color',\n [gl.ONE_MINUS_DST_COLOR]: 'one minus dst color',\n [gl.DST_ALPHA]: 'dst alpha',\n [gl.ONE_MINUS_DST_ALPHA]: 'one minus dst alpha',\n [gl.CONSTANT_COLOR]: 'constant color',\n [gl.ONE_MINUS_CONSTANT_COLOR]: 'one minus constant color',\n [gl.CONSTANT_ALPHA]: 'constant alpha',\n [gl.ONE_MINUS_CONSTANT_ALPHA]: 'one minus constant alpha',\n [gl.SRC_ALPHA_SATURATE]: 'src alpha saturate',\n};\n\nexport const stencilFuncMap: {\n [key: string]: regl.ComparisonOperatorType;\n} = {\n [gl.NEVER]: 'never',\n [gl.ALWAYS]: 'always',\n [gl.LESS]: 'less',\n [gl.LEQUAL]: 'lequal',\n [gl.GREATER]: 'greater',\n [gl.GEQUAL]: 'gequal',\n [gl.EQUAL]: 'equal',\n [gl.NOTEQUAL]: 'notequal',\n};\n\nexport const stencilOpMap: {\n [key: string]: regl.StencilOperationType;\n} = {\n [gl.ZERO]: 'zero',\n [gl.KEEP]: 'keep',\n [gl.REPLACE]: 'replace',\n [gl.INVERT]: 'invert',\n [gl.INCR]: 'increment',\n [gl.DECR]: 'decrement',\n [gl.INCR_WRAP]: 'increment wrap',\n [gl.DECR_WRAP]: 'decrement wrap',\n};\n\nexport const cullFaceMap: {\n [key: string]: regl.FaceOrientationType;\n} = {\n [gl.FRONT]: 'front',\n [gl.BACK]: 'back',\n};\n"],"file":"constants.js"}
|
package/lib/regl/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
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"}
|