UNPKG

deck.gl

Version:

A suite of 3D-enabled data visualization overlays, suitable for react-map-gl

1 lines 706 kB
!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var n=t();for(var i in n)("object"==typeof exports?exports:e)[i]=n[i]}}(window,function(){return function(e){var t={};function n(i){if(t[i])return t[i].exports;var r=t[i]={i:i,l:!1,exports:{}};return e[i].call(r.exports,r,r.exports,n),r.l=!0,r.exports}return n.m=e,n.c=t,n.d=function(e,t,i){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:i})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var i=Object.create(null);if(n.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)n.d(i,r,function(t){return e[t]}.bind(null,r));return i},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=93)}([function(e,t,n){"use strict";function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}n.d(t,"a",function(){return i})},function(e,t,n){"use strict";function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}n.d(t,"a",function(){return i})},function(e,t,n){"use strict";function i(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}function r(e,t,n){return t&&i(e.prototype,t),n&&i(e,n),e}n.d(t,"a",function(){return r})},function(e,t,n){"use strict";function i(e,t){if(!e)throw new Error(t||"luma.gl: assertion failed.")}n.d(t,"a",function(){return i})},function(e,t,n){"use strict";var i=n(53),r=n(18);function o(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=r.b.navigator||{},n=e.userAgent||t.userAgent||"",i=-1!==n.indexOf("MSIE "),o=-1!==n.indexOf("Trident/");return i||o}var a=n(3),s={};function c(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"id";s[e]=s[e]||1;var t=s[e]++;return"".concat(e,"-").concat(t)}function u(e){return Object(a.a)("number"==typeof e,"Input must be a number"),e&&0==(e&e-1)}function l(e){var t=!0;for(var n in e){t=!1;break}return t}var h=n(29);function f(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.isInteger,i=void 0!==n&&n;if(Array.isArray(e)||ArrayBuffer.isView(e))return function(e,t){for(var n=t.maxElts,i=void 0===n?16:n,r=t.size,o=void 0===r?1:r,a="[",s=0;s<e.length&&s<i;++s)s>0&&(a+=",".concat(s%o==0?" ":"")),a+=f(e[s],t);var c=e.length>i?"...":"]";return"".concat(a).concat(c)}(e,t);if(!Number.isFinite(e))return String(e);if(Math.abs(e)<1e-16)return i?"0":"0.";if(i)return e.toFixed(0);if(Math.abs(e)>100&&Math.abs(e)<1e4)return e.toFixed(0);var r=e.toPrecision(2);return r.indexOf(".0")===r.length-2?r.slice(0,-1):r}function d(e,t,n,i){var r="See luma.gl ".concat(n," Upgrade Guide at http://uber.github.io/luma.gl/#/documentation/overview/upgrade-guide"),o=Object.getPrototypeOf(e);i.forEach(function(e){o.methodName||(o[e]=function(){throw h.a.removed("Calling removed method ".concat(t,".").concat(e,": "),r),new Error(e)})})}n.d(t,"c",function(){return i.a}),n.d(t,"e",function(){return o}),n.d(t,"i",function(){return c}),n.d(t,"f",function(){return u}),n.d(t,"d",function(){return l}),n.d(t,"g",function(){return h.a}),n.d(t,"b",function(){return f}),n.d(t,"a",function(){return a.a}),n.d(t,"h",function(){return d})},function(e,t,n){"use strict";n.r(t);var i=n(44),r=n(24),o=n(6),a=n(23),s="Failed to create WebGL context in Node.js, headless gl not available",c="Failed to create WebGL context in Node.js, headless gl returned null";var u,l=n(4),h=l.c&&"undefined"!=typeof document,f=h&&"complete"===document.readyState;function d(){return u||(u=h?new Promise(function(e,t){if(h&&"complete"===document.readyState)return f=!0,void e(document);window.onload=function(){f=!0,e(document)}}):Promise.resolve({})),u}function g(e){var t,n=e.canvas,i=e.width,r=e.height,o=e.onError,a=void 0===o?function(){}:o;return"string"==typeof n?(f||a("createGLContext called on canvas '".concat(n,"' before page was loaded")),t=document.getElementById(n)):t=n||function(e){var t=e.width,n=void 0===t?800:t,i=e.height,r=void 0===i?600:i,o=e.id,a=void 0===o?"gl-canvas":o,s=e.insert,c=void 0===s||s,u=document.createElement("canvas");if(u.id=a,u.style.width=Number.isFinite(n)?"".concat(n,"px"):"100%",u.style.height=Number.isFinite(r)?"".concat(r,"px"):"100%",c){var l=document.body;l.insertBefore(u,l.firstChild)}return u}({id:"lumagl-canvas",width:i,height:r,onError:a}),t}var p=n(45),v=n(1),m=n(18);function _(e){return e.luma=e.luma||{},e.luma}function b(e){var t=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).debug;return null===e?null:void 0===t||t?function(e){if(null===e)return null;if(!m.a.WebGLDebug)return l.g.warn('WebGL debug mode not activated. import "luma.gl/debug" to enable.')(),e;var t=_(e);if(t.realContext)return e;if(t.debugContext)return t.debugContext;var n=m.a.WebGLDebug.makeDebugContext(e,E,x);return Object.assign(function e(){Object(v.a)(this,e)}.prototype,n),t.debugContext=n,n.debug=!0,n.gl=e,l.g.info("debug context actived."),n}(e):function(e){if(null===e)return null;var t=_(e);return t.realContext?t.realContext:e}(e)}function y(e,t){var n=m.a.WebGLDebug.glFunctionArgsToString(e,t);return n="".concat(n.slice(0,100)).concat(n.length>100?"...":""),"gl.".concat(e,"(").concat(n,")")}function E(e,t,n){var i=m.a.WebGLDebug.glEnumToString(e),r=m.a.WebGLDebug.glFunctionArgsToString(t,n),o="".concat(i," in gl.").concat(t,"(").concat(r,")");if(l.g.throw)throw new Error(o);l.g.error(o)()}function x(e,t){var n;if(l.g.priority>=4&&(n=y(e,t),l.g.log(4,n)()),l.g.break){n=n||y(e,t);l.g.break&&l.g.break.every(function(e){return-1!==n.indexOf(e)})}var i=!0,r=!1,o=void 0;try{for(var a,s=t[Symbol.iterator]();!(i=(a=s.next()).done);i=!0){if(void 0===a.value){if(n=n||y(e,t),l.g.throw)throw new Error("Undefined argument: ".concat(n));l.g.error("Undefined argument: ".concat(n))}}}catch(e){r=!0,o=e}finally{try{i||null==s.return||s.return()}finally{if(r)throw o}}}var w,O=n(0),S=(w={},Object(O.a)(w,33902,{gl1:new Float32Array([1,1])}),Object(O.a)(w,33901,{gl1:new Float32Array([1,1])}),Object(O.a)(w,3379,{gl1:64,gl2:2048}),Object(O.a)(w,34076,{gl1:16}),Object(O.a)(w,34930,{gl1:8}),Object(O.a)(w,35661,{gl1:8}),Object(O.a)(w,35660,{gl1:0}),Object(O.a)(w,34024,{gl1:1}),Object(O.a)(w,36348,{gl1:8}),Object(O.a)(w,34921,{gl1:8}),Object(O.a)(w,36347,{gl1:128}),Object(O.a)(w,36349,{gl1:16}),Object(O.a)(w,3386,{gl1:new Int32Array([0,0])}),Object(O.a)(w,32883,{gl1:0,gl2:256}),Object(O.a)(w,35071,{gl1:0,gl2:256}),Object(O.a)(w,37447,{gl1:0,gl2:0}),Object(O.a)(w,36063,{gl1:0,gl2:4}),Object(O.a)(w,35379,{gl1:0,gl2:0}),Object(O.a)(w,35374,{gl1:0,gl2:0}),Object(O.a)(w,35377,{gl1:0,gl2:0}),Object(O.a)(w,34852,{gl1:0,gl2:4}),Object(O.a)(w,36203,{gl1:0,gl2:0}),Object(O.a)(w,33001,{gl1:0,gl2:0}),Object(O.a)(w,33e3,{gl1:0,gl2:0}),Object(O.a)(w,37157,{gl1:0,gl2:0}),Object(O.a)(w,35373,{gl1:0,gl2:0}),Object(O.a)(w,35657,{gl1:0,gl2:0}),Object(O.a)(w,36183,{gl1:0,gl2:0}),Object(O.a)(w,37137,{gl1:0,gl2:0}),Object(O.a)(w,34045,{gl1:0,gl2:0}),Object(O.a)(w,35978,{gl1:0,gl2:0}),Object(O.a)(w,35979,{gl1:0,gl2:0}),Object(O.a)(w,35968,{gl1:0,gl2:0}),Object(O.a)(w,35376,{gl1:0,gl2:0}),Object(O.a)(w,35375,{gl1:0,gl2:0}),Object(O.a)(w,35659,{gl1:0,gl2:0}),Object(O.a)(w,37154,{gl1:0,gl2:0}),Object(O.a)(w,35371,{gl1:0,gl2:0}),Object(O.a)(w,35658,{gl1:0,gl2:0}),Object(O.a)(w,35076,{gl1:0,gl2:-8,negative:!0}),Object(O.a)(w,35077,{gl1:0,gl2:7}),Object(O.a)(w,35380,{gl1:0,gl2:0}),w);function P(e){if(e.luma=e.luma||{},!e.luma.limits){e.luma.limits={},e.luma.webgl1MinLimits={},e.luma.webgl2MinLimits={};var t=Object(o.n)(e);for(var n in S){var i=S[n],r=i.gl1,a="gl2"in i?i.gl2:i.gl1,s=t?a:r,c="gl2"in i&&!t||"extension"in i&&!e.getExtension(i.extension)?s:e.getParameter(n);e.luma.limits[n]=c,e.luma.webgl1MinLimits[n]=r,e.luma.webgl2MinLimits[n]=a}}return e.luma.limits}function A(e){if(e.luma=e.luma||{},!e.luma.info){var t,n=e.getExtension("WEBGL_debug_renderer_info");e.luma.info=(t={},Object(O.a)(t,7936,e.getParameter(7936)),Object(O.a)(t,7937,e.getParameter(7937)),Object(O.a)(t,37445,e.getParameter(n&&n.UNMASKED_VENDOR_WEBGL||7936)),Object(O.a)(t,37446,e.getParameter(n&&n.UNMASKED_RENDERER_WEBGL||7937)),Object(O.a)(t,7938,e.getParameter(7938)),Object(O.a)(t,35724,e.getParameter(35724)),t)}return e.luma.info}var T=37445,C=37446;function j(e){var t=P(e),n=A(e);return{vendor:n[T]||n[7936],renderer:n[C]||n[7937],version:n[7938],shadingLanguageVersion:n[35724],info:n,limits:t,webgl1MinLimits:e.luma.webgl1MinLimits,webgl2MinLimits:e.luma.webgl2MinLimits}}function M(e){return function(e){var t=e.getParameter(7936),n=e.getParameter(7937),i=e.getExtension("WEBGL_debug_renderer_info"),r=i&&e.getParameter(i.UNMASKED_VENDOR_WEBGL||7936),o=i&&e.getParameter(i.UNMASKED_RENDERER_WEBGL||7937);return{vendor:r||t,renderer:o||n,vendorMasked:t,rendererMasked:n,version:e.getParameter(7938),shadingLanguageVersion:e.getParameter(35724)}}(e)}var R=n(2),L=function(e){return e},I=new(function(){function e(){Object(v.a)(this,e),this.pendingQueries=new Set,this.invalidQueryType=null,this.invalidErrorMessage="",this.checkInvalid=function(){return!1}}return Object(R.a)(e,[{key:"poll",value:function(e){this.cancelInvalidQueries(e);var t=!0,n=!1,i=void 0;try{for(var r,o=this.pendingQueries.values()[Symbol.iterator]();!(t=(r=o.next()).done);t=!0){var a=r.value;if(a.isResultAvailable()){var s=a.getResult();this.resolveQuery(a,s)}}}catch(e){n=!0,i=e}finally{try{t||null==o.return||o.return()}finally{if(n)throw i}}}},{key:"setInvalidator",value:function(e){var t=e.queryType,n=e.errorMessage,i=e.checkInvalid;this.invalidQueryType=t,this.invalidErrorMessage=n,this.checkInvalid=i}},{key:"beginQuery",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:L,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:L;this.cancelInvalidQueries(e.gl),this.cancelQuery(e);var i={};return e.promise=new Promise(function(e,t){i.resolve=e,i.reject=t}),Object.assign(e.promise,i),this.pendingQueries.add(e),e.promise.then(t).catch(n)}},{key:"resolveQuery",value:function(e,t){this.pendingQueries.delete(e),e.promise.resolve(t)}},{key:"rejectQuery",value:function(e,t){this.pendingQueries.delete(e),e.promise&&e.promise.reject(new Error(t))}},{key:"deleteQuery",value:function(e){return this.rejectQuery(e,"Query was deleted before result was available")}},{key:"cancelQuery",value:function(e){return this.rejectQuery(e,"Query was canceled before result was available")}},{key:"invalidateQuery",value:function(e){e instanceof this.invalidQueryType&&this.rejectQuery(e,this.invalidErrorMessage)}},{key:"cancelInvalidQueries",value:function(e){if(this.checkInvalid(e)){var t=!0,n=!1,i=void 0;try{for(var r,o=this.pendingQueries.values()[Symbol.iterator]();!(t=(r=o.next()).done);t=!0){var a=r.value;this.invalidateQuery(a)}}catch(e){n=!0,i=e}finally{try{t||null==o.return||o.return()}finally{if(n)throw i}}}}}]),e}()),k=n(3),F=34962,N=32874;function D(e){return Boolean(e&&(e instanceof o.c||e.ARRAY_BUFFER===F))}function B(e){return Boolean(e&&(e instanceof o.a||e.TEXTURE_BINDING_3D===N))}var U={webgl2:!0,webgl1:!0,throwOnFailure:!0,manageState:!0,canvas:null,debug:!1,width:800,height:600};function z(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};Object.assign(U,{width:1,height:1},e)}function V(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=t=Object.assign({},U,t),i=n.canvas,r=n.width,o=n.height,u=n.throwOnError,h=n.manageState,f=n.debug;function d(e){if(u)throw new Error(e);return null}l.c?e=function(e){var t=e.canvas,n=e.opts,i=void 0===n?{}:n,r=e.onError,o=void 0===r?function(e){return null}:r;function a(e){o("WebGL context: ".concat(e.statusMessage||"Unknown error"))}t.addEventListener("webglcontextcreationerror",a,!1);var s=i.webgl1,c=void 0===s||s,u=i.webgl2,l=void 0===u||u,h=null;return l&&(h=(h=h||t.getContext("webgl2",i))||t.getContext("experimental-webgl2",i)),c&&(h=(h=h||t.getContext("webgl",i))||t.getContext("experimental-webgl",i)),t.removeEventListener("webglcontextcreationerror",a,!1),h||o("Failed to create ".concat(l&&!c?"WebGL2":"WebGL"," context"))}({canvas:g({canvas:i,width:r,height:o,onError:d}),opts:t}):e=function(e){var t=e.width,n=e.height,i=e.opts,r=e.onError,o=i.webgl1;if(i.webgl2&&!o)return r("headless-gl does not support WebGL2");if(!a.d)return r(s);var u=Object(a.d)(t,n,i);return u||r(c)}({width:r,height:o,opts:t,onError:d});return e?(h&&Object(p.a)(e,{copyState:!1,log:function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return l.g.log.apply(l.g,[1].concat(t))()}}),l.c&&f&&(e=b(e,{debug:f}),l.g.priority=Math.max(l.g.priority,1)),function(e){var t=B(e)?"WebGL2":"WebGL1",n=M(e),i=n?"(".concat(n.vendor,",").concat(n.renderer,")"):"",r=e.debug?" debug":"";l.g.once(0,"".concat(t).concat(r," context ").concat(i))()}(e),e):null}function G(e){var t=e.getExtension("STACKGL_destroy_context");t&&t.destroy()}function W(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(e.canvas){var n=t.useDevicePixels&&window.devicePixelRatio||1,i="width"in t?t.width:e.canvas.clientWidth,r="height"in t?t.height:e.canvas.clientHeight;return e.canvas.width=i*n,void(e.canvas.height=r*n)}var o=e.getExtension("STACKGL_resize_drawingbuffer");o&&"width"in t&&"height"in t&&o.resize(t.width,t.height)}function H(e){I.poll(e)}var X=n(17),Y={VERTEX_ARRAY_OBJECT:["OES_vertex_array_object",!0],TIMER_QUERY:["EXT_disjoint_timer_query","EXT_disjoint_timer_query_webgl2"],INSTANCED_RENDERING:["ANGLE_instanced_arrays",!0],MULTIPLE_RENDER_TARGETS:["WEBGL_draw_buffers",!0],ELEMENT_INDEX_UINT32:["OES_element_index_uint",!0],BLEND_EQUATION_MINMAX:["EXT_blend_minmax",!0],COLOR_ENCODING_SRGB:["EXT_sRGB",!0],TEXTURE_DEPTH:["WEBGL_depth_texture",!0],TEXTURE_FLOAT:["OES_texture_float",!0],TEXTURE_HALF_FLOAT:["OES_texture_half_float",!0],TEXTURE_FILTER_LINEAR_FLOAT:["OES_texture_float_linear"],TEXTURE_FILTER_LINEAR_HALF_FLOAT:["OES_texture_half_float_linear"],TEXTURE_FILTER_ANISOTROPIC:["EXT_texture_filter_anisotropic"],COLOR_ATTACHMENT_RGBA32F:["WEBGL_color_buffer_float","EXT_color_buffer_float"],COLOR_ATTACHMENT_FLOAT:[!1,"EXT_color_buffer_float"],COLOR_ATTACHMENT_HALF_FLOAT:[!1,"EXT_color_buffer_half_float"],GLSL_FRAG_DATA:["WEBGL_draw_buffers",!0],GLSL_FRAG_DEPTH:["EXT_frag_depth",!0],GLSL_DERIVATIVES:["OES_standard_derivatives",!0],GLSL_TEXTURE_LOD:["EXT_shader_texture_lod",!0]},q={};Object.keys(Y).forEach(function(e){q[e]=e});var Z={};function K(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=Y[t];if(Object(k.a)(i,t),!Object(l.e)(n))return!0;if(t in Z)return Z[t];var r=i[0],o="#extension GL_".concat(r," : enable\nvoid main(void) {}"),a=e.createShader(35633);e.shaderSource(a,o),e.compileShader(a);var s=e.getShaderParameter(a,35713);return e.deleteShader(a),Z[t]=s,s}function $(e,t){var n=Y[t];Object(k.a)(n,t);var i=Object(o.n)(e)&&n[1]||n[0],r="string"==typeof i?Boolean(e.getExtension(i)):i;return Object(k.a)(!1===r||!0===r),r}function Q(e,t){return J(e,t)}function J(e,t){return(t=Array.isArray(t)?t:[t]).every(function(t){return $(e,t)})}function ee(e){if(e.luma=e.luma||{},!e.luma.caps)for(var t in e.luma.caps={},e.luma.caps.webgl2=Object(o.n)(e),Y)e.luma.caps[t]=$(e,t);return e.luma.caps}var te=n(15),ne=n(9),ie=n(7),re=n(10),oe=n(21),ae="Shader: GLSL source code must be a JavaScript string",se=35632,ce=35633,ue=function(e){function t(e,n){var i;Object(v.a)(this,t),Object(o.e)(e),Object(k.a)("string"==typeof n.source,ae);var r=Object(o.k)(n.source,null)||n.id||Object(l.i)("unnamed ".concat(t.getTypeName(n.shaderType)));return(i=Object(ne.a)(this,Object(ie.a)(t).call(this,e,{id:r}))).shaderType=n.shaderType,i.source=n.source,i.initialize(n),i}return Object(re.a)(t,e),Object(R.a)(t,null,[{key:"getTypeName",value:function(e){switch(e){case ce:return"vertex-shader";case se:return"fragment-shader";default:return Object(k.a)(!1),"unknown"}}}]),Object(R.a)(t,[{key:"initialize",value:function(e){var t=e.source,n=Object(o.k)(t,null);n&&(this.id=Object(l.i)(n)),this._compile(t)}},{key:"getParameter",value:function(e){return this.gl.getShaderParameter(this.handle,e)}},{key:"toString",value:function(){return"".concat(this.getTypeName(this.shaderType),":").concat(this.id)}},{key:"getName",value:function(){return Object(o.k)(this.source)||"unnamed-shader"}},{key:"getSource",value:function(){return this.gl.getShaderSource(this.handle)}},{key:"getTranslatedSource",value:function(){var e=this.gl.getExtension("WEBGL_debug_shaders");return e?e.getTranslatedShaderSource(this.handle):"No translated source available. WEBGL_debug_shaders not implemented"}},{key:"_compile",value:function(){if(this.gl.shaderSource(this.handle,this.source),this.gl.compileShader(this.handle),!this.getParameter(35713)){var e=this.gl.getShaderInfoLog(this.handle),t=Object(o.o)(e,this.source,this.shaderType,this.id),n=t.shaderName,i=t.errors,r=t.warnings;throw l.g.error("GLSL compilation errors in ".concat(n,"\n").concat(i))(),l.g.warn("GLSL compilation warnings in ".concat(n,"\n").concat(r))(),new Error("GLSL compilation errors in ".concat(n))}}},{key:"_deleteHandle",value:function(){this.gl.deleteShader(this.handle)}},{key:"_getOptsFromHandle",value:function(){return{type:this.getParameter(35663),source:this.getSource()}}}]),t}(oe.a),le=function(e){function t(e,n){return Object(v.a)(this,t),"string"==typeof n&&(l.g.deprecated("new FragmentShader(gl, source)","new FragmentShader(gl, {source})","6.1"),n={source:n}),Object(ne.a)(this,Object(ie.a)(t).call(this,e,Object.assign({},n,{shaderType:ce})))}return Object(re.a)(t,e),Object(R.a)(t,[{key:"_createHandle",value:function(){return this.gl.createShader(ce)}}]),t}(ue),he=function(e){function t(e,n){return Object(v.a)(this,t),"string"==typeof n&&(l.g.deprecated("new FragmentShader(gl, source)","new FragmentShader(gl, {source})","6.1"),n={source:n}),Object(ne.a)(this,Object(ie.a)(t).call(this,e,Object.assign({},n,{shaderType:se})))}return Object(re.a)(t,e),Object(R.a)(t,[{key:"_createHandle",value:function(){return this.gl.createShader(se)}}]),t}(ue);function fe(e,t,n){return(fe="undefined"!=typeof Reflect&&Reflect.get?Reflect.get:function(e,t,n){var i=function(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&null!==(e=Object(ie.a)(e)););return e}(e,t);if(i){var r=Object.getOwnPropertyDescriptor(i,t);return r.get?r.get.call(n):r.value}})(e,t,n||e)}var de,ge=n(13),pe=n(31),ve=n(12),me=n(37),_e="EXT_color_buffer_float",be=(de={},Object(O.a)(de,33189,{}),Object(O.a)(de,33190,{gl2:!0}),Object(O.a)(de,36012,{gl2:!0}),Object(O.a)(de,36168,{}),Object(O.a)(de,34041,{}),Object(O.a)(de,35056,{gl2:!0}),Object(O.a)(de,36013,{gl2:!0}),Object(O.a)(de,32854,{}),Object(O.a)(de,36194,{}),Object(O.a)(de,32855,{}),Object(O.a)(de,33321,{gl2:!0}),Object(O.a)(de,33330,{gl2:!0}),Object(O.a)(de,33329,{gl2:!0}),Object(O.a)(de,33332,{gl2:!0}),Object(O.a)(de,33331,{gl2:!0}),Object(O.a)(de,33334,{gl2:!0}),Object(O.a)(de,33333,{gl2:!0}),Object(O.a)(de,33323,{gl2:!0}),Object(O.a)(de,33336,{gl2:!0}),Object(O.a)(de,33335,{gl2:!0}),Object(O.a)(de,33338,{gl2:!0}),Object(O.a)(de,33337,{gl2:!0}),Object(O.a)(de,33340,{gl2:!0}),Object(O.a)(de,33339,{gl2:!0}),Object(O.a)(de,32849,{gl2:!0}),Object(O.a)(de,32856,{gl2:!0}),Object(O.a)(de,32857,{gl2:!0}),Object(O.a)(de,36220,{gl2:!0}),Object(O.a)(de,36238,{gl2:!0}),Object(O.a)(de,36975,{gl2:!0}),Object(O.a)(de,36214,{gl2:!0}),Object(O.a)(de,36232,{gl2:!0}),Object(O.a)(de,36226,{gl2:!0}),Object(O.a)(de,36208,{gl2:!0}),Object(O.a)(de,33325,{gl2:_e}),Object(O.a)(de,33327,{gl2:_e}),Object(O.a)(de,34842,{gl2:_e}),Object(O.a)(de,33326,{gl2:_e}),Object(O.a)(de,33328,{gl2:_e}),Object(O.a)(de,34836,{gl2:_e}),Object(O.a)(de,35898,{gl2:_e}),de);var ye=function(e){function t(e){var n,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return Object(v.a)(this,t),(n=Object(ne.a)(this,Object(ie.a)(t).call(this,e,i))).initialize(i),Object.seal(Object(ge.a)(Object(ge.a)(n))),n}return Object(re.a)(t,e),Object(R.a)(t,null,[{key:"isSupported",value:function(e){var t=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).format;return!t||function(e,t,n){var i=n[t];if(!i)return!1;var r=Object(o.n)(e)&&i.gl2||i.gl1;return"string"==typeof r?e.getExtension(r):r}(e,t,be)}},{key:"getSamplesForFormat",value:function(e,t){var n=t.format;return e.getInternalformatParameter(36161,n,32937)}}]),Object(R.a)(t,[{key:"initialize",value:function(e){var t=e.format,n=e.width,i=void 0===n?1:n,r=e.height,a=void 0===r?1:r,s=e.samples,c=void 0===s?0:s;return Object(k.a)(t,"Needs format"),this.gl.bindRenderbuffer(36161,this.handle),0!==c&&Object(o.n)(this.gl)?this.gl.renderbufferStorageMultisample(36161,c,t,i,a):this.gl.renderbufferStorage(36161,t,i,a),this.format=t,this.width=i,this.height=a,this.samples=c,this}},{key:"resize",value:function(e){var t=e.width,n=e.height;return t!==this.width||n!==this.height?this.initialize({width:t,height:n,format:this.format,samples:this.samples}):this}},{key:"_createHandle",value:function(){return this.gl.createRenderbuffer()}},{key:"_deleteHandle",value:function(){this.gl.deleteRenderbuffer(this.handle)}},{key:"_bindHandle",value:function(e){this.gl.bindRenderbuffer(36161,e)}},{key:"_syncHandle",value:function(e){this.format=this.getParameter(36164),this.width=this.getParameter(36162),this.height=this.getParameter(36163),this.samples=this.getParameter(36011)}},{key:"_getParameter",value:function(e){return this.gl.bindRenderbuffer(36161,this.handle),this.gl.getRenderbufferParameter(36161,e)}}]),t}(oe.a),Ee=256,xe=1024,we=16384,Oe=6144,Se=6145,Pe=6146,Ae=34041,Te="clear: bad arguments";function Ce(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.framebuffer,i=void 0===n?null:n,r=t.color,o=void 0===r?null:r,a=t.depth,s=void 0===a?null:a,c=t.stencil,u=void 0===c?null:c,l={};i&&(l.framebuffer=i);var h=0;o&&(h|=we,!0!==o&&(l.clearColor=o)),s&&(h|=Ee,!0!==s&&(l.clearDepth=s)),u&&(h|=xe,!0!==s&&(l.clearStencil=s)),Object(k.a)(0!==h,Te),Object(X.g)(e,l,function(){e.clear(h)})}function je(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.framebuffer,i=void 0===n?null:n,r=t.buffer,a=void 0===r?Oe:r,s=t.drawBuffer,c=void 0===s?0:s,u=t.value,l=void 0===u?[0,0,0,0]:u;Object(o.d)(e),Object(X.g)(e,{framebuffer:i},function(){switch(a){case Oe:switch(l.constructor){case Int32Array:e.clearBufferiv(a,c,l);break;case Uint32Array:e.clearBufferuiv(a,c,l);break;case Float32Array:default:e.clearBufferfv(a,c,l)}break;case Se:e.clearBufferfv(Se,0,[l]);break;case Pe:e.clearBufferiv(Pe,0,[l]);break;case Ae:var t=Object(ve.a)(l,2),n=t[0],i=t[1];e.clearBufferfi(Ae,0,n,i);break;default:Object(k.a)(!1,Te)}})}var Me=n(26);function Re(e){switch(e){case 6406:case 33326:case 6403:return 1;case 33328:case 33319:return 2;case 6407:case 34837:return 3;case 6408:case 34836:return 4;default:return Object(k.a)(!1),0}}var Le=function(e){function t(e){var n,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return Object(v.a)(this,t),(n=Object(ne.a)(this,Object(ie.a)(t).call(this,e,i))).width=null,n.height=null,n.attachments={},n.readBuffer=36064,n.drawBuffers=[36064],n.initialize(i),Object.seal(Object(ge.a)(Object(ge.a)(n))),n}return Object(re.a)(t,e),Object(R.a)(t,[{key:"MAX_COLOR_ATTACHMENTS",get:function(){return this.gl.getParameter(this.gl.MAX_COLOR_ATTACHMENTS)}},{key:"MAX_DRAW_BUFFERS",get:function(){return this.gl.getParameter(this.gl.MAX_DRAW_BUFFERS)}}],[{key:"isSupported",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.colorBufferFloat,i=t.colorBufferHalfFloat;return n&&e.getExtension(Object(o.n)(e)?"EXT_color_buffer_float":"WEBGL.color_buffer_float"),i&&e.getExtension(Object(o.n)(e)?"EXT_color_buffer_float":"EXT_color_buffer_half_float")}},{key:"getDefaultFramebuffer",value:function(e){return e.luma=e.luma||{},e.luma.defaultFramebuffer=e.luma.defaultFramebuffer||new t(e,{id:"default-framebuffer",handle:null,attachments:{}}),e.luma.defaultFramebuffer}}]),Object(R.a)(t,[{key:"initialize",value:function(e){var t=e.width,n=void 0===t?1:t,i=e.height,r=void 0===i?1:i,o=e.attachments,a=void 0===o?null:o,s=e.color,c=void 0===s||s,u=e.depth,l=void 0===u||u,h=e.stencil,f=void 0!==h&&h,d=e.check,g=void 0===d||d,p=e.readBuffer,v=e.drawBuffers;if(Object(k.a)(n>=0&&r>=0,"Width and height need to be integers"),this.width=n,this.height=r,a)for(var m in a){var _=a[m];(Array.isArray(_)?_[0]:_).resize({width:n,height:r})}else a=this._createDefaultAttachments({color:c,depth:l,stencil:f,width:n,height:r});this.update({clearAttachments:!0,attachments:a,readBuffer:p,drawBuffers:v}),a&&g&&this.checkStatus()}},{key:"update",value:function(e){var t=e.attachments,n=void 0===t?{}:t,i=e.readBuffer,r=e.drawBuffers,o=e.clearAttachments,a=void 0!==o&&o;this.attach(n,{clearAttachments:a});var s=this.gl,c=s.bindFramebuffer(36160,this.handle);return i&&this._setReadBuffer(i),r&&this._setDrawBuffers(r),s.bindFramebuffer(36160,c||null),this}},{key:"resize",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.width,n=e.height;if(null===this.handle)return Object(k.a)(void 0===t&&void 0===n),this.width=this.gl.drawingBufferWidth,this.height=this.gl.drawingBufferHeight,this;for(var i in void 0===t&&(t=this.gl.drawingBufferWidth),void 0===n&&(n=this.gl.drawingBufferHeight),t!==this.width&&n!==this.height&&l.g.log(2,"Resizing framebuffer ".concat(this.id," to ").concat(t,"x").concat(n)),this.attachments)this.attachments[i].resize({width:t,height:n});return this.width=t,this.height=n,this}},{key:"attach",value:function(e){var t=this,n=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).clearAttachments,i={};void 0!==n&&n&&Object.keys(this.attachments).forEach(function(e){i[e]=null}),Object.assign(i,e);var r=this.gl.bindFramebuffer(36160,this.handle);for(var o in i){Object(k.a)(void 0!==o,"Misspelled framebuffer binding point?");var a=Number(o),s=i[a],c=s;if(c)if(c instanceof ye)this._attachRenderbuffer({attachment:a,renderbuffer:c});else if(Array.isArray(s)){var u=Object(ve.a)(s,3),l=u[0],h=u[1],f=void 0===h?0:h,d=u[2],g=void 0===d?0:d;c=l,this._attachTexture({attachment:a,texture:l,layer:f,level:g})}else this._attachTexture({attachment:a,texture:c,layer:0,level:0});else this._unattach({attachment:a});c&&c.resize({width:this.width,height:this.height})}this.gl.bindFramebuffer(36160,r||null),Object.assign(this.attachments,e),Object.keys(this.attachments).filter(function(e){return!t.attachments[e]}).forEach(function(e){delete t.attachments[e]})}},{key:"checkStatus",value:function(){var e=this.gl,t=e.bindFramebuffer(36160,this.handle),n=e.checkFramebufferStatus(36160);if(e.bindFramebuffer(36160,t||null),36053!==n)throw new Error(function(e){return(Le.STATUS||{})[e]||"Framebuffer error ".concat(e)}(n));return this}},{key:"clear",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.color,n=e.depth,i=e.stencil,r=e.drawBuffers,o=void 0===r?[]:r,a=this.gl.bindFramebuffer(36160,this.handle);return(t||n||i)&&Ce(this.gl,{color:t,depth:n,stencil:i}),o.forEach(function(e,t){je({drawBuffer:t,value:e})}),this.gl.bindFramebuffer(36160,a||null),this}},{key:"readPixels",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.x,n=void 0===t?0:t,i=e.y,r=void 0===i?0:i,o=e.width,a=void 0===o?this.width:o,s=e.height,c=void 0===s?this.height:s,u=e.format,l=void 0===u?6408:u,h=e.type,f=e.pixelArray,d=void 0===f?null:f,g=e.attachment,p=void 0===g?36064:g;this.gl;if(36064===p&&null===this.handle&&(p=1028),Object(k.a)(this.attachments[p]),h=h||this.attachments[p].type,!d){h=h||5121;var v=Object(Me.c)(h,{clamped:!1}),m=Re(l);d=d||new v(a*c*m)}h=h||Object(Me.b)(d);var _=this.gl.bindFramebuffer(36160,this.handle);return this.gl.readPixels(n,r,a,c,l,h,d),this.gl.bindFramebuffer(36160,_||null),d}},{key:"readPixelsToBuffer",value:function(e){var t=e.x,n=void 0===t?0:t,i=e.y,r=void 0===i?0:i,a=e.width,s=void 0===a?this.width:a,c=e.height,u=void 0===c?this.height:c,l=e.format,h=void 0===l?6408:l,f=e.type,d=e.buffer,g=void 0===d?null:d,p=e.byteOffset,v=void 0===p?0:p,m=this.gl;if(Object(o.d)(m),f=f||(g?g.type:5121),!g){var _=Re(h),b=function(e){switch(e){case 5121:return 1;case 33635:case 32819:case 32820:return 2;case 5126:return 4;default:return Object(k.a)(!1),0}}(f),y=v+s*u*_*b;g=new te.a(m,{bytes:y,type:f,size:_})}return g.bind({target:35051}),Object(X.g)(m,{framebuffer:this},function(){m.readPixels(n,r,s,u,h,f,v)}),g.unbind({target:35051}),g}},{key:"copyToDataUrl",value:function(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.attachment,n=void 0===t?36064:t,i=e.maxHeight,r=void 0===i?Number.MAX_SAFE_INTEGER:i,a=this.readPixels({attachment:n}),s=this.width,c=this.height;c>r;){var u=Object(o.q)({data:a,width:s,height:c});a=u.data,s=u.width,c=u.height}Object(o.h)({data:a,width:s,height:c});var l=document.createElement("canvas");l.width=s,l.height=c;var h=l.getContext("2d"),f=h.createImageData(s,c);return f.data.set(a),h.putImageData(f,0,0),l.toDataURL()}},{key:"copyToImage",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.image,n=void 0===t?null:t,i=e.attachment,r=void 0===i?36064:i,o=e.maxHeight,a=(void 0===o&&Number.MAX_SAFE_INTEGER,this.readDataUrl({attachment:r}));return(n=n||new Image).src=a,n}},{key:"copyToTexture",value:function(e){var t=e.texture,n=e.target,i=e.xoffset,r=void 0===i?0:i,o=e.yoffset,a=void 0===o?0:o,s=e.zoffset,c=void 0===s?0:s,u=e.mipmapLevel,l=void 0===u?0:u,h=e.attachment,f=void 0===h?36064:h,d=e.x,g=void 0===d?0:d,p=e.y,v=void 0===p?0:p,m=e.width,_=e.height,b=this.gl,y=b.bindFramebuffer(36160,this.handle),E=b.readBuffer(f);switch(m=Number.isFinite(m)?m:t.width,_=Number.isFinite(_)?_:t.height,t.target){case 3553:case 34067:b.copyTexSubImage2D(n||t.target,l,r,a,g,v,m,_);break;case 35866:case 32879:b.copyTexSubImage3D(n||t.target,l,r,a,c,g,v,m,_)}return b.readBuffer(E),b.bindFramebuffer(36160,y||null),t}},{key:"blit",value:function(e){var t=e.srcFramebuffer,n=e.attachment,i=void 0===n?36064:n,r=e.srcX0,a=void 0===r?0:r,s=e.srcY0,c=void 0===s?0:s,u=e.srcX1,l=e.srcY1,h=e.dstX0,f=void 0===h?0:h,d=e.dstY0,g=void 0===d?0:d,p=e.dstX1,v=e.dstY1,m=e.color,_=void 0===m||m,b=e.depth,y=void 0!==b&&b,E=e.stencil,x=void 0!==E&&E,w=e.mask,O=void 0===w?0:w,S=e.filter,P=void 0===S?9728:S,A=this.gl;Object(o.d)(A),t.handle||36064!==i||(i=1028),_&&(O|=16384),y&&(O|=256),x&&(O|=1024),Object(k.a)(O),u=void 0===u?t.width:u,l=void 0===l?t.height:l,p=void 0===p?this.width:p,v=void 0===v?this.height:v;var T=A.bindFramebuffer(36009,this.handle),C=A.bindFramebuffer(36008,t.handle);return A.readBuffer(i),A.blitFramebuffer(a,c,u,l,f,g,p,v,O,P),A.readBuffer(this.readBuffer),A.bindFramebuffer(36008,C||null),A.bindFramebuffer(36009,T||null),this}},{key:"invalidate",value:function(e){var t=e.attachments,n=void 0===t?[]:t,i=e.x,r=void 0===i?0:i,a=e.y,s=void 0===a?0:a,c=e.width,u=e.height,l=this.gl;Object(o.d)(l);var h=l.bindFramebuffer(36008,this.handle);return 0===r&&0===s&&void 0===c&&void 0===u?l.invalidateFramebuffer(36008,n):l.invalidateFramebuffer(36008,n,r,s,c,u),l.bindFramebuffer(36008,h),this}},{key:"getAttachmentParameter",value:function(e,t,n){var i=this._getAttachmentParameterFallback(t);return null===i&&(this.gl.bindFramebuffer(36160,this.handle),i=this.gl.getFramebufferAttachmentParameter(36160,e,t),this.gl.bindFramebuffer(36160,null)),n&&i>1e3&&(i=Object(r.d)(this.gl,i)),i}},{key:"getAttachmentParameters",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:36064,t=arguments.length>1?arguments[1]:void 0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.constructor.ATTACHMENT_PARAMETERS||[],i={},o=!0,a=!1,s=void 0;try{for(var c,u=n[Symbol.iterator]();!(o=(c=u.next()).done);o=!0){var l=c.value;i[t?Object(r.d)(this.gl,l):l]=this.getAttachmentParameter(e,l,t)}}catch(e){a=!0,s=e}finally{try{o||null==u.return||u.return()}finally{if(a)throw s}}return i}},{key:"getParameters",value:function(){for(var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],t=Object.keys(this.attachments),n={},i=0;i<t.length;i++){var o=t[i],a=Number(o);n[e?Object(r.d)(this.gl,a):a]=this.getAttachmentParameters(a,e)}return n}},{key:"show",value:function(){return"undefined"!=typeof window&&window.open(this.copyToDataUrl(),"luma-debug-texture"),this}},{key:"log",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";if(e>l.g.priority||"undefined"==typeof window)return this;t=t||"Framebuffer ".concat(this.id);var n=this.copyToDataUrl({maxHeight:100});return l.g.image({priority:e,message:t,image:n},t)(),this}},{key:"bind",value:function(){var e=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).target,t=void 0===e?36160:e;return this.gl.bindFramebuffer(t,this.handle),this}},{key:"unbind",value:function(){var e=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).target,t=void 0===e?36160:e;return this.gl.bindFramebuffer(t,null),this}},{key:"_createDefaultAttachments",value:function(e){var t,n=e.color,i=e.depth,r=e.stencil,o=e.width,a=e.height,s=null;n&&((s=s||{})[36064]=new me.a(this.gl,{id:"".concat(this.id,"-color0"),pixels:null,format:6408,type:5121,width:o,height:a,mipmaps:!1,parameters:(t={},Object(O.a)(t,10241,9728),Object(O.a)(t,10240,9728),Object(O.a)(t,10242,33071),Object(O.a)(t,10243,33071),t)}));return i&&r?(s=s||{})[33306]=new ye(this.gl,{id:"".concat(this.id,"-depth-stencil"),format:35056,width:o,height:111}):i?(s=s||{})[36096]=new ye(this.gl,{id:"".concat(this.id,"-depth"),format:33189,width:o,height:a}):r&&Object(k.a)(!1),s}},{key:"_unattach",value:function(e){var t=e.attachment;this.gl.bindRenderbuffer(36161,this.handle),this.gl.framebufferRenderbuffer(36160,t,36161,null),delete this.attachments[t]}},{key:"_attachRenderbuffer",value:function(e){var t=e.attachment,n=void 0===t?36064:t,i=e.renderbuffer;this.gl.framebufferRenderbuffer(36160,n,36161,i.handle),this.attachments[n]=i}},{key:"_attachTexture",value:function(e){var t=e.attachment,n=void 0===t?36064:t,i=e.texture,r=e.layer,o=e.level,a=this.gl;switch(a.bindTexture(i.target,i.handle),i.target){case 35866:case 32879:a.framebufferTextureLayer(36160,n,i.target,o,r);break;case 34067:var s=function(e){return e<34069?e+34069:e}(r);a.framebufferTexture2D(36160,n,s,i.handle,o);break;case 3553:a.framebufferTexture2D(36160,n,3553,i.handle,o);break;default:Object(k.a)(!1,"Illegal texture type")}a.bindTexture(i.target,null),this.attachments[n]=i}},{key:"_setReadBuffer",value:function(e,t){Object(o.n)(e)?e.readBuffer(t):Object(k.a)(36064===t||1029===t,"Multiple render targets not supported"),this.readBuffer=t}},{key:"_setDrawBuffers",value:function(e,t){if(Object(o.n)(e))e.drawBuffers(t);else{var n=e.getExtension("WEBGL.draw_buffers");n?n.drawBuffersWEBGL(t):Object(k.a)(1===t.length&&(36064===t[0]||1029===t[0]),"Multiple render targets not supported")}this.drawBuffers=t}},{key:"_getAttachmentParameterFallback",value:function(e){var t=ee(this.gl);switch(e){case 36052:return t.webgl2?null:0;case 33298:case 33299:case 33300:case 33301:case 33302:case 33303:return t.webgl2?null:8;case 33297:return t.webgl2?null:5125;case 33296:return t.webgl2||t.EXT_sRGB?null:9729;default:return null}}},{key:"_createHandle",value:function(){return this.gl.createFramebuffer()}},{key:"_deleteHandle",value:function(){this.gl.deleteFramebuffer(this.handle)}},{key:"_bindHandle",value:function(e){return this.gl.bindFramebuffer(36160,e)}},{key:"color",get:function(){return this.attachments[36064]||null}},{key:"texture",get:function(){return this.attachments[36064]||null}},{key:"depth",get:function(){return this.attachments[36096]||this.attachments[33306]||null}},{key:"stencil",get:function(){return this.attachments[36128]||this.attachments[33306]||null}}]),t}(oe.a);Le.ATTACHMENT_PARAMETERS=[36049,36048,33296,33298,33299,33300,33301,33302,33303];var Ie,ke=function(e){function t(e,n){var i;return Object(v.a)(this,t),Object(o.d)(e),i=Object(ne.a)(this,Object(ie.a)(t).call(this,e,n)),Object.seal(Object(ge.a)(Object(ge.a)(i))),i}return Object(re.a)(t,e),Object(R.a)(t,null,[{key:"isSupported",value:function(e){return Object(o.n)(e)}}]),Object(R.a)(t,[{key:"bind",value:function(e){return this.gl.bindSampler(e,this.handle),this}},{key:"unbind",value:function(e){return this.gl.bindSampler(e,null),this}},{key:"_createHandle",value:function(){return this.gl.createSampler()}},{key:"_deleteHandle",value:function(){this.gl.deleteSampler(this.handle)}},{key:"_getParameter",value:function(e){return this.gl.getSamplerParameter(this.handle,e)}},{key:"_setParameter",value:function(e,t){switch(e){case 33082:case 33083:this.gl.samplerParameterf(this.handle,e,t);break;default:this.gl.samplerParameteri(this.handle,e,t)}return this}}]),t}(oe.a),Fe=(Ie={},Object(O.a)(Ie,5126,function(e,t,n){return e.uniform1fv(t,Ve(n,1))}),Object(O.a)(Ie,35664,function(e,t,n){return e.uniform2fv(t,Ve(n,2))}),Object(O.a)(Ie,35665,function(e,t,n){return e.uniform3fv(t,Ve(n,3))}),Object(O.a)(Ie,35666,function(e,t,n){return e.uniform4fv(t,Ve(n,4))}),Object(O.a)(Ie,5124,function(e,t,n){return e.uniform1iv(t,Ge(n,1))}),Object(O.a)(Ie,35667,function(e,t,n){return e.uniform2iv(t,Ge(n,2))}),Object(O.a)(Ie,35668,function(e,t,n){return e.uniform3iv(t,Ge(n,3))}),Object(O.a)(Ie,35669,function(e,t,n){return e.uniform4iv(t,Ge(n,4))}),Object(O.a)(Ie,35670,function(e,t,n){return e.uniform1iv(t,Ge(n,1))}),Object(O.a)(Ie,35671,function(e,t,n){return e.uniform2iv(t,Ge(n,2))}),Object(O.a)(Ie,35672,function(e,t,n){return e.uniform3iv(t,Ge(n,3))}),Object(O.a)(Ie,35673,function(e,t,n){return e.uniform4iv(t,Ge(n,4))}),Object(O.a)(Ie,35674,function(e,t,n){return e.uniformMatrix2fv(t,!1,Ve(n,4))}),Object(O.a)(Ie,35675,function(e,t,n){return e.uniformMatrix3fv(t,!1,Ve(n,9))}),Object(O.a)(Ie,35676,function(e,t,n){return e.uniformMatrix4fv(t,!1,Ve(n,16))}),Object(O.a)(Ie,35678,function(e,t,n){return e.uniform1i(t,n)}),Object(O.a)(Ie,35680,function(e,t,n){return e.uniform1i(t,n)}),Object(O.a)(Ie,5125,function(e,t,n){return e.uniform1uiv(t,We(n,1))}),Object(O.a)(Ie,36294,function(e,t,n){return e.uniform2uiv(t,We(n,2))}),Object(O.a)(Ie,36295,function(e,t,n){return e.uniform3uiv(t,We(n,3))}),Object(O.a)(Ie,36296,function(e,t,n){return e.uniform4uiv(t,We(n,4))}),Object(O.a)(Ie,35685,function(e,t,n){return e.uniformMatrix2x3fv(t,!1,Ve(n,6))}),Object(O.a)(Ie,35686,function(e,t,n){return e.uniformMatrix2x4fv(t,!1,Ve(n,8))}),Object(O.a)(Ie,35687,function(e,t,n){return e.uniformMatrix3x2fv(t,!1,Ve(n,6))}),Object(O.a)(Ie,35688,function(e,t,n){return e.uniformMatrix3x4fv(t,!1,Ve(n,12))}),Object(O.a)(Ie,35689,function(e,t,n){return e.uniformMatrix4x2fv(t,!1,Ve(n,8))}),Object(O.a)(Ie,35690,function(e,t,n){return e.uniformMatrix4x3fv(t,!1,Ve(n,12))}),Object(O.a)(Ie,35679,function(e,t,n){return e.uniform1i(t,n)}),Object(O.a)(Ie,35682,function(e,t,n){return e.uniform1i(t,n)}),Object(O.a)(Ie,36289,function(e,t,n){return e.uniform1i(t,n)}),Object(O.a)(Ie,36292,function(e,t,n){return e.uniform1i(t,n)}),Object(O.a)(Ie,36293,function(e,t,n){return e.uniform1i(t,n)}),Object(O.a)(Ie,36298,function(e,t,n){return e.uniform1i(t,n)}),Object(O.a)(Ie,36299,function(e,t,n){return e.uniform1i(t,n)}),Object(O.a)(Ie,36300,function(e,t,n){return e.uniform1i(t,n)}),Object(O.a)(Ie,36303,function(e,t,n){return e.uniform1i(t,n)}),Object(O.a)(Ie,36306,function(e,t,n){return e.uniform1i(t,n)}),Object(O.a)(Ie,36307,function(e,t,n){return e.uniform1i(t,n)}),Object(O.a)(Ie,36308,function(e,t,n){return e.uniform1i(t,n)}),Object(O.a)(Ie,36311,function(e,t,n){return e.uniform1i(t,n)}),Ie),Ne={},De={},Be={},Ue=[0];function ze(e,t,n,i){1===t&&"boolean"==typeof e&&(e=e?1:0),Number.isFinite(e)&&(Ue[0]=e,e=Ue);var r=e.length;if(r%t&&l.g.warn("Uniform size should be multiples of ".concat(t),e)(),e instanceof n)return e;var o=i[r];o||(o=new n(r),i[r]=o);for(var a=0;a<r;a++)o[a]=e[a];return o}function Ve(e,t){return ze(e,t,Float32Array,Ne)}function Ge(e,t){return ze(e,t,Int32Array,De)}function We(e,t){return ze(e,t,Uint32Array,Be)}function He(e){var t=e.match(/([^\[]*)(\[[0-9]+\])?/);if(!t||t.length<2)throw new Error("Failed to parse GLSL uniform name ".concat(e));return{name:t[1],length:t[2]||1,isArray:Boolean(t[2])}}function Xe(e,t,n){var i=Fe[n.type];if(!i)throw new Error("Unknown GLSL uniform type ".concat(n.type));return i.bind(null,e,t)}function Ye(e){return Array.isArray(e)||ArrayBuffer.isView(e)?function(e){if(0===e.length)return!1;for(var t=Math.min(e.length,16),n=0;n<t;++n)if(!Number.isFinite(e[n]))return!1;return!0}(e):!!isFinite(e)||(!0===e||!1===e||(e instanceof pe.a||e instanceof ke||(e instanceof ye||e instanceof Le&&Boolean(e.texture))))}function qe(e,t){if(Array.isArray(e)||ArrayBuffer.isView(e)){if(!t)return!1;var n=e.length;if(t.length!==n)return!1;for(var i=0;i<n;i++)if(e[i]!==t[i])return!1;return!0}return e===t}function Ze(e){return Array.isArray(e)||ArrayBuffer.isView(e)?e.slice():e}var Ke,$e=n(33),Qe=5120,Je=5121,et=5122,tt=5123,nt=0,it=1,rt=2,ot=3,at=4,st=5,ct=6,ut=5126,lt=(Ke={},Object(O.a)(Ke,ut,[ut,1,"float"]),Object(O.a)(Ke,35664,[ut,2,"vec2"]),Object(O.a)(Ke,35665,[ut,3,"vec3"]),Object(O.a)(Ke,35666,[ut,4,"vec4"]),Object(O.a)(Ke,5124,[5124,1,"int"]),Object(O.a)(Ke,35667,[5124,2,"ivec2"]),Object(O.a)(Ke,35668,[5124,3,"ivec3"]),Object(O.a)(Ke,35669,[5124,4,"ivec4"]),Object(O.a)(Ke,5125,[5125,1,"uint"]),Object(O.a)(Ke,36294,[5125,2,"uvec2"]),Object(O.a)(Ke,36295,[5125,3,"uvec3"]),Object(O.a)(Ke,36296,[5125,4,"uvec4"]),Object(O.a)(Ke,35670,[ut,1,"bool"]),Object(O.a)(Ke,35671,[ut,2,"bvec2"]),Object(O.a)(Ke,35672,[ut,3,"bvec3"]),Object(O.a)(Ke,35673,[ut,4,"bvec4"]),Object(O.a)(Ke,35674,[ut,8,"mat2"]),Object(O.a)(Ke,35685,[ut,8,"mat2x3"]),Object(O.a)(Ke,35686,[ut,8,"mat2x4"]),Object(O.a)(Ke,35675,[ut,12,"mat3"]),Object(O.a)(Ke,35687,[ut,12,"mat3x2"]),Object(O.a)(Ke,35688,[ut,12,"mat3x4"]),Object(O.a)(Ke,35676,[ut,16,"mat4"]),Object(O.a)(Ke,35689,[ut,16,"mat4x2"]),Object(O.a)(Ke,35690,[ut,16,"mat4x3"]),Ke);function ht(e){switch(e){case nt:return nt;case it:case ot:case rt:return it;case at:case st:case ct:return at;default:return Object(k.a)(!1),0}}function ft(e){var t=lt[e];if(!t)return null;var n=Object(ve.a)(t,2);return{type:n[0],components:n[1]}}function dt(e,t){switch(e){case Qe:case Je:case et:case tt:e=ut}for(var n in lt){var i=Object(ve.a)(lt[n],3),r=i[0],o=i[1],a=i[2];if(r===e&&o===t)return{glType:n,name:a}}return null}var gt=function(){function e(t){Object(v.a)(this,e),this.id=t.id,this.attributeInfos=[],this.attributeInfosByName={},this.varyingInfos=[],this.varyingInfosByName={},Object.seal(this),this._readAttributesFromProgram(t),this._readVaryingsFromProgram(t)}return Object(R.a)(e,[{key:"getAttributeInfo",value:function(e){var t=Number(e);return Number.isFinite(t)?this.attributeInfos[t]:this.attributeInfosByName[e]||null}},{key:"getAttributeLocation",value:function(e){var t=this.getAttributeInfo(e);return t?t.location:-1}},{key:"getAttributeAccessor",value:function(e){var t=this.getAttributeInfo(e);return t?t.accessor:null}},{key:"getVaryingInfo",value:function(e){var t=Number(e);return Number.isFinite(t)?this.varyingInfos[t]:this.varyingInfosByName[e]||null}},{key:"getVaryingIndex",value:function(e){var t=this.getVaryingInfo();return t?t.location:-1}},{key:"getVaryingAccessor",value:function(e){var t=this.getVaryingInfo();return t?t.accessor:null}},{key:"_readAttributesFromProgram",value:function(e){for(var t=e.gl,n=t.getProgramParameter(e.handle,35721),i=0;i<n;i++){var r=t.getActiveAttrib(e.handle,i),o=r.name,a=r.type,s=r.size,c=t.getAttribLocation(e.handle,o);c>=0&&this._addAttribute(c,o,a,s)}this.attributeInfos.sort(function(e,t){return e.location-t.location})}},{key:"_readVaryingsFromProgram",value:function(e){var t=e.gl;if(Object(o.n)(t)){for(var n=t.getProgramParameter(e.handle,35971),i=0;i<n;i++){var r=t.getTransformFeedbackVarying(e.handle,i),a=r.name,s=r.type,c=r.size;this._addVarying(i,a,s,c)}this.varyingInfos.sort(function(e,t){return e.location-t.location})}}},{key:"_addAttribute",value:function(e,t,n,i){var r=ft(n),o={type:r.type,size:i*r.components};this._inferProperties(e,t,o);var a={location:e,name:t,accessor:new $e.a(o)};this.attributeInfos.push(a),this.attributeInfosByName[a.name]=a}},{key:"_inferProperties",value:function(e,t,n){/instance/i.test(t)&&(n.divisor=1)}},{key:"_addVarying",value:function(e,t,n,i){var r=ft(n),o=r.type,a=r.components,s={location:e,name:t,accessor:new $e.a({type:o,size:i*a})};this.varyingInfos.push(s),this.varyingInfosByName[s.name]=s}}]),e}(),pt=function(e){function t(e){var n,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return Object(v.a)(this,t),(n=Object(ne.a)(this,Object(ie.a)(t).call(this,e,i))).stubRemovedMethods("Program","v6.0",["setVertexArray","setAttributes","setBuffers","unsetBuffers","use","getUniformCount","getUniformInfo","getUniformLocation","getUniformValue","getVarying","getFragDataLocation","getAttachedShaders","getAttributeCount","getAttributeLocation","getAttributeInfo"]),n._isCached=!1,n.initialize(i),Object.seal(Object(ge.a)(Object(ge.a)(n))),n._setId(i.id),n}return Object(re.a)(t,e),Object(R.a)(t,[{key:"initialize",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.vs,n=e.fs,i=e.varyings,r=e.bufferMode,a=void 0===r?35981:r;return this.vs="string"==typeof t?new le(this.gl,{id:"".concat(e.id,"-vs"),source:t}):t,this.fs="string"==typeof n?new he(this.gl,{id:"".concat(e.id,"-fs"),source:n}):n,Object(k.a)(this.vs instanceof le),Object(k.a)(this.fs instanceof he),this.uniforms={},this.samplers={},i&&(Object(o.d)(this.gl),this.varyings=i,this.gl.transformFeedbackVaryings(this.handle,i,a)),this._compileAndLink(),this._readUniformLocationsFromLinkedProgram(),this.configuration=new gt(this),this.setProps(e)}},{key:"delete",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this._isCached?this:fe(Object(ie.a)(t.prototype),"delete",this).call(this,e)}},{key:"setProps",value:function(e){return"uniforms"in e&&this.setUniforms(e.uniforms,e.samplers),this}},{key:"draw",value:function(e){var t=this,n=e.logPriority,i=e.drawMode,a=void 0===i?4:i,s=e.vertexCount,c=e.offset,u=void 0===c?0:c,h=e.start,f=e.end,d=e.isIndexed,g=void 0!==d&&d,p=e.indexType,v=void 0===p?5123:p,m=e.isInstanced,_=void 0!==m&&m,b=e.instanceCount,y=void 0===b?0:b,E=e.vertexArray,x=void 0===E?null:E,w=e.transformFeedback,O=e.framebuffer,S=e.parameters,P=void 0===S?{}:S,A=e.uniforms,T=void 0===A?{}:A,C=e.samplers,j=void 0===C?{}:C;if(void 0!==n){var M=O?O.id:"default",R="mode=".concat(Object(r.a)(this.gl,a)," verts=").concat(s," ")+"instances=".concat(y," indexType=").concat(Object(r.a)(this.gl,v)," ")+"isInstanced=".concat(_," isIndexed=").concat(g," ")+"Framebuffer=".concat(M);l.g.log(n,R)()}return this.gl.useProgram(this.handle),Object(k.a)(x),x.bindForDraw(s,y,function(){if(T&&(l.g.deprecated("Program.draw({uniforms})","Program.setUniforms(uniforms)"),t.setUniforms(T,j)),t._bindTextures(),void 0!==O&&(P=Object.assign({},P,{framebuffer:O})),w){var e=ht(a);w.begin(e)}Object(X.g)(t.gl,P,function(){g&&_?t.gl.drawElementsInstanced(a,s,v,u,y):g&&Object(o.n)(t.gl)&&!isNaN(h)&&!isNaN(f)?t.gl.drawRangeElements(a,h,f,s,v,u):g?t.gl.drawElements(a,s,v,u):_?t.gl.drawArraysInstanced(a,u,s,y):t.gl.drawArrays(a,u,s)}),w&&w.end()}),this}},{key:"setSamplers",value:function(e){Object.assign(this.samplers,e)}},{key:"setUniforms",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:function(){},i=!1,r={};for(var o in e)qe(this.uniforms[o],e[o])||(i=!0,r[o]=e[o],this.uniforms[o]=Ze(e[o]));return i&&(n(),function(e,t,n){for(var i in e){var r=e[i];if((!n||Boolean(n[i]))&&!Ye(r))throw t=t?"".concat(t," "):"",console.error("".concat(t," Bad uniform ").concat(i),r),new Error("".concat(t," Bad uniform ").concat(i))}}(r,this.id,this._uniformSetters),Object.assign(this.samplers,t),this._setUniforms(r)),this}},{key:"_bindTextures",value:function(){for(var e in this.uniforms){var t=this._uniformSetters[e];if(t&&void 0!==t.textureIndex){var n=this.uniforms[e],i=this.samplers[e];n instanceof Le&&(n=n.texture),n instanceof pe.a&&n.bind(t.textureIndex),i&&i.bind(t.textureIndex)}}}},{key:"_setUniforms",value:function(e){for(var t in this.gl.useProgram(this.handle),e){var n=e[t],i=this._uniformSetters[t];if(i)if(n instanceof Le&&(n=n.texture),n instanceof pe.a){void 0===i.textureIndex&&(i.textureIndex=this._textureIndexCounter++);var r=n,o=i.textureIndex;r.bind(o),i(o)}else i(n)}return this}},{key:"_createHandle",value:function(){return this.gl.createProgram()}},{key:"_deleteHandle",value:function(){this.gl.deleteProgram(this.handle)}},{key:"_getOptionsFromHandle",value:function(e){var t=this.gl.getAttachedShaders(e),n={},i=!0,r=!1,o=void 0;try{for(var a,s=t[Symbol.iterator]();!(i=(a=s.next()).done);i=!0){var c=a.value;switch(this.gl.getShaderParameter(this.handle,35663)){case 35633:n.vs=new le({handle:c});break;case 35632:n.fs=new he({handle:c})}}}catch(e){r=!0,o=e}finally{try{i||null==s.return||s.return()}finally{if(r)throw o}}return n}},{key:"_getParameter",value:function(e){return this.gl.getProgramParameter(this.handle,e)}},{key:"_setId",value:function(e){if(!e){var t=this._getName();this.id=Object(l.i)(t)}}},{key:"_getName",value:function(){var e=this.vs.getName()||this.fs.getName();return e=(e=e.replace(/shader/i,""))?"".concat(e,"-program"):"program"}},{key:"_compileAndLink",value:function(){var e=this.gl;if((e.at