@maptalks/gl
Advanced tools
| /*! | ||
| * @maptalks/gl v0.1.2 | ||
| * @maptalks/gl v0.1.4 | ||
| * LICENSE : UNLICENSED | ||
| * (c) 2016-2019 maptalks.org | ||
| */ | ||
| export{default as createREGL}from"regl";import*as e from"@maptalks/reshader.gl";export{e as reshader};export{glMatrix,mat2,mat2d,mat3,mat4,quat,quat2,vec2,vec3,vec4}from"gl-matrix";import{Layer as t,Util as r,renderer as s}from"maptalks";import{GLContext as n}from"@maptalks/fusiongl";export{GLContext}from"@maptalks/fusiongl";class a extends t{static fromJSON(e){if(!e||"GroupGLLayer"!==e.type)return null;const r=e.layers.map(e=>t.fromJSON(e));return new a(e.id,r,e.options)}constructor(e,t,r){super(e,r),this.layers=t||[],this._checkChildren(),this._layerMap={}}addLayer(e,t){if(e.getMap())throw new Error(`layer(${e.getId()} is already added on map`);void 0===t?this.layers.push(e):this.layers.splice(t,0,e),this._checkChildren();const r=this.getRenderer();return r?(this._prepareLayer(e),r.setToRedraw(),this):this}removeLayer(e){r.isString(e)&&(e=this.getChildLayer(e));const t=this.layers.indexOf(e);return t<0?this:(e._doRemove(),e.off("show hide",this._onLayerShowHide,this),delete this._layerMap[e.getId()],this.layers.splice(t,1),this.getRenderer().setToRedraw(),this)}getLayers(){return this.layers}toJSON(){return{type:this.getJSONType(),id:this.getId(),layers:this.layers.map(e=>e.toJSON()),options:this.config()}}onLoadEnd(){this.layers.forEach(e=>{this._prepareLayer(e)}),super.onLoadEnd()}_prepareLayer(e){const t=this.getMap();this._layerMap[e.getId()]=e,e._canvas=this.getRenderer().canvas,e._bindMap(t),e.once("renderercreate",this._onChildRendererCreate,this),e.load(),this._bindChildListeners(e)}onRemove(){this.layers.forEach(e=>{e._doRemove(),e.off("show hide",this._onLayerShowHide,this)}),delete this._layerMap,super.onRemove()}getChildLayer(e){return this._layerMap[e]||null}_bindChildListeners(e){e.on("show hide",this._onLayerShowHide,this)}_onLayerShowHide(){const e=this.getRenderer();e&&e.setToRedraw()}_onChildRendererCreate(e){e.renderer.clearCanvas=i}isVisible(){if(!super.isVisible())return!1;const e=this.layers;for(let t=0,r=e.length;t<r;t++)if(e[t].isVisible())return!0;return!1}_checkChildren(){const e={};this.layers.forEach(t=>{const r=t.getId();if(e[r])throw new Error(`Duplicate child layer id (${r}) in the GroupGLLayer (${this.getId()})`);e[r]=1})}}a.mergeOptions({renderer:"gl",extensions:["OES_texture_float","OES_texture_float_linear","OES_element_index_uint","OES_standard_derivatives"],optionalExtensions:["WEBGL_draw_buffers","EXT_shader_texture_lod"],forceRenderOnZooming:!0,forceRenderOnMoving:!0,forceRenderOnRotating:!0}),a.registerJSONType("GroupGLLayer");function i(){}a.registerRenderer("gl",class extends s.CanvasRenderer{onAdd(){super.onAdd(),this.prepareCanvas()}render(...e){this.getMap()&&this.layer.isVisible()&&(this.prepareRender(),this.prepareCanvas(),this.forEachRenderer((t,r)=>{if(!r.isVisible())return;const s=t.gl;s&&s instanceof n&&s.clear(s.STENCIL_BUFFER_BIT),t.render.apply(t,e)}),this._toRedraw=!1)}drawOnInteracting(...e){this.getMap()&&this.layer.isVisible()&&(this.forEachRenderer((t,r)=>{if(!r.isVisible())return;const s=t.gl;s&&s instanceof n&&s.clear(s.STENCIL_BUFFER_BIT),t.drawOnInteracting.apply(t,e)}),this._toRedraw=!1)}testIfNeedRedraw(){if(this._toRedraw)return this._toRedraw=!1,!0;const e=this.layer.getLayers();for(const t of e){const e=t.getRenderer();if(e&&e.testIfNeedRedraw())return!0}return!1}isRenderComplete(){const e=this.layer.getLayers();for(const t of e){const e=t.getRenderer();if(e&&!e.isRenderComplete())return!1}return!0}mustRenderOnInteracting(){const e=this.layer.getLayers();for(const t of e){const e=t.getRenderer();if(e&&e.mustRenderOnInteracting())return!0}return!1}isCanvasUpdated(){const e=this.layer.getLayers();for(const t of e){const e=t.getRenderer();if(e&&e.isCanvasUpdated())return!0}return!1}isBlank(){const e=this.layer.getLayers();for(const t of e){const e=t.getRenderer();if(e&&!e.isBlank())return!1}return!0}createContext(){const e=this.layer.options.glOptions||{alpha:!0,depth:!0,antialias:!0,stencil:!0};e.preserveDrawingBuffer=!0,this.glOptions=e;const t=this.gl=this._createGLContext(this.canvas,e);this._initGL(t),t.wrap=(()=>new n(this.gl)),this.glCtx=t.wrap(),this.canvas.gl=this.gl}_initGL(){const e=this.layer,t=this.gl,r=e.options.extensions;r&&r.forEach(e=>{t.getExtension(e)});const s=e.options.optionalExtensions;s&&s.forEach(e=>{t.getExtension(e)}),this.gl.clearColor(0,0,0,0)}clearCanvas(){super.clearCanvas();const e=this.glCtx;e.bindFramebuffer(e.FRAMEBUFFER,null),e.bindRenderbuffer(e.RENDERBUFFER,null),e.clear(e.COLOR_BUFFER_BIT|e.STENCIL_BUFFER_BIT|e.DEPTH_BUFFER_BIT)}resizeCanvas(){super.resizeCanvas(),this.gl.viewport(0,0,this.canvas.width,this.canvas.height),this.forEachRenderer(e=>{e.canvas&&e.resizeCanvas()})}getCanvasImage(){return this.forEachRenderer(e=>{e.getCanvasImage()}),super.getCanvasImage()}forEachRenderer(e){const t=this.layer.getLayers();for(const r of t){const t=r.getRenderer();t&&e(t,r)}}_createGLContext(e,t){const r=["webgl","experimental-webgl"];let s=null;for(let n=0;n<r.length;++n){try{s=e.getContext(r[n],t)}catch(e){}if(s)break}return s}}),a.registerRenderer("canvas",null),"undefined"!=typeof window&&window.maptalks&&(window.maptalks.GroupGLLayer=a);export{a as GroupGLLayer};"undefined"!=typeof console&&console.log("@maptalks/gl v0.1.2"); | ||
| export{default as createREGL}from"regl";import*as e from"@maptalks/reshader.gl";export{e as reshader};export{glMatrix,mat2,mat2d,mat3,mat4,quat,quat2,vec2,vec3,vec4}from"gl-matrix";import{Layer as t,Util as r,renderer as s}from"maptalks";import{GLContext as n}from"@maptalks/fusiongl";export{GLContext}from"@maptalks/fusiongl";class a extends t{static fromJSON(e){if(!e||"GroupGLLayer"!==e.type)return null;const r=e.layers.map(e=>t.fromJSON(e));return new a(e.id,r,e.options)}constructor(e,t,r){super(e,r),this.layers=t||[],this._checkChildren(),this._layerMap={}}addLayer(e,t){if(e.getMap())throw new Error(`layer(${e.getId()} is already added on map`);void 0===t?this.layers.push(e):this.layers.splice(t,0,e),this._checkChildren();const r=this.getRenderer();return r?(this._prepareLayer(e),r.setToRedraw(),this):this}removeLayer(e){r.isString(e)&&(e=this.getChildLayer(e));const t=this.layers.indexOf(e);return t<0?this:(e._doRemove(),e.off("show hide",this._onLayerShowHide,this),delete this._layerMap[e.getId()],this.layers.splice(t,1),this.getRenderer().setToRedraw(),this)}getLayers(){return this.layers}toJSON(){return{type:this.getJSONType(),id:this.getId(),layers:this.layers.map(e=>e.toJSON()),options:this.config()}}onLoadEnd(){this.layers.forEach(e=>{this._prepareLayer(e)}),super.onLoadEnd()}_prepareLayer(e){const t=this.getMap();this._layerMap[e.getId()]=e,e._canvas=this.getRenderer().canvas,e._bindMap(t),e.once("renderercreate",this._onChildRendererCreate,this),e.load(),this._bindChildListeners(e)}onRemove(){this.layers.forEach(e=>{e._doRemove(),e.off("show hide",this._onLayerShowHide,this)}),delete this._layerMap,super.onRemove()}getChildLayer(e){return this._layerMap[e]||null}_bindChildListeners(e){e.on("show hide",this._onLayerShowHide,this)}_onLayerShowHide(){const e=this.getRenderer();e&&e.setToRedraw()}_onChildRendererCreate(e){e.renderer.clearCanvas=i}isVisible(){if(!super.isVisible())return!1;const e=this.layers;for(let t=0,r=e.length;t<r;t++)if(e[t].isVisible())return!0;return!1}_checkChildren(){const e={};this.layers.forEach(t=>{const r=t.getId();if(e[r])throw new Error(`Duplicate child layer id (${r}) in the GroupGLLayer (${this.getId()})`);e[r]=1})}}a.mergeOptions({renderer:"gl",extensions:["OES_texture_float","OES_texture_float_linear","OES_element_index_uint","OES_standard_derivatives"],optionalExtensions:["WEBGL_draw_buffers","EXT_shader_texture_lod"],forceRenderOnZooming:!0,forceRenderOnMoving:!0,forceRenderOnRotating:!0}),a.registerJSONType("GroupGLLayer");function i(){}a.registerRenderer("gl",class extends s.CanvasRenderer{onAdd(){super.onAdd(),this.prepareCanvas()}render(...e){this.getMap()&&this.layer.isVisible()&&(this.prepareRender(),this.prepareCanvas(),this.forEachRenderer((t,r)=>{if(!r.isVisible())return;const s=t.gl;s&&s instanceof n&&s.clear(s.STENCIL_BUFFER_BIT),t.render.apply(t,e)}),this._toRedraw=!1)}drawOnInteracting(...e){this.getMap()&&this.layer.isVisible()&&(this.forEachRenderer((t,r)=>{if(!r.isVisible())return;const s=t.gl;s&&s instanceof n&&s.clear(s.STENCIL_BUFFER_BIT),t.drawOnInteracting.apply(t,e)}),this._toRedraw=!1)}testIfNeedRedraw(){if(this._toRedraw)return this._toRedraw=!1,!0;const e=this.layer.getLayers();for(const t of e){const e=t.getRenderer();if(e&&e.testIfNeedRedraw())return!0}return!1}isRenderComplete(){const e=this.layer.getLayers();for(const t of e){const e=t.getRenderer();if(e&&!e.isRenderComplete())return!1}return!0}mustRenderOnInteracting(){const e=this.layer.getLayers();for(const t of e){const e=t.getRenderer();if(e&&e.mustRenderOnInteracting())return!0}return!1}isCanvasUpdated(){const e=this.layer.getLayers();for(const t of e){const e=t.getRenderer();if(e&&e.isCanvasUpdated())return!0}return!1}isBlank(){const e=this.layer.getLayers();for(const t of e){const e=t.getRenderer();if(e&&!e.isBlank())return!1}return!0}createContext(){const e=this.layer.options.glOptions||{alpha:!0,depth:!0,antialias:!0,stencil:!0};e.preserveDrawingBuffer=!0,this.glOptions=e;const t=this.gl=this._createGLContext(this.canvas,e);this._initGL(t),t.wrap=(()=>new n(this.gl)),this.glCtx=t.wrap(),this.canvas.gl=this.gl}_initGL(){const e=this.layer,t=this.gl,r=e.options.extensions;r&&r.forEach(e=>{t.getExtension(e)});const s=e.options.optionalExtensions;s&&s.forEach(e=>{t.getExtension(e)}),this.gl.clearColor(0,0,0,0)}clearCanvas(){super.clearCanvas();const e=this.glCtx;e.bindFramebuffer(e.FRAMEBUFFER,null),e.bindRenderbuffer(e.RENDERBUFFER,null),e.clear(e.COLOR_BUFFER_BIT|e.STENCIL_BUFFER_BIT|e.DEPTH_BUFFER_BIT)}resizeCanvas(){super.resizeCanvas(),this.gl.viewport(0,0,this.canvas.width,this.canvas.height),this.forEachRenderer(e=>{e.canvas&&e.resizeCanvas()})}getCanvasImage(){return this.forEachRenderer(e=>{e.getCanvasImage()}),super.getCanvasImage()}forEachRenderer(e){const t=this.layer.getLayers();for(const r of t){const t=r.getRenderer();t&&e(t,r)}}_createGLContext(e,t){const r=["webgl","experimental-webgl"];let s=null;for(let n=0;n<r.length;++n){try{s=e.getContext(r[n],t)}catch(e){}if(s)break}return s}}),a.registerRenderer("canvas",null),"undefined"!=typeof window&&window.maptalks&&(window.maptalks.GroupGLLayer=a);export{a as GroupGLLayer};"undefined"!=typeof console&&console.log("@maptalks/gl v0.1.4"); |
+7
-7
| { | ||
| "name": "@maptalks/gl", | ||
| "version": "0.1.2", | ||
| "version": "0.1.4", | ||
| "description": "WebGL infrastrcture for maptalks", | ||
@@ -10,5 +10,5 @@ "main": "dist/maptalksgl.js", | ||
| "scripts": { | ||
| "build": "npm run lint && rollup --environment BUILD:production -c rollup.config.js", | ||
| "build-dev": "rollup -c rollup.config.js", | ||
| "dev": "rollup -w -c rollup.config.js", | ||
| "build": "npm run lint && cd ../reshader.gl && npm run build && cd ../gl && rollup --environment BUILD:production -c rollup.config.js", | ||
| "build-dev": "cd ../reshader.gl && npm run build-dev && cd ../gl && rollup -c rollup.config.js", | ||
| "dev": "cd ../reshader.gl && npm run build-dev && cd ../gl && rollup -w -c rollup.config.js", | ||
| "test": "echo \"Error: no test specified\" && exit 1", | ||
@@ -30,4 +30,4 @@ "prepare": "npm run build", | ||
| "dependencies": { | ||
| "@maptalks/reshader.gl": "^0.1.0", | ||
| "@maptalks/fusiongl": "^0.1.0", | ||
| "@maptalks/reshader.gl": "^0.1.4", | ||
| "gl-matrix": "^2.6.1", | ||
@@ -46,5 +46,5 @@ "regl": "^1.3.1" | ||
| "rollup-plugin-node-resolve": "^4.0.0", | ||
| "rollup-plugin-uglify": "^4.0.0", | ||
| "rollup-plugin-terser": "^4.0.1" | ||
| "rollup-plugin-terser": "^4.0.1", | ||
| "rollup-plugin-uglify": "^4.0.0" | ||
| } | ||
| } |
Sorry, the diff of this file is too big to display
Explicitly Unlicensed Item
LicenseSomething was found which is explicitly marked as unlicensed.
Explicitly Unlicensed Item
LicenseSomething was found which is explicitly marked as unlicensed.
266066
0.06%Updated