@luma.gl/webgl 8.5.13 → 8.5.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (195) hide show
  1. package/dist/dist.js +763 -860
  2. package/dist/dist.min.js +1 -1
  3. package/dist/es5/bundle.js.map +1 -1
  4. package/dist/es5/classes/accessor.js +31 -33
  5. package/dist/es5/classes/accessor.js.map +1 -1
  6. package/dist/es5/classes/buffer.js +24 -26
  7. package/dist/es5/classes/buffer.js.map +1 -1
  8. package/dist/es5/classes/clear.js.map +1 -1
  9. package/dist/es5/classes/copy-and-blit.js +3 -3
  10. package/dist/es5/classes/copy-and-blit.js.map +1 -1
  11. package/dist/es5/classes/framebuffer.js +70 -72
  12. package/dist/es5/classes/framebuffer.js.map +1 -1
  13. package/dist/es5/classes/program-configuration.js.map +1 -1
  14. package/dist/es5/classes/program.js +11 -13
  15. package/dist/es5/classes/program.js.map +1 -1
  16. package/dist/es5/classes/query.js +47 -49
  17. package/dist/es5/classes/query.js.map +1 -1
  18. package/dist/es5/classes/renderbuffer-formats.js.map +1 -1
  19. package/dist/es5/classes/renderbuffer.js +37 -39
  20. package/dist/es5/classes/renderbuffer.js.map +1 -1
  21. package/dist/es5/classes/resource.js +36 -17
  22. package/dist/es5/classes/resource.js.map +1 -1
  23. package/dist/es5/classes/shader.js +38 -44
  24. package/dist/es5/classes/shader.js.map +1 -1
  25. package/dist/es5/classes/texture-2d.js +16 -17
  26. package/dist/es5/classes/texture-2d.js.map +1 -1
  27. package/dist/es5/classes/texture-3d.js +15 -17
  28. package/dist/es5/classes/texture-3d.js.map +1 -1
  29. package/dist/es5/classes/texture-cube.js +10 -12
  30. package/dist/es5/classes/texture-cube.js.map +1 -1
  31. package/dist/es5/classes/texture-formats.js +1 -1
  32. package/dist/es5/classes/texture-formats.js.map +1 -1
  33. package/dist/es5/classes/texture.js +24 -26
  34. package/dist/es5/classes/texture.js.map +1 -1
  35. package/dist/es5/classes/transform-feedback.js +16 -22
  36. package/dist/es5/classes/transform-feedback.js.map +1 -1
  37. package/dist/es5/classes/uniform-buffer-layout.js.map +1 -1
  38. package/dist/es5/classes/uniforms.js +2 -2
  39. package/dist/es5/classes/uniforms.js.map +1 -1
  40. package/dist/es5/classes/vertex-array-object.js +69 -71
  41. package/dist/es5/classes/vertex-array-object.js.map +1 -1
  42. package/dist/es5/classes/vertex-array.js.map +1 -1
  43. package/dist/es5/debug/debug-program-configuration.js +1 -1
  44. package/dist/es5/debug/debug-program-configuration.js.map +1 -1
  45. package/dist/es5/debug/debug-uniforms.js +1 -1
  46. package/dist/es5/debug/debug-uniforms.js.map +1 -1
  47. package/dist/es5/debug/debug-vertex-array.js.map +1 -1
  48. package/dist/es5/features/check-glsl-extension.js.map +1 -1
  49. package/dist/es5/features/check-old-ie.js.map +1 -1
  50. package/dist/es5/features/features.js +2 -2
  51. package/dist/es5/features/features.js.map +1 -1
  52. package/dist/es5/features/index.js +16 -16
  53. package/dist/es5/features/index.js.map +1 -1
  54. package/dist/es5/features/limits.js +1 -1
  55. package/dist/es5/features/limits.js.map +1 -1
  56. package/dist/es5/features/webgl-features-table.js.map +1 -1
  57. package/dist/es5/features/webgl-limits-table.js.map +1 -1
  58. package/dist/es5/glsl-utils/format-glsl-error.js.map +1 -1
  59. package/dist/es5/glsl-utils/get-shader-name.js.map +1 -1
  60. package/dist/es5/glsl-utils/get-shader-type-name.js.map +1 -1
  61. package/dist/es5/glsl-utils/get-shader-version.js.map +1 -1
  62. package/dist/es5/glsl-utils/index.js +11 -7
  63. package/dist/es5/glsl-utils/index.js.map +1 -1
  64. package/dist/es5/index.js +104 -104
  65. package/dist/es5/index.js.map +1 -1
  66. package/dist/es5/init.d.ts +1 -1
  67. package/dist/es5/init.js +5 -4
  68. package/dist/es5/init.js.map +1 -1
  69. package/dist/es5/utils/array-utils-flat.js +2 -2
  70. package/dist/es5/utils/array-utils-flat.js.map +1 -1
  71. package/dist/es5/utils/assert.js.map +1 -1
  72. package/dist/es5/utils/check-props.js.map +1 -1
  73. package/dist/es5/utils/format-value.js.map +1 -1
  74. package/dist/es5/utils/is-old-ie.js.map +1 -1
  75. package/dist/es5/utils/load-file.js +1 -1
  76. package/dist/es5/utils/load-file.js.map +1 -1
  77. package/dist/es5/utils/stub-methods.js.map +1 -1
  78. package/dist/es5/utils/utils.js +2 -2
  79. package/dist/es5/utils/utils.js.map +1 -1
  80. package/dist/es5/webgl-utils/attribute-utils.js +3 -3
  81. package/dist/es5/webgl-utils/attribute-utils.js.map +1 -1
  82. package/dist/es5/webgl-utils/constants-to-keys.js +1 -1
  83. package/dist/es5/webgl-utils/constants-to-keys.js.map +1 -1
  84. package/dist/es5/webgl-utils/format-utils.js.map +1 -1
  85. package/dist/es5/webgl-utils/get-error.js +1 -1
  86. package/dist/es5/webgl-utils/get-error.js.map +1 -1
  87. package/dist/es5/webgl-utils/request-animation-frame.js +1 -1
  88. package/dist/es5/webgl-utils/request-animation-frame.js.map +1 -1
  89. package/dist/es5/webgl-utils/texture-utils.js.map +1 -1
  90. package/dist/es5/webgl-utils/typed-array-utils.js +1 -1
  91. package/dist/es5/webgl-utils/typed-array-utils.js.map +1 -1
  92. package/dist/esm/bundle.js.map +1 -1
  93. package/dist/esm/classes/accessor.js +12 -3
  94. package/dist/esm/classes/accessor.js.map +1 -1
  95. package/dist/esm/classes/buffer.js +41 -28
  96. package/dist/esm/classes/buffer.js.map +1 -1
  97. package/dist/esm/classes/clear.js +14 -12
  98. package/dist/esm/classes/clear.js.map +1 -1
  99. package/dist/esm/classes/copy-and-blit.js +27 -21
  100. package/dist/esm/classes/copy-and-blit.js.map +1 -1
  101. package/dist/esm/classes/framebuffer.js +89 -64
  102. package/dist/esm/classes/framebuffer.js.map +1 -1
  103. package/dist/esm/classes/program-configuration.js.map +1 -1
  104. package/dist/esm/classes/program.js +40 -32
  105. package/dist/esm/classes/program.js.map +1 -1
  106. package/dist/esm/classes/query.js +11 -6
  107. package/dist/esm/classes/query.js.map +1 -1
  108. package/dist/esm/classes/renderbuffer-formats.js.map +1 -1
  109. package/dist/esm/classes/renderbuffer.js +25 -19
  110. package/dist/esm/classes/renderbuffer.js.map +1 -1
  111. package/dist/esm/classes/resource.js +49 -18
  112. package/dist/esm/classes/resource.js.map +1 -1
  113. package/dist/esm/classes/shader.js +13 -10
  114. package/dist/esm/classes/shader.js.map +1 -1
  115. package/dist/esm/classes/texture-2d.js +2 -1
  116. package/dist/esm/classes/texture-2d.js.map +1 -1
  117. package/dist/esm/classes/texture-3d.js +17 -14
  118. package/dist/esm/classes/texture-3d.js.map +1 -1
  119. package/dist/esm/classes/texture-cube.js +23 -19
  120. package/dist/esm/classes/texture-cube.js.map +1 -1
  121. package/dist/esm/classes/texture-formats.js.map +1 -1
  122. package/dist/esm/classes/texture.js +47 -35
  123. package/dist/esm/classes/texture.js.map +1 -1
  124. package/dist/esm/classes/transform-feedback.js +12 -6
  125. package/dist/esm/classes/transform-feedback.js.map +1 -1
  126. package/dist/esm/classes/uniform-buffer-layout.js.map +1 -1
  127. package/dist/esm/classes/uniforms.js +6 -6
  128. package/dist/esm/classes/uniforms.js.map +1 -1
  129. package/dist/esm/classes/vertex-array-object.js +17 -9
  130. package/dist/esm/classes/vertex-array-object.js.map +1 -1
  131. package/dist/esm/classes/vertex-array.js +17 -7
  132. package/dist/esm/classes/vertex-array.js.map +1 -1
  133. package/dist/esm/debug/debug-program-configuration.js +4 -4
  134. package/dist/esm/debug/debug-program-configuration.js.map +1 -1
  135. package/dist/esm/debug/debug-uniforms.js +16 -14
  136. package/dist/esm/debug/debug-uniforms.js.map +1 -1
  137. package/dist/esm/debug/debug-vertex-array.js +16 -14
  138. package/dist/esm/debug/debug-vertex-array.js.map +1 -1
  139. package/dist/esm/features/check-glsl-extension.js +3 -2
  140. package/dist/esm/features/check-glsl-extension.js.map +1 -1
  141. package/dist/esm/features/check-old-ie.js +2 -1
  142. package/dist/esm/features/check-old-ie.js.map +1 -1
  143. package/dist/esm/features/features.js +1 -1
  144. package/dist/esm/features/features.js.map +1 -1
  145. package/dist/esm/features/index.js.map +1 -1
  146. package/dist/esm/features/limits.js.map +1 -1
  147. package/dist/esm/features/webgl-features-table.js +1 -1
  148. package/dist/esm/features/webgl-features-table.js.map +1 -1
  149. package/dist/esm/features/webgl-limits-table.js.map +1 -1
  150. package/dist/esm/glsl-utils/format-glsl-error.js +9 -7
  151. package/dist/esm/glsl-utils/format-glsl-error.js.map +1 -1
  152. package/dist/esm/glsl-utils/get-shader-name.js +2 -1
  153. package/dist/esm/glsl-utils/get-shader-name.js.map +1 -1
  154. package/dist/esm/glsl-utils/get-shader-type-name.js.map +1 -1
  155. package/dist/esm/glsl-utils/get-shader-version.js.map +1 -1
  156. package/dist/esm/glsl-utils/index.js.map +1 -1
  157. package/dist/esm/index.js.map +1 -1
  158. package/dist/esm/init.d.ts +1 -1
  159. package/dist/esm/init.js +5 -7
  160. package/dist/esm/init.js.map +1 -1
  161. package/dist/esm/utils/array-utils-flat.js +7 -6
  162. package/dist/esm/utils/array-utils-flat.js.map +1 -1
  163. package/dist/esm/utils/assert.js.map +1 -1
  164. package/dist/esm/utils/check-props.js +4 -4
  165. package/dist/esm/utils/check-props.js.map +1 -1
  166. package/dist/esm/utils/format-value.js +4 -3
  167. package/dist/esm/utils/format-value.js.map +1 -1
  168. package/dist/esm/utils/is-old-ie.js +2 -1
  169. package/dist/esm/utils/is-old-ie.js.map +1 -1
  170. package/dist/esm/utils/load-file.js +3 -2
  171. package/dist/esm/utils/load-file.js.map +1 -1
  172. package/dist/esm/utils/stub-methods.js +2 -3
  173. package/dist/esm/utils/stub-methods.js.map +1 -1
  174. package/dist/esm/utils/utils.js +3 -2
  175. package/dist/esm/utils/utils.js.map +1 -1
  176. package/dist/esm/webgl-utils/attribute-utils.js +11 -8
  177. package/dist/esm/webgl-utils/attribute-utils.js.map +1 -1
  178. package/dist/esm/webgl-utils/constants-to-keys.js +3 -3
  179. package/dist/esm/webgl-utils/constants-to-keys.js.map +1 -1
  180. package/dist/esm/webgl-utils/format-utils.js.map +1 -1
  181. package/dist/esm/webgl-utils/get-error.js +1 -1
  182. package/dist/esm/webgl-utils/get-error.js.map +1 -1
  183. package/dist/esm/webgl-utils/request-animation-frame.js.map +1 -1
  184. package/dist/esm/webgl-utils/texture-utils.js +1 -1
  185. package/dist/esm/webgl-utils/texture-utils.js.map +1 -1
  186. package/dist/esm/webgl-utils/typed-array-utils.js +19 -15
  187. package/dist/esm/webgl-utils/typed-array-utils.js.map +1 -1
  188. package/package.json +5 -5
  189. package/src/classes/framebuffer.js +1 -0
  190. package/src/classes/resource.js +21 -3
  191. package/src/classes/transform-feedback.js +1 -1
  192. package/src/classes/vertex-array-object.js +1 -1
  193. package/src/init.d.ts +1 -1
  194. package/src/init.js +2 -2
  195. package/src/webgl-utils/texture-utils.js +2 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/classes/resource.js"],"names":["ERR_RESOURCE_METHOD_UNDEFINED","Resource","Symbol","toStringTag","gl","opts","id","userData","gl2","_bound","_handle","handle","undefined","_createHandle","byteLength","_addStats","constructor","name","deleteChildren","children","_deleteHandle","_removeStats","filter","Boolean","forEach","child","delete","funcOrHandle","_bindHandle","value","bind","pname","parameters","PARAMETERS","parameter","isWebgl2","parameterAvailable","getExtension","extension","webgl1Default","webgl1","webgl2Default","webgl2","defaultValue","_getParameter","options","keys","values","parameterKeys","Object","key","getParameter","type","Error","_setParameter","setParameter","className","version","methodNames","luma","stats","lumaStats","get","incrementCount","decrementCount","bytes","addCount","subtractCount"],"mappings":";;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;AAEA,IAAMA,6BAA6B,GAAG,+CAAtC;;IAOqBC,Q;;SAEdC,MAAM,CAACC,W;wBAAe;AACzB,aAAO,UAAP;AACD;;;AACD,oBAAYC,EAAZ,EAA2B;AAAA,QAAXC,IAAW,uEAAJ,EAAI;AAAA;AACzB,qCAAmBD,EAAnB;AADyB,QAGlBE,EAHkB,GAGGD,IAHH,CAGlBC,EAHkB;AAAA,yBAGGD,IAHH,CAGdE,QAHc;AAAA,QAGdA,QAHc,+BAGH,EAHG;AAIzB,SAAKH,EAAL,GAAUA,EAAV;AAEA,SAAKI,GAAL,GAAWJ,EAAX;AAEA,SAAKE,EAAL,GAAUA,EAAE,IAAI,gBAAI,KAAKJ,MAAM,CAACC,WAAZ,CAAJ,CAAhB;AACA,SAAKI,QAAL,GAAgBA,QAAhB;AACA,SAAKE,MAAL,GAAc,KAAd;AASA,SAAKC,OAAL,GAAeL,IAAI,CAACM,MAApB;;AACA,QAAI,KAAKD,OAAL,KAAiBE,SAArB,EAAgC;AAC9B,WAAKF,OAAL,GAAe,KAAKG,aAAL,EAAf;AACD;;AAGD,SAAKC,UAAL,GAAkB,CAAlB;;AAEA,SAAKC,SAAL;AACD;;;;+BAEU;AACT,uBAAU,KAAKb,MAAM,CAACC,WAAZ,KAA4B,KAAKa,WAAL,CAAiBC,IAAvD,cAA+D,KAAKX,EAApE;AACD;;;8BAeqC;AAAA,qFAAJ,EAAI;AAAA,qCAA9BY,cAA8B;AAAA,UAA9BA,cAA8B,oCAAb,KAAa;;AAGpC,UAAMC,QAAQ,GAAG,KAAKT,OAAL,IAAgB,KAAKU,aAAL,CAAmB,KAAKV,OAAxB,CAAjC;;AACA,UAAI,KAAKA,OAAT,EAAkB;AAChB,aAAKW,YAAL;AACD;;AACD,WAAKX,OAAL,GAAe,IAAf;;AAIA,UAAIS,QAAQ,IAAID,cAAhB,EAAgC;AAE9BC,QAAAA,QAAQ,CAACG,MAAT,CAAgBC,OAAhB,EAAyBC,OAAzB,CAAiC,UAAAC,KAAK;AAAA,iBAAIA,KAAK,CAACC,MAAN,EAAJ;AAAA,SAAtC;AACD;;AAED,aAAO,IAAP;AACD;;;2BAEgC;AAAA,UAA5BC,YAA4B,uEAAb,KAAKhB,MAAQ;;AAC/B,UAAI,OAAOgB,YAAP,KAAwB,UAA5B,EAAwC;AACtC,aAAKC,WAAL,CAAiBD,YAAjB;;AACA,eAAO,IAAP;AACD;;AAED,UAAIE,KAAJ;;AAEA,UAAI,CAAC,KAAKpB,MAAV,EAAkB;AAChB,aAAKmB,WAAL,CAAiB,KAAKjB,MAAtB;;AACA,aAAKF,MAAL,GAAc,IAAd;AAEAoB,QAAAA,KAAK,GAAGF,YAAY,EAApB;AAEA,aAAKlB,MAAL,GAAc,KAAd;;AACA,aAAKmB,WAAL,CAAiB,IAAjB;AACD,OARD,MAQO;AACLC,QAAAA,KAAK,GAAGF,YAAY,EAApB;AACD;;AAED,aAAOE,KAAP;AACD;;;6BAEQ;AACP,WAAKC,IAAL,CAAU,IAAV;AACD;;;iCAQYC,K,EAAkB;AAAA,UAAX1B,IAAW,uEAAJ,EAAI;AAC7B0B,MAAAA,KAAK,GAAG,kCAAY,KAAK3B,EAAjB,EAAqB2B,KAArB,CAAR;AACA,0BAAOA,KAAP;AAGA,UAAMC,UAAU,GAAG,KAAKhB,WAAL,CAAiBiB,UAAjB,IAA+B,EAAlD;AAGA,UAAMC,SAAS,GAAGF,UAAU,CAACD,KAAD,CAA5B;;AACA,UAAIG,SAAJ,EAAe;AACb,YAAMC,QAAQ,GAAG,uBAAS,KAAK/B,EAAd,CAAjB;AAGA,YAAMgC,kBAAkB,GACtB,CAAC,EAAE,YAAYF,SAAd,KAA4BC,QAA7B,MACC,EAAE,eAAeD,SAAjB,KAA+B,KAAK9B,EAAL,CAAQiC,YAAR,CAAqBH,SAAS,CAACI,SAA/B,CADhC,CADF;;AAIA,YAAI,CAACF,kBAAL,EAAyB;AACvB,cAAMG,aAAa,GAAGL,SAAS,CAACM,MAAhC;AACA,cAAMC,aAAa,GAAG,YAAYP,SAAZ,GAAwBA,SAAS,CAACQ,MAAlC,GAA2CR,SAAS,CAACM,MAA3E;AACA,cAAMG,YAAY,GAAGR,QAAQ,GAAGM,aAAH,GAAmBF,aAAhD;AACA,iBAAOI,YAAP;AACD;AACF;;AAID,aAAO,KAAKC,aAAL,CAAmBb,KAAnB,EAA0B1B,IAA1B,CAAP;AACD;;;oCAK2B;AAAA,UAAdwC,OAAc,uEAAJ,EAAI;AAAA,UACnBb,UADmB,GACCa,OADD,CACnBb,UADmB;AAAA,UACPc,IADO,GACCD,OADD,CACPC,IADO;AAK1B,UAAMb,UAAU,GAAG,KAAKjB,WAAL,CAAiBiB,UAAjB,IAA+B,EAAlD;AAEA,UAAME,QAAQ,GAAG,uBAAS,KAAK/B,EAAd,CAAjB;AAEA,UAAM2C,MAAM,GAAG,EAAf;AAGA,UAAMC,aAAa,GAAGhB,UAAU,IAAIiB,MAAM,CAACH,IAAP,CAAYb,UAAZ,CAApC;;AAZ0B,iDAeNe,aAfM;AAAA;;AAAA;AAe1B,4DAAmC;AAAA,cAAxBjB,KAAwB;AACjC,cAAMG,SAAS,GAAGD,UAAU,CAACF,KAAD,CAA5B;AAGA,cAAMK,kBAAkB,GACtBF,SAAS,KACR,EAAE,YAAYA,SAAd,KAA4BC,QADpB,CAAT,KAEC,EAAE,eAAeD,SAAjB,KAA+B,KAAK9B,EAAL,CAAQiC,YAAR,CAAqBH,SAAS,CAACI,SAA/B,CAFhC,CADF;;AAKA,cAAIF,kBAAJ,EAAwB;AACtB,gBAAMc,GAAG,GAAGJ,IAAI,GAAG,6BAAO,KAAK1C,EAAZ,EAAgB2B,KAAhB,CAAH,GAA4BA,KAA5C;AACAgB,YAAAA,MAAM,CAACG,GAAD,CAAN,GAAc,KAAKC,YAAL,CAAkBpB,KAAlB,EAAyBc,OAAzB,CAAd;;AACA,gBAAIC,IAAI,IAAIZ,SAAS,CAACkB,IAAV,KAAmB,QAA/B,EAAyC;AACvCL,cAAAA,MAAM,CAACG,GAAD,CAAN,GAAc,6BAAO,KAAK9C,EAAZ,EAAgB2C,MAAM,CAACG,GAAD,CAAtB,CAAd;AACD;AACF;AACF;AA/ByB;AAAA;AAAA;AAAA;AAAA;;AAiC1B,aAAOH,MAAP;AACD;;;iCAWYhB,K,EAAOF,K,EAAO;AACzBE,MAAAA,KAAK,GAAG,kCAAY,KAAK3B,EAAjB,EAAqB2B,KAArB,CAAR;AACA,0BAAOA,KAAP;AAGA,UAAMC,UAAU,GAAG,KAAKhB,WAAL,CAAiBiB,UAAjB,IAA+B,EAAlD;AAEA,UAAMC,SAAS,GAAGF,UAAU,CAACD,KAAD,CAA5B;;AACA,UAAIG,SAAJ,EAAe;AACb,YAAMC,QAAQ,GAAG,uBAAS,KAAK/B,EAAd,CAAjB;AAGA,YAAMgC,kBAAkB,GACtB,CAAC,EAAE,YAAYF,SAAd,KAA4BC,QAA7B,MACC,EAAE,eAAeD,SAAjB,KAA+B,KAAK9B,EAAL,CAAQiC,YAAR,CAAqBH,SAAS,CAACI,SAA/B,CADhC,CADF;;AAIA,YAAI,CAACF,kBAAL,EAAyB;AACvB,gBAAM,IAAIiB,KAAJ,CAAU,0CAAV,CAAN;AACD;;AAGD,YAAInB,SAAS,CAACkB,IAAV,KAAmB,QAAvB,EAAiC;AAC/BvB,UAAAA,KAAK,GAAG,kCAAYA,KAAZ,CAAR;AACD;AACF;;AAID,WAAKyB,aAAL,CAAmBvB,KAAnB,EAA0BF,KAA1B;;AACA,aAAO,IAAP;AACD;;;kCAMaG,U,EAAY;AACxB,WAAK,IAAMD,KAAX,IAAoBC,UAApB,EAAgC;AAC9B,aAAKuB,YAAL,CAAkBxB,KAAlB,EAAyBC,UAAU,CAACD,KAAD,CAAnC;AACD;;AACD,aAAO,IAAP;AACD;;;uCAGkByB,S,EAAWC,O,EAASC,W,EAAa;AAClD,aAAO,qCAAmB,IAAnB,EAAyBF,SAAzB,EAAoCC,OAApC,EAA6CC,WAA7C,CAAP;AACD;;;+BAGUrD,I,EAAM,CAAE;;;oCAGH;AACd,YAAM,IAAIgD,KAAJ,CAAUrD,6BAAV,CAAN;AACD;;;oCAEe;AACd,YAAM,IAAIqD,KAAJ,CAAUrD,6BAAV,CAAN;AACD;;;gCAEWW,M,EAAQ;AAClB,YAAM,IAAI0C,KAAJ,CAAUrD,6BAAV,CAAN;AACD;;;yCAEoB;AACnB,YAAM,IAAIqD,KAAJ,CAAUrD,6BAAV,CAAN;AACD;;;kCAGa+B,K,EAAO1B,I,EAAM;AACzB,YAAM,IAAIgD,KAAJ,CAAUrD,6BAAV,CAAN;AACD;;;kCAEa+B,K,EAAOF,K,EAAO;AAC1B,YAAM,IAAIwB,KAAJ,CAAUrD,6BAAV,CAAN;AACD;;;+BAIU;AACT,WAAKI,EAAL,CAAQuD,IAAR,GAAe,KAAKvD,EAAL,CAAQuD,IAAR,IAAgB,EAA/B;AACA,aAAO,KAAKvD,EAAL,CAAQuD,IAAf;AACD;;;gCAEW;AACV,UAAM1C,IAAI,GAAG,KAAKf,MAAM,CAACC,WAAZ,CAAb;;AACA,UAAMyD,KAAK,GAAGC,gBAAUC,GAAV,CAAc,iBAAd,CAAd;;AAEAF,MAAAA,KAAK,CAACE,GAAN,CAAU,mBAAV,EAA+BC,cAA/B;AACAH,MAAAA,KAAK,CAACE,GAAN,WAAa7C,IAAb,gBAA8B8C,cAA9B;AACAH,MAAAA,KAAK,CAACE,GAAN,WAAa7C,IAAb,eAA6B8C,cAA7B;AACD;;;mCAEc;AACb,UAAM9C,IAAI,GAAG,KAAKf,MAAM,CAACC,WAAZ,CAAb;;AACA,UAAMyD,KAAK,GAAGC,gBAAUC,GAAV,CAAc,iBAAd,CAAd;;AAEAF,MAAAA,KAAK,CAACE,GAAN,WAAa7C,IAAb,eAA6B+C,cAA7B;AACD;;;0CAEqBC,K,EAAwC;AAAA,UAAjChD,IAAiC,uEAA1B,KAAKf,MAAM,CAACC,WAAZ,CAA0B;;AAC5D,UAAMyD,KAAK,GAAGC,gBAAUC,GAAV,CAAc,cAAd,CAAd;;AAEAF,MAAAA,KAAK,CAACE,GAAN,CAAU,YAAV,EAAwBI,QAAxB,CAAiCD,KAAjC;AACAL,MAAAA,KAAK,CAACE,GAAN,WAAa7C,IAAb,cAA4BiD,QAA5B,CAAqCD,KAArC;AACA,WAAKnD,UAAL,GAAkBmD,KAAlB;AACD;;;8CAEwD;AAAA,UAAjChD,IAAiC,uEAA1B,KAAKf,MAAM,CAACC,WAAZ,CAA0B;;AACvD,UAAMyD,KAAK,GAAGC,gBAAUC,GAAV,CAAc,cAAd,CAAd;;AAEAF,MAAAA,KAAK,CAACE,GAAN,CAAU,YAAV,EAAwBK,aAAxB,CAAsC,KAAKrD,UAA3C;AACA8C,MAAAA,KAAK,CAACE,GAAN,WAAa7C,IAAb,cAA4BkD,aAA5B,CAA0C,KAAKrD,UAA/C;AACA,WAAKA,UAAL,GAAkB,CAAlB;AACD;;;wBAjQY;AAUX,aAAO,KAAKJ,OAAZ;AACD","sourcesContent":["import {isWebGL2, assertWebGLContext} from '@luma.gl/gltools';\nimport {lumaStats} from '../init';\nimport {getKey, getKeyValue} from '../webgl-utils/constants-to-keys';\nimport {assert} from '../utils/assert';\nimport {uid} from '../utils/utils';\nimport {stubRemovedMethods} from '../utils/stub-methods';\n\nconst ERR_RESOURCE_METHOD_UNDEFINED = 'Resource subclass must define virtual methods';\n\n// TODO - Handle context loss\n// function glGetContextLossCount(gl) {\n// return (gl.luma && gl.luma.glCount) || 0;\n// }\n\nexport default class Resource {\n // eslint-disable-next-line accessor-pairs\n get [Symbol.toStringTag]() {\n return 'Resource';\n }\n constructor(gl, opts = {}) {\n assertWebGLContext(gl);\n\n const {id, userData = {}} = opts;\n this.gl = gl;\n // @ts-ignore\n this.gl2 = gl;\n // this.ext = polyfillContext(gl);\n this.id = id || uid(this[Symbol.toStringTag]);\n this.userData = userData;\n this._bound = false;\n\n // Set the handle\n // If handle was provided, use it, otherwise create a new handle\n\n // TODO - Stores the handle with context loss information\n // this.glCount = glGetContextLossCount(this.gl);\n\n // Default VertexArray needs to be created with null handle, so compare against undefined\n this._handle = opts.handle;\n if (this._handle === undefined) {\n this._handle = this._createHandle();\n }\n\n // Only meaningful for resources that allocate GPU memory\n this.byteLength = 0;\n\n this._addStats();\n }\n\n toString() {\n return `${this[Symbol.toStringTag] || this.constructor.name}(${this.id})`;\n }\n\n get handle() {\n // TODO - Add context loss handling\n // Will regenerate and reinitialize the handle if necessary\n // const glCount = glGetContextLossCount(this.gl);\n // if (this.glCount !== glCount) {\n // this._handle = this._createHandle(this.opts);\n // this._glCount = glCount;\n // // Reinitialize object\n // this.initialize(this.opts);\n // }\n return this._handle;\n }\n\n delete({deleteChildren = false} = {}) {\n // Delete this object, and get refs to any children\n // @ts-ignore\n const children = this._handle && this._deleteHandle(this._handle);\n if (this._handle) {\n this._removeStats();\n }\n this._handle = null;\n\n // Optionally, recursively delete the children\n // @ts-ignore\n if (children && deleteChildren) {\n // @ts-ignore\n children.filter(Boolean).forEach(child => child.delete());\n }\n\n return this;\n }\n\n bind(funcOrHandle = this.handle) {\n if (typeof funcOrHandle !== 'function') {\n this._bindHandle(funcOrHandle);\n return this;\n }\n\n let value;\n\n if (!this._bound) {\n this._bindHandle(this.handle);\n this._bound = true;\n\n value = funcOrHandle();\n\n this._bound = false;\n this._bindHandle(null);\n } else {\n value = funcOrHandle();\n }\n\n return value;\n }\n\n unbind() {\n this.bind(null);\n }\n\n /**\n * Query a Resource parameter\n *\n * @param {GLenum} pname\n * @return {GLint|GLfloat|GLenum} param\n */\n getParameter(pname, opts = {}) {\n pname = getKeyValue(this.gl, pname);\n assert(pname);\n\n // @ts-ignore\n const parameters = this.constructor.PARAMETERS || {};\n\n // Use parameter definitions to handle unsupported parameters\n const parameter = parameters[pname];\n if (parameter) {\n const isWebgl2 = isWebGL2(this.gl);\n\n // Check if we can query for this parameter\n const parameterAvailable =\n (!('webgl2' in parameter) || isWebgl2) &&\n (!('extension' in parameter) || this.gl.getExtension(parameter.extension));\n\n if (!parameterAvailable) {\n const webgl1Default = parameter.webgl1;\n const webgl2Default = 'webgl2' in parameter ? parameter.webgl2 : parameter.webgl1;\n const defaultValue = isWebgl2 ? webgl2Default : webgl1Default;\n return defaultValue;\n }\n }\n\n // If unknown parameter - Could be a valid parameter not covered by PARAMS\n // Attempt to query for it and let WebGL report errors\n return this._getParameter(pname, opts);\n }\n\n // Many resources support a getParameter call -\n // getParameters will get all parameters - slow but useful for debugging\n // eslint-disable-next-line complexity\n getParameters(options = {}) {\n const {parameters, keys} = options;\n\n // Get parameter definitions for this Resource\n // @ts-ignore\n const PARAMETERS = this.constructor.PARAMETERS || {};\n\n const isWebgl2 = isWebGL2(this.gl);\n\n const values = {};\n\n // Query all parameters if no list provided\n const parameterKeys = parameters || Object.keys(PARAMETERS);\n\n // WEBGL limits\n for (const pname of parameterKeys) {\n const parameter = PARAMETERS[pname];\n\n // Check if this parameter is available on this platform\n const parameterAvailable =\n parameter &&\n (!('webgl2' in parameter) || isWebgl2) &&\n (!('extension' in parameter) || this.gl.getExtension(parameter.extension));\n\n if (parameterAvailable) {\n const key = keys ? getKey(this.gl, pname) : pname;\n values[key] = this.getParameter(pname, options);\n if (keys && parameter.type === 'GLenum') {\n values[key] = getKey(this.gl, values[key]);\n }\n }\n }\n\n return values;\n }\n\n /**\n * Update a Resource setting\n *\n * @todo - cache parameter to avoid issuing WebGL calls?\n *\n * @param {string} pname - parameter (GL constant, value or key)\n * @param {GLint|GLfloat|GLenum} value\n * @return {Resource} returns self to enable chaining\n */\n setParameter(pname, value) {\n pname = getKeyValue(this.gl, pname);\n assert(pname);\n\n // @ts-ignore\n const parameters = this.constructor.PARAMETERS || {};\n\n const parameter = parameters[pname];\n if (parameter) {\n const isWebgl2 = isWebGL2(this.gl);\n\n // Check if this parameter is available on this platform\n const parameterAvailable =\n (!('webgl2' in parameter) || isWebgl2) &&\n (!('extension' in parameter) || this.gl.getExtension(parameter.extension));\n\n if (!parameterAvailable) {\n throw new Error('Parameter not available on this platform');\n }\n\n // Handle string keys\n if (parameter.type === 'GLenum') {\n value = getKeyValue(value);\n }\n }\n\n // If unknown parameter - Could be a valid parameter not covered by PARAMS\n // attempt to set it and let WebGL report errors\n this._setParameter(pname, value);\n return this;\n }\n\n /*\n * Batch update resource parameters\n * Assumes the subclass supports a setParameter call\n */\n setParameters(parameters) {\n for (const pname in parameters) {\n this.setParameter(pname, parameters[pname]);\n }\n return this;\n }\n\n // Install stubs for removed methods\n stubRemovedMethods(className, version, methodNames) {\n return stubRemovedMethods(this, className, version, methodNames);\n }\n\n // PUBLIC VIRTUAL METHODS\n initialize(opts) {}\n\n // PROTECTED METHODS - These must be overridden by subclass\n _createHandle() {\n throw new Error(ERR_RESOURCE_METHOD_UNDEFINED);\n }\n\n _deleteHandle() {\n throw new Error(ERR_RESOURCE_METHOD_UNDEFINED);\n }\n\n _bindHandle(handle) {\n throw new Error(ERR_RESOURCE_METHOD_UNDEFINED);\n }\n\n _getOptsFromHandle() {\n throw new Error(ERR_RESOURCE_METHOD_UNDEFINED);\n }\n\n /** @returns {number} */\n _getParameter(pname, opts) {\n throw new Error(ERR_RESOURCE_METHOD_UNDEFINED);\n }\n\n _setParameter(pname, value) {\n throw new Error(ERR_RESOURCE_METHOD_UNDEFINED);\n }\n\n // PRIVATE METHODS\n\n _context() {\n this.gl.luma = this.gl.luma || {};\n return this.gl.luma;\n }\n\n _addStats() {\n const name = this[Symbol.toStringTag];\n const stats = lumaStats.get('Resource Counts');\n\n stats.get('Resources Created').incrementCount();\n stats.get(`${name}s Created`).incrementCount();\n stats.get(`${name}s Active`).incrementCount();\n }\n\n _removeStats() {\n const name = this[Symbol.toStringTag];\n const stats = lumaStats.get('Resource Counts');\n\n stats.get(`${name}s Active`).decrementCount();\n }\n\n _trackAllocatedMemory(bytes, name = this[Symbol.toStringTag]) {\n const stats = lumaStats.get('Memory Usage');\n\n stats.get('GPU Memory').addCount(bytes);\n stats.get(`${name} Memory`).addCount(bytes);\n this.byteLength = bytes;\n }\n\n _trackDeallocatedMemory(name = this[Symbol.toStringTag]) {\n const stats = lumaStats.get('Memory Usage');\n\n stats.get('GPU Memory').subtractCount(this.byteLength);\n stats.get(`${name} Memory`).subtractCount(this.byteLength);\n this.byteLength = 0;\n }\n}\n"],"file":"resource.js"}
1
+ {"version":3,"file":"resource.js","names":["ERR_RESOURCE_METHOD_UNDEFINED","Resource","gl","opts","assertWebGLContext","id","userData","gl2","uid","Symbol","toStringTag","_bound","_handle","handle","undefined","_createHandle","byteLength","_initStats","_addStats","constructor","name","deleteChildren","children","_deleteHandle","_removeStats","filter","Boolean","forEach","child","delete","funcOrHandle","_bindHandle","value","bind","pname","getKeyValue","assert","parameters","PARAMETERS","parameter","isWebgl2","isWebGL2","parameterAvailable","getExtension","extension","webgl1Default","webgl1","webgl2Default","webgl2","defaultValue","_getParameter","options","keys","values","parameterKeys","Object","key","getKey","getParameter","type","Error","_setParameter","setParameter","className","version","methodNames","stubRemovedMethods","luma","stats","StatsManager","lumaStats","get","incrementCount","decrementCount","bytes","_doTrackAllocatedMemory","addCount","_doTrackDeallocatedMemory","subtractCount"],"sources":["../../../src/classes/resource.js"],"sourcesContent":["import {isWebGL2, assertWebGLContext} from '@luma.gl/gltools';\nimport {lumaStats, StatsManager} from '../init';\nimport {getKey, getKeyValue} from '../webgl-utils/constants-to-keys';\nimport {assert} from '../utils/assert';\nimport {uid} from '../utils/utils';\nimport {stubRemovedMethods} from '../utils/stub-methods';\n\nconst ERR_RESOURCE_METHOD_UNDEFINED = 'Resource subclass must define virtual methods';\n\n// TODO - Handle context loss\n// function glGetContextLossCount(gl) {\n// return (gl.luma && gl.luma.glCount) || 0;\n// }\n\nexport default class Resource {\n // eslint-disable-next-line accessor-pairs\n get [Symbol.toStringTag]() {\n return 'Resource';\n }\n constructor(gl, opts = {}) {\n assertWebGLContext(gl);\n\n const {id, userData = {}} = opts;\n this.gl = gl;\n // @ts-ignore\n this.gl2 = gl;\n // this.ext = polyfillContext(gl);\n this.id = id || uid(this[Symbol.toStringTag]);\n this.userData = userData;\n this._bound = false;\n\n // Set the handle\n // If handle was provided, use it, otherwise create a new handle\n\n // TODO - Stores the handle with context loss information\n // this.glCount = glGetContextLossCount(this.gl);\n\n // Default VertexArray needs to be created with null handle, so compare against undefined\n this._handle = opts.handle;\n if (this._handle === undefined) {\n this._handle = this._createHandle();\n }\n\n // Only meaningful for resources that allocate GPU memory\n this.byteLength = 0;\n\n this._initStats();\n this._addStats();\n }\n\n toString() {\n return `${this[Symbol.toStringTag] || this.constructor.name}(${this.id})`;\n }\n\n get handle() {\n // TODO - Add context loss handling\n // Will regenerate and reinitialize the handle if necessary\n // const glCount = glGetContextLossCount(this.gl);\n // if (this.glCount !== glCount) {\n // this._handle = this._createHandle(this.opts);\n // this._glCount = glCount;\n // // Reinitialize object\n // this.initialize(this.opts);\n // }\n return this._handle;\n }\n\n delete({deleteChildren = false} = {}) {\n // Delete this object, and get refs to any children\n // @ts-ignore\n const children = this._handle && this._deleteHandle(this._handle);\n if (this._handle) {\n this._removeStats();\n }\n this._handle = null;\n\n // Optionally, recursively delete the children\n // @ts-ignore\n if (children && deleteChildren) {\n // @ts-ignore\n children.filter(Boolean).forEach(child => child.delete());\n }\n\n return this;\n }\n\n bind(funcOrHandle = this.handle) {\n if (typeof funcOrHandle !== 'function') {\n this._bindHandle(funcOrHandle);\n return this;\n }\n\n let value;\n\n if (!this._bound) {\n this._bindHandle(this.handle);\n this._bound = true;\n\n value = funcOrHandle();\n\n this._bound = false;\n this._bindHandle(null);\n } else {\n value = funcOrHandle();\n }\n\n return value;\n }\n\n unbind() {\n this.bind(null);\n }\n\n /**\n * Query a Resource parameter\n *\n * @param {GLenum} pname\n * @return {GLint|GLfloat|GLenum} param\n */\n getParameter(pname, opts = {}) {\n pname = getKeyValue(this.gl, pname);\n assert(pname);\n\n // @ts-ignore\n const parameters = this.constructor.PARAMETERS || {};\n\n // Use parameter definitions to handle unsupported parameters\n const parameter = parameters[pname];\n if (parameter) {\n const isWebgl2 = isWebGL2(this.gl);\n\n // Check if we can query for this parameter\n const parameterAvailable =\n (!('webgl2' in parameter) || isWebgl2) &&\n (!('extension' in parameter) || this.gl.getExtension(parameter.extension));\n\n if (!parameterAvailable) {\n const webgl1Default = parameter.webgl1;\n const webgl2Default = 'webgl2' in parameter ? parameter.webgl2 : parameter.webgl1;\n const defaultValue = isWebgl2 ? webgl2Default : webgl1Default;\n return defaultValue;\n }\n }\n\n // If unknown parameter - Could be a valid parameter not covered by PARAMS\n // Attempt to query for it and let WebGL report errors\n return this._getParameter(pname, opts);\n }\n\n // Many resources support a getParameter call -\n // getParameters will get all parameters - slow but useful for debugging\n // eslint-disable-next-line complexity\n getParameters(options = {}) {\n const {parameters, keys} = options;\n\n // Get parameter definitions for this Resource\n // @ts-ignore\n const PARAMETERS = this.constructor.PARAMETERS || {};\n\n const isWebgl2 = isWebGL2(this.gl);\n\n const values = {};\n\n // Query all parameters if no list provided\n const parameterKeys = parameters || Object.keys(PARAMETERS);\n\n // WEBGL limits\n for (const pname of parameterKeys) {\n const parameter = PARAMETERS[pname];\n\n // Check if this parameter is available on this platform\n const parameterAvailable =\n parameter &&\n (!('webgl2' in parameter) || isWebgl2) &&\n (!('extension' in parameter) || this.gl.getExtension(parameter.extension));\n\n if (parameterAvailable) {\n const key = keys ? getKey(this.gl, pname) : pname;\n values[key] = this.getParameter(pname, options);\n if (keys && parameter.type === 'GLenum') {\n values[key] = getKey(this.gl, values[key]);\n }\n }\n }\n\n return values;\n }\n\n /**\n * Update a Resource setting\n *\n * @todo - cache parameter to avoid issuing WebGL calls?\n *\n * @param {string} pname - parameter (GL constant, value or key)\n * @param {GLint|GLfloat|GLenum} value\n * @return {Resource} returns self to enable chaining\n */\n setParameter(pname, value) {\n pname = getKeyValue(this.gl, pname);\n assert(pname);\n\n // @ts-ignore\n const parameters = this.constructor.PARAMETERS || {};\n\n const parameter = parameters[pname];\n if (parameter) {\n const isWebgl2 = isWebGL2(this.gl);\n\n // Check if this parameter is available on this platform\n const parameterAvailable =\n (!('webgl2' in parameter) || isWebgl2) &&\n (!('extension' in parameter) || this.gl.getExtension(parameter.extension));\n\n if (!parameterAvailable) {\n throw new Error('Parameter not available on this platform');\n }\n\n // Handle string keys\n if (parameter.type === 'GLenum') {\n value = getKeyValue(value);\n }\n }\n\n // If unknown parameter - Could be a valid parameter not covered by PARAMS\n // attempt to set it and let WebGL report errors\n this._setParameter(pname, value);\n return this;\n }\n\n /*\n * Batch update resource parameters\n * Assumes the subclass supports a setParameter call\n */\n setParameters(parameters) {\n for (const pname in parameters) {\n this.setParameter(pname, parameters[pname]);\n }\n return this;\n }\n\n // Install stubs for removed methods\n stubRemovedMethods(className, version, methodNames) {\n return stubRemovedMethods(this, className, version, methodNames);\n }\n\n // PUBLIC VIRTUAL METHODS\n initialize(opts) {}\n\n // PROTECTED METHODS - These must be overridden by subclass\n _createHandle() {\n throw new Error(ERR_RESOURCE_METHOD_UNDEFINED);\n }\n\n _deleteHandle() {\n throw new Error(ERR_RESOURCE_METHOD_UNDEFINED);\n }\n\n _bindHandle(handle) {\n throw new Error(ERR_RESOURCE_METHOD_UNDEFINED);\n }\n\n _getOptsFromHandle() {\n throw new Error(ERR_RESOURCE_METHOD_UNDEFINED);\n }\n\n /** @returns {number} */\n _getParameter(pname, opts) {\n throw new Error(ERR_RESOURCE_METHOD_UNDEFINED);\n }\n\n _setParameter(pname, value) {\n throw new Error(ERR_RESOURCE_METHOD_UNDEFINED);\n }\n\n // PRIVATE METHODS\n\n _context() {\n this.gl.luma = this.gl.luma || {};\n return this.gl.luma;\n }\n\n _initStats() {\n this.gl.stats = this.gl.stats || new StatsManager();\n }\n\n _addStats() {\n const name = this[Symbol.toStringTag];\n const stats = lumaStats.get('Resource Counts');\n\n stats.get('Resources Created').incrementCount();\n stats.get(`${name}s Created`).incrementCount();\n stats.get(`${name}s Active`).incrementCount();\n }\n\n _removeStats() {\n const name = this[Symbol.toStringTag];\n const stats = lumaStats.get('Resource Counts');\n\n stats.get(`${name}s Active`).decrementCount();\n }\n\n _trackAllocatedMemory(bytes, name = this[Symbol.toStringTag]) {\n this._doTrackAllocatedMemory(bytes, name);\n this._doTrackAllocatedMemory(bytes, name, this.gl.stats.get(`Memory Usage`));\n }\n\n _doTrackAllocatedMemory(\n bytes,\n name = this[Symbol.toStringTag],\n stats = lumaStats.get(`Memory Usage`)\n ) {\n stats.get('GPU Memory').addCount(bytes);\n stats.get(`${name} Memory`).addCount(bytes);\n this.byteLength = bytes;\n }\n\n _trackDeallocatedMemory(name = this[Symbol.toStringTag]) {\n this._doTrackDeallocatedMemory(name);\n this._doTrackDeallocatedMemory(name, this.gl.stats.get(`Memory Usage`));\n }\n\n _doTrackDeallocatedMemory(\n name = this[Symbol.toStringTag],\n stats = lumaStats.get(`Memory Usage`)\n ) {\n stats.get('GPU Memory').subtractCount(this.byteLength);\n stats.get(`${name} Memory`).subtractCount(this.byteLength);\n this.byteLength = 0;\n }\n}\n"],"mappings":"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"}
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.FragmentShader = exports.VertexShader = exports.Shader = void 0;
8
+ exports.VertexShader = exports.Shader = exports.FragmentShader = void 0;
9
9
 
10
10
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
11
 
@@ -29,37 +29,15 @@ var _resource = _interopRequireDefault(require("./resource"));
29
29
 
30
30
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
31
31
 
32
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
32
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
33
33
 
34
34
  var ERR_SOURCE = 'Shader: GLSL source code must be a JavaScript string';
35
35
 
36
- var Shader = function (_Resource) {
36
+ var Shader = function (_Resource, _Symbol$toStringTag) {
37
37
  (0, _inherits2.default)(Shader, _Resource);
38
38
 
39
39
  var _super = _createSuper(Shader);
40
40
 
41
- (0, _createClass2.default)(Shader, [{
42
- key: Symbol.toStringTag,
43
- get: function get() {
44
- return 'Shader';
45
- }
46
- }], [{
47
- key: "getTypeName",
48
- value: function getTypeName(shaderType) {
49
- switch (shaderType) {
50
- case 35633:
51
- return 'vertex-shader';
52
-
53
- case 35632:
54
- return 'fragment-shader';
55
-
56
- default:
57
- (0, _assert.assert)(false);
58
- return 'unknown';
59
- }
60
- }
61
- }]);
62
-
63
41
  function Shader(gl, props) {
64
42
  var _this;
65
43
 
@@ -79,6 +57,11 @@ var Shader = function (_Resource) {
79
57
  }
80
58
 
81
59
  (0, _createClass2.default)(Shader, [{
60
+ key: _Symbol$toStringTag,
61
+ get: function get() {
62
+ return 'Shader';
63
+ }
64
+ }, {
82
65
  key: "initialize",
83
66
  value: function initialize(_ref) {
84
67
  var source = _ref.source;
@@ -158,24 +141,32 @@ var Shader = function (_Resource) {
158
141
  source: this.getSource()
159
142
  };
160
143
  }
144
+ }], [{
145
+ key: "getTypeName",
146
+ value: function getTypeName(shaderType) {
147
+ switch (shaderType) {
148
+ case 35633:
149
+ return 'vertex-shader';
150
+
151
+ case 35632:
152
+ return 'fragment-shader';
153
+
154
+ default:
155
+ (0, _assert.assert)(false);
156
+ return 'unknown';
157
+ }
158
+ }
161
159
  }]);
162
160
  return Shader;
163
- }(_resource.default);
161
+ }(_resource.default, Symbol.toStringTag);
164
162
 
165
163
  exports.Shader = Shader;
166
164
 
167
- var VertexShader = function (_Shader) {
165
+ var VertexShader = function (_Shader, _Symbol$toStringTag2) {
168
166
  (0, _inherits2.default)(VertexShader, _Shader);
169
167
 
170
168
  var _super2 = _createSuper(VertexShader);
171
169
 
172
- (0, _createClass2.default)(VertexShader, [{
173
- key: Symbol.toStringTag,
174
- get: function get() {
175
- return 'VertexShader';
176
- }
177
- }]);
178
-
179
170
  function VertexShader(gl, props) {
180
171
  (0, _classCallCheck2.default)(this, VertexShader);
181
172
 
@@ -191,28 +182,26 @@ var VertexShader = function (_Shader) {
191
182
  }
192
183
 
193
184
  (0, _createClass2.default)(VertexShader, [{
185
+ key: _Symbol$toStringTag2,
186
+ get: function get() {
187
+ return 'VertexShader';
188
+ }
189
+ }, {
194
190
  key: "_createHandle",
195
191
  value: function _createHandle() {
196
192
  return this.gl.createShader(35633);
197
193
  }
198
194
  }]);
199
195
  return VertexShader;
200
- }(Shader);
196
+ }(Shader, Symbol.toStringTag);
201
197
 
202
198
  exports.VertexShader = VertexShader;
203
199
 
204
- var FragmentShader = function (_Shader2) {
200
+ var FragmentShader = function (_Shader2, _Symbol$toStringTag3) {
205
201
  (0, _inherits2.default)(FragmentShader, _Shader2);
206
202
 
207
203
  var _super3 = _createSuper(FragmentShader);
208
204
 
209
- (0, _createClass2.default)(FragmentShader, [{
210
- key: Symbol.toStringTag,
211
- get: function get() {
212
- return 'FragmentShader';
213
- }
214
- }]);
215
-
216
205
  function FragmentShader(gl, props) {
217
206
  (0, _classCallCheck2.default)(this, FragmentShader);
218
207
 
@@ -228,13 +217,18 @@ var FragmentShader = function (_Shader2) {
228
217
  }
229
218
 
230
219
  (0, _createClass2.default)(FragmentShader, [{
220
+ key: _Symbol$toStringTag3,
221
+ get: function get() {
222
+ return 'FragmentShader';
223
+ }
224
+ }, {
231
225
  key: "_createHandle",
232
226
  value: function _createHandle() {
233
227
  return this.gl.createShader(35632);
234
228
  }
235
229
  }]);
236
230
  return FragmentShader;
237
- }(Shader);
231
+ }(Shader, Symbol.toStringTag);
238
232
 
239
233
  exports.FragmentShader = FragmentShader;
240
234
  //# sourceMappingURL=shader.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/classes/shader.js"],"names":["ERR_SOURCE","Shader","Symbol","toStringTag","shaderType","gl","props","source","id","getTypeName","initialize","shaderName","_compile","pname","getShaderParameter","handle","getShaderSource","extension","getExtension","getTranslatedShaderSource","startsWith","shaderSource","compileShader","compileStatus","getParameter","infoLog","getShaderInfoLog","errors","warnings","log","error","warn","Error","deleteShader","type","getSource","Resource","VertexShader","Object","assign","createShader","FragmentShader"],"mappings":"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","sourcesContent":["import GL from '@luma.gl/constants';\nimport {assertWebGLContext, log} from '@luma.gl/gltools';\nimport {parseGLSLCompilerError, getShaderName} from '../glsl-utils';\nimport {assert} from '../utils/assert';\nimport {uid} from '../utils/utils';\nimport Resource from './resource';\n\nconst ERR_SOURCE = 'Shader: GLSL source code must be a JavaScript string';\n\n// For now this is an internal class\nexport class Shader extends Resource {\n // eslint-disable-next-line accessor-pairs\n get [Symbol.toStringTag]() {\n return 'Shader';\n }\n\n static getTypeName(shaderType) {\n switch (shaderType) {\n case GL.VERTEX_SHADER:\n return 'vertex-shader';\n case GL.FRAGMENT_SHADER:\n return 'fragment-shader';\n default:\n assert(false);\n return 'unknown';\n }\n }\n\n /* eslint-disable max-statements */\n constructor(gl, props) {\n assertWebGLContext(gl);\n\n // Validate arguments\n assert(typeof props.source === 'string', ERR_SOURCE);\n\n // Deduce an id, from shader source, or supplied id, or shader type\n const id =\n getShaderName(props.source, null) ||\n props.id ||\n uid(`unnamed ${Shader.getTypeName(props.shaderType)}`);\n\n super(gl, {id});\n\n this.shaderType = props.shaderType;\n this.source = props.source;\n\n this.initialize(props);\n }\n\n initialize({source}) {\n const shaderName = getShaderName(source, null);\n if (shaderName) {\n this.id = uid(shaderName);\n }\n this._compile(source);\n }\n\n // Accessors\n\n getParameter(pname) {\n return this.gl.getShaderParameter(this.handle, pname);\n }\n\n toString() {\n return `${Shader.getTypeName(this.shaderType)}:${this.id}`;\n }\n\n getName() {\n return getShaderName(this.source) || 'unnamed-shader';\n }\n\n getSource() {\n return this.gl.getShaderSource(this.handle);\n }\n\n // Debug method - Returns translated source if available\n getTranslatedSource() {\n const extension = this.gl.getExtension('WEBGL_debug_shaders');\n return extension\n ? extension.getTranslatedShaderSource(this.handle)\n : 'No translated source available. WEBGL_debug_shaders not implemented';\n }\n\n // PRIVATE METHODS\n _compile(source = this.source) {\n if (!source.startsWith('#version ')) {\n source = `#version 100\\n${source}`;\n }\n this.source = source;\n this.gl.shaderSource(this.handle, this.source);\n this.gl.compileShader(this.handle);\n\n // TODO - For performance reasons, avoid checking shader compilation errors on production?\n // TODO - Load log even when no error reported, to catch warnings?\n // https://gamedev.stackexchange.com/questions/30429/how-to-detect-glsl-warnings\n const compileStatus = this.getParameter(GL.COMPILE_STATUS);\n if (!compileStatus) {\n const infoLog = this.gl.getShaderInfoLog(this.handle);\n const {shaderName, errors, warnings} = parseGLSLCompilerError(\n infoLog,\n this.source,\n this.shaderType,\n this.id\n );\n log.error(`GLSL compilation errors in ${shaderName}\\n${errors}`)();\n log.warn(`GLSL compilation warnings in ${shaderName}\\n${warnings}`)();\n throw new Error(`GLSL compilation errors in ${shaderName}`);\n }\n }\n\n _deleteHandle() {\n this.gl.deleteShader(this.handle);\n }\n\n _getOptsFromHandle() {\n return {\n type: this.getParameter(GL.SHADER_TYPE),\n source: this.getSource()\n };\n }\n}\n\nexport class VertexShader extends Shader {\n // eslint-disable-next-line accessor-pairs\n get [Symbol.toStringTag]() {\n return 'VertexShader';\n }\n\n constructor(gl, props) {\n // Signature: new VertexShader(gl, source)\n if (typeof props === 'string') {\n props = {source: props};\n }\n super(gl, Object.assign({}, props, {shaderType: GL.VERTEX_SHADER}));\n }\n\n // PRIVATE METHODS\n _createHandle() {\n return this.gl.createShader(GL.VERTEX_SHADER);\n }\n}\n\nexport class FragmentShader extends Shader {\n // eslint-disable-next-line accessor-pairs\n get [Symbol.toStringTag]() {\n return 'FragmentShader';\n }\n constructor(gl, props) {\n // Signature: new FragmentShader(gl, source)\n if (typeof props === 'string') {\n props = {source: props};\n }\n\n super(gl, Object.assign({}, props, {shaderType: GL.FRAGMENT_SHADER}));\n }\n\n // PRIVATE METHODS\n _createHandle() {\n return this.gl.createShader(GL.FRAGMENT_SHADER);\n }\n}\n"],"file":"shader.js"}
1
+ {"version":3,"file":"shader.js","names":["ERR_SOURCE","Shader","gl","props","assertWebGLContext","assert","source","id","getShaderName","uid","getTypeName","shaderType","initialize","shaderName","_compile","pname","getShaderParameter","handle","getShaderSource","extension","getExtension","getTranslatedShaderSource","startsWith","shaderSource","compileShader","compileStatus","getParameter","infoLog","getShaderInfoLog","parseGLSLCompilerError","errors","warnings","log","error","warn","Error","deleteShader","type","getSource","Resource","Symbol","toStringTag","VertexShader","Object","assign","createShader","FragmentShader"],"sources":["../../../src/classes/shader.js"],"sourcesContent":["import GL from '@luma.gl/constants';\nimport {assertWebGLContext, log} from '@luma.gl/gltools';\nimport {parseGLSLCompilerError, getShaderName} from '../glsl-utils';\nimport {assert} from '../utils/assert';\nimport {uid} from '../utils/utils';\nimport Resource from './resource';\n\nconst ERR_SOURCE = 'Shader: GLSL source code must be a JavaScript string';\n\n// For now this is an internal class\nexport class Shader extends Resource {\n // eslint-disable-next-line accessor-pairs\n get [Symbol.toStringTag]() {\n return 'Shader';\n }\n\n static getTypeName(shaderType) {\n switch (shaderType) {\n case GL.VERTEX_SHADER:\n return 'vertex-shader';\n case GL.FRAGMENT_SHADER:\n return 'fragment-shader';\n default:\n assert(false);\n return 'unknown';\n }\n }\n\n /* eslint-disable max-statements */\n constructor(gl, props) {\n assertWebGLContext(gl);\n\n // Validate arguments\n assert(typeof props.source === 'string', ERR_SOURCE);\n\n // Deduce an id, from shader source, or supplied id, or shader type\n const id =\n getShaderName(props.source, null) ||\n props.id ||\n uid(`unnamed ${Shader.getTypeName(props.shaderType)}`);\n\n super(gl, {id});\n\n this.shaderType = props.shaderType;\n this.source = props.source;\n\n this.initialize(props);\n }\n\n initialize({source}) {\n const shaderName = getShaderName(source, null);\n if (shaderName) {\n this.id = uid(shaderName);\n }\n this._compile(source);\n }\n\n // Accessors\n\n getParameter(pname) {\n return this.gl.getShaderParameter(this.handle, pname);\n }\n\n toString() {\n return `${Shader.getTypeName(this.shaderType)}:${this.id}`;\n }\n\n getName() {\n return getShaderName(this.source) || 'unnamed-shader';\n }\n\n getSource() {\n return this.gl.getShaderSource(this.handle);\n }\n\n // Debug method - Returns translated source if available\n getTranslatedSource() {\n const extension = this.gl.getExtension('WEBGL_debug_shaders');\n return extension\n ? extension.getTranslatedShaderSource(this.handle)\n : 'No translated source available. WEBGL_debug_shaders not implemented';\n }\n\n // PRIVATE METHODS\n _compile(source = this.source) {\n if (!source.startsWith('#version ')) {\n source = `#version 100\\n${source}`;\n }\n this.source = source;\n this.gl.shaderSource(this.handle, this.source);\n this.gl.compileShader(this.handle);\n\n // TODO - For performance reasons, avoid checking shader compilation errors on production?\n // TODO - Load log even when no error reported, to catch warnings?\n // https://gamedev.stackexchange.com/questions/30429/how-to-detect-glsl-warnings\n const compileStatus = this.getParameter(GL.COMPILE_STATUS);\n if (!compileStatus) {\n const infoLog = this.gl.getShaderInfoLog(this.handle);\n const {shaderName, errors, warnings} = parseGLSLCompilerError(\n infoLog,\n this.source,\n this.shaderType,\n this.id\n );\n log.error(`GLSL compilation errors in ${shaderName}\\n${errors}`)();\n log.warn(`GLSL compilation warnings in ${shaderName}\\n${warnings}`)();\n throw new Error(`GLSL compilation errors in ${shaderName}`);\n }\n }\n\n _deleteHandle() {\n this.gl.deleteShader(this.handle);\n }\n\n _getOptsFromHandle() {\n return {\n type: this.getParameter(GL.SHADER_TYPE),\n source: this.getSource()\n };\n }\n}\n\nexport class VertexShader extends Shader {\n // eslint-disable-next-line accessor-pairs\n get [Symbol.toStringTag]() {\n return 'VertexShader';\n }\n\n constructor(gl, props) {\n // Signature: new VertexShader(gl, source)\n if (typeof props === 'string') {\n props = {source: props};\n }\n super(gl, Object.assign({}, props, {shaderType: GL.VERTEX_SHADER}));\n }\n\n // PRIVATE METHODS\n _createHandle() {\n return this.gl.createShader(GL.VERTEX_SHADER);\n }\n}\n\nexport class FragmentShader extends Shader {\n // eslint-disable-next-line accessor-pairs\n get [Symbol.toStringTag]() {\n return 'FragmentShader';\n }\n constructor(gl, props) {\n // Signature: new FragmentShader(gl, source)\n if (typeof props === 'string') {\n props = {source: props};\n }\n\n super(gl, Object.assign({}, props, {shaderType: GL.FRAGMENT_SHADER}));\n }\n\n // PRIVATE METHODS\n _createHandle() {\n return this.gl.createShader(GL.FRAGMENT_SHADER);\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;AAEA,IAAMA,UAAU,GAAG,sDAAnB;;IAGaC,M;;;;;EAmBX,gBAAYC,EAAZ,EAAgBC,KAAhB,EAAuB;IAAA;;IAAA;IACrB,IAAAC,2BAAA,EAAmBF,EAAnB;IAGA,IAAAG,cAAA,EAAO,OAAOF,KAAK,CAACG,MAAb,KAAwB,QAA/B,EAAyCN,UAAzC;IAGA,IAAMO,EAAE,GACN,IAAAC,wBAAA,EAAcL,KAAK,CAACG,MAApB,EAA4B,IAA5B,KACAH,KAAK,CAACI,EADN,IAEA,IAAAE,UAAA,oBAAeR,MAAM,CAACS,WAAP,CAAmBP,KAAK,CAACQ,UAAzB,CAAf,EAHF;IAKA,0BAAMT,EAAN,EAAU;MAACK,EAAE,EAAFA;IAAD,CAAV;IAEA,MAAKI,UAAL,GAAkBR,KAAK,CAACQ,UAAxB;IACA,MAAKL,MAAL,GAAcH,KAAK,CAACG,MAApB;;IAEA,MAAKM,UAAL,CAAgBT,KAAhB;;IAjBqB;EAkBtB;;;;SAnCD,eAA2B;MACzB,OAAO,QAAP;IACD;;;WAmCD,0BAAqB;MAAA,IAATG,MAAS,QAATA,MAAS;MACnB,IAAMO,UAAU,GAAG,IAAAL,wBAAA,EAAcF,MAAd,EAAsB,IAAtB,CAAnB;;MACA,IAAIO,UAAJ,EAAgB;QACd,KAAKN,EAAL,GAAU,IAAAE,UAAA,EAAII,UAAJ,CAAV;MACD;;MACD,KAAKC,QAAL,CAAcR,MAAd;IACD;;;WAID,sBAAaS,KAAb,EAAoB;MAClB,OAAO,KAAKb,EAAL,CAAQc,kBAAR,CAA2B,KAAKC,MAAhC,EAAwCF,KAAxC,CAAP;IACD;;;WAED,oBAAW;MACT,iBAAUd,MAAM,CAACS,WAAP,CAAmB,KAAKC,UAAxB,CAAV,cAAiD,KAAKJ,EAAtD;IACD;;;WAED,mBAAU;MACR,OAAO,IAAAC,wBAAA,EAAc,KAAKF,MAAnB,KAA8B,gBAArC;IACD;;;WAED,qBAAY;MACV,OAAO,KAAKJ,EAAL,CAAQgB,eAAR,CAAwB,KAAKD,MAA7B,CAAP;IACD;;;WAGD,+BAAsB;MACpB,IAAME,SAAS,GAAG,KAAKjB,EAAL,CAAQkB,YAAR,CAAqB,qBAArB,CAAlB;MACA,OAAOD,SAAS,GACZA,SAAS,CAACE,yBAAV,CAAoC,KAAKJ,MAAzC,CADY,GAEZ,qEAFJ;IAGD;;;WAGD,oBAA+B;MAAA,IAAtBX,MAAsB,uEAAb,KAAKA,MAAQ;;MAC7B,IAAI,CAACA,MAAM,CAACgB,UAAP,CAAkB,WAAlB,CAAL,EAAqC;QACnChB,MAAM,2BAAoBA,MAApB,CAAN;MACD;;MACD,KAAKA,MAAL,GAAcA,MAAd;MACA,KAAKJ,EAAL,CAAQqB,YAAR,CAAqB,KAAKN,MAA1B,EAAkC,KAAKX,MAAvC;MACA,KAAKJ,EAAL,CAAQsB,aAAR,CAAsB,KAAKP,MAA3B;MAKA,IAAMQ,aAAa,GAAG,KAAKC,YAAL,OAAtB;;MACA,IAAI,CAACD,aAAL,EAAoB;QAClB,IAAME,OAAO,GAAG,KAAKzB,EAAL,CAAQ0B,gBAAR,CAAyB,KAAKX,MAA9B,CAAhB;;QACA,4BAAuC,IAAAY,iCAAA,EACrCF,OADqC,EAErC,KAAKrB,MAFgC,EAGrC,KAAKK,UAHgC,EAIrC,KAAKJ,EAJgC,CAAvC;QAAA,IAAOM,UAAP,yBAAOA,UAAP;QAAA,IAAmBiB,MAAnB,yBAAmBA,MAAnB;QAAA,IAA2BC,QAA3B,yBAA2BA,QAA3B;;QAMAC,YAAA,CAAIC,KAAJ,sCAAwCpB,UAAxC,eAAuDiB,MAAvD;;QACAE,YAAA,CAAIE,IAAJ,wCAAyCrB,UAAzC,eAAwDkB,QAAxD;;QACA,MAAM,IAAII,KAAJ,sCAAwCtB,UAAxC,EAAN;MACD;IACF;;;WAED,yBAAgB;MACd,KAAKX,EAAL,CAAQkC,YAAR,CAAqB,KAAKnB,MAA1B;IACD;;;WAED,8BAAqB;MACnB,OAAO;QACLoB,IAAI,EAAE,KAAKX,YAAL,OADD;QAELpB,MAAM,EAAE,KAAKgC,SAAL;MAFH,CAAP;IAID;;;WAvGD,qBAAmB3B,UAAnB,EAA+B;MAC7B,QAAQA,UAAR;QACE;UACE,OAAO,eAAP;;QACF;UACE,OAAO,iBAAP;;QACF;UACE,IAAAN,cAAA,EAAO,KAAP;UACA,OAAO,SAAP;MAPJ;IASD;;;EAhByBkC,iB,EAErBC,MAAM,CAACC,W;;;;IA8GDC,Y;;;;;EAMX,sBAAYxC,EAAZ,EAAgBC,KAAhB,EAAuB;IAAA;;IAErB,IAAI,OAAOA,KAAP,KAAiB,QAArB,EAA+B;MAC7BA,KAAK,GAAG;QAACG,MAAM,EAAEH;MAAT,CAAR;IACD;;IAJoB,0BAKfD,EALe,EAKXyC,MAAM,CAACC,MAAP,CAAc,EAAd,EAAkBzC,KAAlB,EAAyB;MAACQ,UAAU;IAAX,CAAzB,CALW;EAMtB;;;;SAVD,eAA2B;MACzB,OAAO,cAAP;IACD;;;WAWD,yBAAgB;MACd,OAAO,KAAKT,EAAL,CAAQ2C,YAAR,OAAP;IACD;;;EAjB+B5C,M,EAE3BuC,MAAM,CAACC,W;;;;IAkBDK,c;;;;;EAKX,wBAAY5C,EAAZ,EAAgBC,KAAhB,EAAuB;IAAA;;IAErB,IAAI,OAAOA,KAAP,KAAiB,QAArB,EAA+B;MAC7BA,KAAK,GAAG;QAACG,MAAM,EAAEH;MAAT,CAAR;IACD;;IAJoB,0BAMfD,EANe,EAMXyC,MAAM,CAACC,MAAP,CAAc,EAAd,EAAkBzC,KAAlB,EAAyB;MAACQ,UAAU;IAAX,CAAzB,CANW;EAOtB;;;;SAVD,eAA2B;MACzB,OAAO,gBAAP;IACD;;;WAWD,yBAAgB;MACd,OAAO,KAAKT,EAAL,CAAQ2C,YAAR,OAAP;IACD;;;EAjBiC5C,M,EAE7BuC,MAAM,CAACC,W"}
@@ -9,10 +9,10 @@ exports.default = void 0;
9
9
 
10
10
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
11
 
12
- var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
13
-
14
12
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
15
13
 
14
+ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
15
+
16
16
  var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
17
17
 
18
18
  var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
@@ -27,25 +27,13 @@ var _loadFile = require("../utils/load-file");
27
27
 
28
28
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
29
29
 
30
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
30
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
31
31
 
32
- var Texture2D = function (_Texture) {
32
+ var Texture2D = function (_Texture, _Symbol$toStringTag) {
33
33
  (0, _inherits2.default)(Texture2D, _Texture);
34
34
 
35
35
  var _super = _createSuper(Texture2D);
36
36
 
37
- (0, _createClass2.default)(Texture2D, [{
38
- key: Symbol.toStringTag,
39
- get: function get() {
40
- return 'Texture2D';
41
- }
42
- }], [{
43
- key: "isSupported",
44
- value: function isSupported(gl, opts) {
45
- return _texture.default.isSupported(gl, opts);
46
- }
47
- }]);
48
-
49
37
  function Texture2D(gl) {
50
38
  var _this;
51
39
 
@@ -75,8 +63,19 @@ var Texture2D = function (_Texture) {
75
63
  return _this;
76
64
  }
77
65
 
66
+ (0, _createClass2.default)(Texture2D, [{
67
+ key: _Symbol$toStringTag,
68
+ get: function get() {
69
+ return 'Texture2D';
70
+ }
71
+ }], [{
72
+ key: "isSupported",
73
+ value: function isSupported(gl, opts) {
74
+ return _texture.default.isSupported(gl, opts);
75
+ }
76
+ }]);
78
77
  return Texture2D;
79
- }(_texture.default);
78
+ }(_texture.default, Symbol.toStringTag);
80
79
 
81
80
  exports.default = Texture2D;
82
81
  //# sourceMappingURL=texture-2d.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/classes/texture-2d.js"],"names":["Texture2D","Symbol","toStringTag","gl","opts","Texture","isSupported","props","Promise","data","Object","assign","target","initialize","seal"],"mappings":";;;;;;;;;;;;;;;;;;;;;AACA;;AACA;;AACA;;;;;;IAEqBA,S;;;;;;SAEdC,MAAM,CAACC,W;wBAAe;AACzB,aAAO,WAAP;AACD;;;gCAEkBC,E,EAAIC,I,EAAM;AAC3B,aAAOC,iBAAQC,WAAR,CAAoBH,EAApB,EAAwBC,IAAxB,CAAP;AACD;;;AAED,qBAAYD,EAAZ,EAA4B;AAAA;;AAAA,QAAZI,KAAY,uEAAJ,EAAI;AAAA;AAC1B,qCAAmBJ,EAAnB;;AAGA,QAAII,KAAK,YAAYC,OAAjB,IAA4B,OAAOD,KAAP,KAAiB,QAAjD,EAA2D;AACzDA,MAAAA,KAAK,GAAG;AAACE,QAAAA,IAAI,EAAEF;AAAP,OAAR;AACD;;AAGD,QAAI,OAAOA,KAAK,CAACE,IAAb,KAAsB,QAA1B,EAAoC;AAClCF,MAAAA,KAAK,GAAGG,MAAM,CAACC,MAAP,CAAc,EAAd,EAAkBJ,KAAlB,EAAyB;AAACE,QAAAA,IAAI,EAAE,yBAAUF,KAAK,CAACE,IAAhB;AAAP,OAAzB,CAAR;AACD;;AAED,8BAAMN,EAAN,EAAUO,MAAM,CAACC,MAAP,CAAc,EAAd,EAAkBJ,KAAlB,EAAyB;AAACK,MAAAA,MAAM;AAAP,KAAzB,CAAV;;AAEA,UAAKC,UAAL,CAAgBN,KAAhB;;AAEAG,IAAAA,MAAM,CAACI,IAAP;AAjB0B;AAkB3B;;;EA5BoCT,gB","sourcesContent":["import GL from '@luma.gl/constants';\nimport {assertWebGLContext} from '@luma.gl/gltools';\nimport Texture from './texture';\nimport {loadImage} from '../utils/load-file';\n\nexport default class Texture2D extends Texture {\n // eslint-disable-next-line accessor-pairs\n get [Symbol.toStringTag]() {\n return 'Texture2D';\n }\n\n static isSupported(gl, opts) {\n return Texture.isSupported(gl, opts);\n }\n\n constructor(gl, props = {}) {\n assertWebGLContext(gl);\n\n // Signature: new Texture2D(gl, url | Promise)\n if (props instanceof Promise || typeof props === 'string') {\n props = {data: props};\n }\n\n // Signature: new Texture2D(gl, {data: url})\n if (typeof props.data === 'string') {\n props = Object.assign({}, props, {data: loadImage(props.data)});\n }\n\n super(gl, Object.assign({}, props, {target: GL.TEXTURE_2D}));\n\n this.initialize(props);\n\n Object.seal(this);\n }\n}\n"],"file":"texture-2d.js"}
1
+ {"version":3,"file":"texture-2d.js","names":["Texture2D","gl","props","assertWebGLContext","Promise","data","Object","assign","loadImage","target","initialize","seal","opts","Texture","isSupported","Symbol","toStringTag"],"sources":["../../../src/classes/texture-2d.js"],"sourcesContent":["import GL from '@luma.gl/constants';\nimport {assertWebGLContext} from '@luma.gl/gltools';\nimport Texture from './texture';\nimport {loadImage} from '../utils/load-file';\n\nexport default class Texture2D extends Texture {\n // eslint-disable-next-line accessor-pairs\n get [Symbol.toStringTag]() {\n return 'Texture2D';\n }\n\n static isSupported(gl, opts) {\n return Texture.isSupported(gl, opts);\n }\n\n constructor(gl, props = {}) {\n assertWebGLContext(gl);\n\n // Signature: new Texture2D(gl, url | Promise)\n if (props instanceof Promise || typeof props === 'string') {\n props = {data: props};\n }\n\n // Signature: new Texture2D(gl, {data: url})\n if (typeof props.data === 'string') {\n props = Object.assign({}, props, {data: loadImage(props.data)});\n }\n\n super(gl, Object.assign({}, props, {target: GL.TEXTURE_2D}));\n\n this.initialize(props);\n\n Object.seal(this);\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AACA;;AACA;;AACA;;;;;;IAEqBA,S;;;;;EAUnB,mBAAYC,EAAZ,EAA4B;IAAA;;IAAA,IAAZC,KAAY,uEAAJ,EAAI;IAAA;IAC1B,IAAAC,2BAAA,EAAmBF,EAAnB;;IAGA,IAAIC,KAAK,YAAYE,OAAjB,IAA4B,OAAOF,KAAP,KAAiB,QAAjD,EAA2D;MACzDA,KAAK,GAAG;QAACG,IAAI,EAAEH;MAAP,CAAR;IACD;;IAGD,IAAI,OAAOA,KAAK,CAACG,IAAb,KAAsB,QAA1B,EAAoC;MAClCH,KAAK,GAAGI,MAAM,CAACC,MAAP,CAAc,EAAd,EAAkBL,KAAlB,EAAyB;QAACG,IAAI,EAAE,IAAAG,mBAAA,EAAUN,KAAK,CAACG,IAAhB;MAAP,CAAzB,CAAR;IACD;;IAED,0BAAMJ,EAAN,EAAUK,MAAM,CAACC,MAAP,CAAc,EAAd,EAAkBL,KAAlB,EAAyB;MAACO,MAAM;IAAP,CAAzB,CAAV;;IAEA,MAAKC,UAAL,CAAgBR,KAAhB;;IAEAI,MAAM,CAACK,IAAP;IAjB0B;EAkB3B;;;;SA1BD,eAA2B;MACzB,OAAO,WAAP;IACD;;;WAED,qBAAmBV,EAAnB,EAAuBW,IAAvB,EAA6B;MAC3B,OAAOC,gBAAA,CAAQC,WAAR,CAAoBb,EAApB,EAAwBW,IAAxB,CAAP;IACD;;;EARoCC,gB,EAEhCE,MAAM,CAACC,W"}
@@ -9,10 +9,10 @@ exports.default = void 0;
9
9
 
10
10
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
11
 
12
- var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
13
-
14
12
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
15
13
 
14
+ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
15
+
16
16
  var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
17
17
 
18
18
  var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
@@ -29,25 +29,13 @@ var _buffer = _interopRequireDefault(require("./buffer"));
29
29
 
30
30
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
31
31
 
32
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
32
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
33
33
 
34
- var Texture3D = function (_Texture) {
34
+ var Texture3D = function (_Texture, _Symbol$toStringTag) {
35
35
  (0, _inherits2.default)(Texture3D, _Texture);
36
36
 
37
37
  var _super = _createSuper(Texture3D);
38
38
 
39
- (0, _createClass2.default)(Texture3D, [{
40
- key: Symbol.toStringTag,
41
- get: function get() {
42
- return 'Texture3D';
43
- }
44
- }], [{
45
- key: "isSupported",
46
- value: function isSupported(gl) {
47
- return (0, _gltools.isWebGL2)(gl);
48
- }
49
- }]);
50
-
51
39
  function Texture3D(gl) {
52
40
  var _this;
53
41
 
@@ -69,6 +57,11 @@ var Texture3D = function (_Texture) {
69
57
  }
70
58
 
71
59
  (0, _createClass2.default)(Texture3D, [{
60
+ key: _Symbol$toStringTag,
61
+ get: function get() {
62
+ return 'Texture3D';
63
+ }
64
+ }, {
72
65
  key: "setImageData",
73
66
  value: function setImageData(_ref) {
74
67
  var _this2 = this;
@@ -119,9 +112,14 @@ var Texture3D = function (_Texture) {
119
112
  this.loaded = true;
120
113
  return this;
121
114
  }
115
+ }], [{
116
+ key: "isSupported",
117
+ value: function isSupported(gl) {
118
+ return (0, _gltools.isWebGL2)(gl);
119
+ }
122
120
  }]);
123
121
  return Texture3D;
124
- }(_texture.default);
122
+ }(_texture.default, Symbol.toStringTag);
125
123
 
126
124
  exports.default = Texture3D;
127
125
  //# sourceMappingURL=texture-3d.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/classes/texture-3d.js"],"names":["Texture3D","Symbol","toStringTag","gl","props","Object","assign","depth","target","unpackFlipY","initialize","seal","level","dataFormat","width","height","border","format","type","offset","data","parameters","_trackDeallocatedMemory","bindTexture","handle","ArrayBuffer","isView","texImage3D","Buffer","bindBuffer","byteLength","_trackAllocatedMemory","channels","DATA_FORMAT_CHANNELS","channelSize","TYPE_SIZES","loaded","Texture"],"mappings":";;;;;;;;;;;;;;;;;;;;;AACA;;AACA;;AACA;;AACA;;;;;;IAEqBA,S;;;;;;SAEdC,MAAM,CAACC,W;wBAAe;AACzB,aAAO,WAAP;AACD;;;gCAEkBC,E,EAAI;AACrB,aAAO,uBAASA,EAAT,CAAP;AACD;;;AAED,qBAAYA,EAAZ,EAA4B;AAAA;;AAAA,QAAZC,KAAY,uEAAJ,EAAI;AAAA;AAC1B,sCAAoBD,EAApB;AACAC,IAAAA,KAAK,GAAGC,MAAM,CAACC,MAAP,CAAc;AAACC,MAAAA,KAAK,EAAE;AAAR,KAAd,EAA0BH,KAA1B,EAAiC;AAACI,MAAAA,MAAM,OAAP;AAAwBC,MAAAA,WAAW,EAAE;AAArC,KAAjC,CAAR;AACA,8BAAMN,EAAN,EAAUC,KAAV;;AACA,UAAKM,UAAL,CAAgBN,KAAhB;;AAEAC,IAAAA,MAAM,CAACM,IAAP;AAN0B;AAO3B;;;;uCAeE;AAAA;;AAAA,4BAXDC,KAWC;AAAA,UAXDA,KAWC,2BAXO,CAWP;AAAA,iCAVDC,UAUC;AAAA,UAVDA,UAUC;AAAA,UATDC,KASC,QATDA,KASC;AAAA,UARDC,MAQC,QARDA,MAQC;AAAA,4BAPDR,KAOC;AAAA,UAPDA,KAOC,2BAPO,CAOP;AAAA,6BANDS,MAMC;AAAA,UANDA,MAMC,4BANQ,CAMR;AAAA,UALDC,MAKC,QALDA,MAKC;AAAA,2BAJDC,IAIC;AAAA,UAJDA,IAIC;AAAA,6BAHDC,MAGC;AAAA,UAHDA,MAGC,4BAHQ,CAGR;AAAA,UAFDC,IAEC,QAFDA,IAEC;AAAA,iCADDC,UACC;AAAA,UADDA,UACC,gCADY,EACZ;;AACD,WAAKC,uBAAL,CAA6B,SAA7B;;AAEA,WAAKnB,EAAL,CAAQoB,WAAR,CAAoB,KAAKf,MAAzB,EAAiC,KAAKgB,MAAtC;AAEA,mCAAe,KAAKrB,EAApB,EAAwBkB,UAAxB,EAAoC,YAAM;AACxC,YAAII,WAAW,CAACC,MAAZ,CAAmBN,IAAnB,CAAJ,EAA8B;AAE5B,UAAA,MAAI,CAACjB,EAAL,CAAQwB,UAAR,CACE,MAAI,CAACnB,MADP,EAEEI,KAFF,EAGEC,UAHF,EAIEC,KAJF,EAKEC,MALF,EAMER,KANF,EAOES,MAPF,EAQEC,MARF,EASEC,IATF,EAUEE,IAVF;AAYD;;AAED,YAAIA,IAAI,YAAYQ,eAApB,EAA4B;AAC1B,UAAA,MAAI,CAACzB,EAAL,CAAQ0B,UAAR,QAA2CT,IAAI,CAACI,MAAhD;;AAEA,UAAA,MAAI,CAACrB,EAAL,CAAQwB,UAAR,CACE,MAAI,CAACnB,MADP,EAEEI,KAFF,EAGEC,UAHF,EAIEC,KAJF,EAKEC,MALF,EAMER,KANF,EAOES,MAPF,EAQEC,MARF,EASEC,IATF,EAUEC,MAVF;AAYD;AACF,OAjCD;;AAmCA,UAAIC,IAAI,IAAIA,IAAI,CAACU,UAAjB,EAA6B;AAC3B,aAAKC,qBAAL,CAA2BX,IAAI,CAACU,UAAhC,EAA4C,SAA5C;AACD,OAFD,MAEO;AAGL,YAAME,QAAQ,GAAGC,qCAAqB,KAAKpB,UAA1B,KAAyC,CAA1D;AAEA,YAAMqB,WAAW,GAAGC,2BAAW,KAAKjB,IAAhB,KAAyB,CAA7C;;AAEA,aAAKa,qBAAL,CACE,KAAKjB,KAAL,GAAa,KAAKC,MAAlB,GAA2B,KAAKR,KAAhC,GAAwCyB,QAAxC,GAAmDE,WADrD,EAEE,SAFF;AAID;;AAED,WAAKE,MAAL,GAAc,IAAd;AAEA,aAAO,IAAP;AACD;;;EA1FoCC,gB","sourcesContent":["import GL from '@luma.gl/constants';\nimport {isWebGL2, assertWebGL2Context, withParameters} from '@luma.gl/gltools';\nimport Texture from './texture';\nimport {DATA_FORMAT_CHANNELS, TYPE_SIZES} from './texture-formats';\nimport Buffer from './buffer';\n\nexport default class Texture3D extends Texture {\n // eslint-disable-next-line accessor-pairs\n get [Symbol.toStringTag]() {\n return 'Texture3D';\n }\n\n static isSupported(gl) {\n return isWebGL2(gl);\n }\n\n constructor(gl, props = {}) {\n assertWebGL2Context(gl);\n props = Object.assign({depth: 1}, props, {target: GL.TEXTURE_3D, unpackFlipY: false});\n super(gl, props);\n this.initialize(props);\n\n Object.seal(this);\n }\n\n // Image 3D copies from Typed Array or WebGLBuffer\n setImageData({\n level = 0,\n dataFormat = GL.RGBA,\n width,\n height,\n depth = 1,\n border = 0,\n format,\n type = GL.UNSIGNED_BYTE,\n offset = 0,\n data,\n parameters = {}\n }) {\n this._trackDeallocatedMemory('Texture');\n\n this.gl.bindTexture(this.target, this.handle);\n\n withParameters(this.gl, parameters, () => {\n if (ArrayBuffer.isView(data)) {\n // @ts-ignore\n this.gl.texImage3D(\n this.target,\n level,\n dataFormat,\n width,\n height,\n depth,\n border,\n format,\n type,\n data\n );\n }\n\n if (data instanceof Buffer) {\n this.gl.bindBuffer(GL.PIXEL_UNPACK_BUFFER, data.handle);\n // @ts-ignore\n this.gl.texImage3D(\n this.target,\n level,\n dataFormat,\n width,\n height,\n depth,\n border,\n format,\n type,\n offset\n );\n }\n });\n\n if (data && data.byteLength) {\n this._trackAllocatedMemory(data.byteLength, 'Texture');\n } else {\n // NOTE(Tarek): Default to RGBA bytes\n // @ts-ignore\n const channels = DATA_FORMAT_CHANNELS[this.dataFormat] || 4;\n // @ts-ignore\n const channelSize = TYPE_SIZES[this.type] || 1;\n\n this._trackAllocatedMemory(\n this.width * this.height * this.depth * channels * channelSize,\n 'Texture'\n );\n }\n\n this.loaded = true;\n\n return this;\n }\n}\n"],"file":"texture-3d.js"}
1
+ {"version":3,"file":"texture-3d.js","names":["Texture3D","gl","props","assertWebGL2Context","Object","assign","depth","target","unpackFlipY","initialize","seal","level","dataFormat","width","height","border","format","type","offset","data","parameters","_trackDeallocatedMemory","bindTexture","handle","withParameters","ArrayBuffer","isView","texImage3D","Buffer","bindBuffer","byteLength","_trackAllocatedMemory","channels","DATA_FORMAT_CHANNELS","channelSize","TYPE_SIZES","loaded","isWebGL2","Texture","Symbol","toStringTag"],"sources":["../../../src/classes/texture-3d.js"],"sourcesContent":["import GL from '@luma.gl/constants';\nimport {isWebGL2, assertWebGL2Context, withParameters} from '@luma.gl/gltools';\nimport Texture from './texture';\nimport {DATA_FORMAT_CHANNELS, TYPE_SIZES} from './texture-formats';\nimport Buffer from './buffer';\n\nexport default class Texture3D extends Texture {\n // eslint-disable-next-line accessor-pairs\n get [Symbol.toStringTag]() {\n return 'Texture3D';\n }\n\n static isSupported(gl) {\n return isWebGL2(gl);\n }\n\n constructor(gl, props = {}) {\n assertWebGL2Context(gl);\n props = Object.assign({depth: 1}, props, {target: GL.TEXTURE_3D, unpackFlipY: false});\n super(gl, props);\n this.initialize(props);\n\n Object.seal(this);\n }\n\n // Image 3D copies from Typed Array or WebGLBuffer\n setImageData({\n level = 0,\n dataFormat = GL.RGBA,\n width,\n height,\n depth = 1,\n border = 0,\n format,\n type = GL.UNSIGNED_BYTE,\n offset = 0,\n data,\n parameters = {}\n }) {\n this._trackDeallocatedMemory('Texture');\n\n this.gl.bindTexture(this.target, this.handle);\n\n withParameters(this.gl, parameters, () => {\n if (ArrayBuffer.isView(data)) {\n // @ts-ignore\n this.gl.texImage3D(\n this.target,\n level,\n dataFormat,\n width,\n height,\n depth,\n border,\n format,\n type,\n data\n );\n }\n\n if (data instanceof Buffer) {\n this.gl.bindBuffer(GL.PIXEL_UNPACK_BUFFER, data.handle);\n // @ts-ignore\n this.gl.texImage3D(\n this.target,\n level,\n dataFormat,\n width,\n height,\n depth,\n border,\n format,\n type,\n offset\n );\n }\n });\n\n if (data && data.byteLength) {\n this._trackAllocatedMemory(data.byteLength, 'Texture');\n } else {\n // NOTE(Tarek): Default to RGBA bytes\n // @ts-ignore\n const channels = DATA_FORMAT_CHANNELS[this.dataFormat] || 4;\n // @ts-ignore\n const channelSize = TYPE_SIZES[this.type] || 1;\n\n this._trackAllocatedMemory(\n this.width * this.height * this.depth * channels * channelSize,\n 'Texture'\n );\n }\n\n this.loaded = true;\n\n return this;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AACA;;AACA;;AACA;;AACA;;;;;;IAEqBA,S;;;;;EAUnB,mBAAYC,EAAZ,EAA4B;IAAA;;IAAA,IAAZC,KAAY,uEAAJ,EAAI;IAAA;IAC1B,IAAAC,4BAAA,EAAoBF,EAApB;IACAC,KAAK,GAAGE,MAAM,CAACC,MAAP,CAAc;MAACC,KAAK,EAAE;IAAR,CAAd,EAA0BJ,KAA1B,EAAiC;MAACK,MAAM,OAAP;MAAwBC,WAAW,EAAE;IAArC,CAAjC,CAAR;IACA,0BAAMP,EAAN,EAAUC,KAAV;;IACA,MAAKO,UAAL,CAAgBP,KAAhB;;IAEAE,MAAM,CAACM,IAAP;IAN0B;EAO3B;;;;SAfD,eAA2B;MACzB,OAAO,WAAP;IACD;;;WAgBD,4BAYG;MAAA;;MAAA,sBAXDC,KAWC;MAAA,IAXDA,KAWC,2BAXO,CAWP;MAAA,2BAVDC,UAUC;MAAA,IAVDA,UAUC;MAAA,IATDC,KASC,QATDA,KASC;MAAA,IARDC,MAQC,QARDA,MAQC;MAAA,sBAPDR,KAOC;MAAA,IAPDA,KAOC,2BAPO,CAOP;MAAA,uBANDS,MAMC;MAAA,IANDA,MAMC,4BANQ,CAMR;MAAA,IALDC,MAKC,QALDA,MAKC;MAAA,qBAJDC,IAIC;MAAA,IAJDA,IAIC;MAAA,uBAHDC,MAGC;MAAA,IAHDA,MAGC,4BAHQ,CAGR;MAAA,IAFDC,IAEC,QAFDA,IAEC;MAAA,2BADDC,UACC;MAAA,IADDA,UACC,gCADY,EACZ;;MACD,KAAKC,uBAAL,CAA6B,SAA7B;;MAEA,KAAKpB,EAAL,CAAQqB,WAAR,CAAoB,KAAKf,MAAzB,EAAiC,KAAKgB,MAAtC;MAEA,IAAAC,uBAAA,EAAe,KAAKvB,EAApB,EAAwBmB,UAAxB,EAAoC,YAAM;QACxC,IAAIK,WAAW,CAACC,MAAZ,CAAmBP,IAAnB,CAAJ,EAA8B;UAE5B,MAAI,CAAClB,EAAL,CAAQ0B,UAAR,CACE,MAAI,CAACpB,MADP,EAEEI,KAFF,EAGEC,UAHF,EAIEC,KAJF,EAKEC,MALF,EAMER,KANF,EAOES,MAPF,EAQEC,MARF,EASEC,IATF,EAUEE,IAVF;QAYD;;QAED,IAAIA,IAAI,YAAYS,eAApB,EAA4B;UAC1B,MAAI,CAAC3B,EAAL,CAAQ4B,UAAR,QAA2CV,IAAI,CAACI,MAAhD;;UAEA,MAAI,CAACtB,EAAL,CAAQ0B,UAAR,CACE,MAAI,CAACpB,MADP,EAEEI,KAFF,EAGEC,UAHF,EAIEC,KAJF,EAKEC,MALF,EAMER,KANF,EAOES,MAPF,EAQEC,MARF,EASEC,IATF,EAUEC,MAVF;QAYD;MACF,CAjCD;;MAmCA,IAAIC,IAAI,IAAIA,IAAI,CAACW,UAAjB,EAA6B;QAC3B,KAAKC,qBAAL,CAA2BZ,IAAI,CAACW,UAAhC,EAA4C,SAA5C;MACD,CAFD,MAEO;QAGL,IAAME,QAAQ,GAAGC,oCAAA,CAAqB,KAAKrB,UAA1B,KAAyC,CAA1D;QAEA,IAAMsB,WAAW,GAAGC,0BAAA,CAAW,KAAKlB,IAAhB,KAAyB,CAA7C;;QAEA,KAAKc,qBAAL,CACE,KAAKlB,KAAL,GAAa,KAAKC,MAAlB,GAA2B,KAAKR,KAAhC,GAAwC0B,QAAxC,GAAmDE,WADrD,EAEE,SAFF;MAID;;MAED,KAAKE,MAAL,GAAc,IAAd;MAEA,OAAO,IAAP;IACD;;;WApFD,qBAAmBnC,EAAnB,EAAuB;MACrB,OAAO,IAAAoC,iBAAA,EAASpC,EAAT,CAAP;IACD;;;EARoCqC,gB,EAEhCC,MAAM,CAACC,W"}
@@ -13,10 +13,10 @@ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/
13
13
 
14
14
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
15
15
 
16
- var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
17
-
18
16
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
19
17
 
18
+ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
19
+
20
20
  var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
21
21
 
22
22
  var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
@@ -29,22 +29,15 @@ var _texture = _interopRequireDefault(require("./texture"));
29
29
 
30
30
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
31
31
 
32
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
32
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
33
33
 
34
34
  var FACES = [34069, 34070, 34071, 34072, 34073, 34074];
35
35
 
36
- var TextureCube = function (_Texture) {
36
+ var TextureCube = function (_Texture, _Symbol$toStringTag) {
37
37
  (0, _inherits2.default)(TextureCube, _Texture);
38
38
 
39
39
  var _super = _createSuper(TextureCube);
40
40
 
41
- (0, _createClass2.default)(TextureCube, [{
42
- key: Symbol.toStringTag,
43
- get: function get() {
44
- return 'TextureCube';
45
- }
46
- }]);
47
-
48
41
  function TextureCube(gl) {
49
42
  var _this;
50
43
 
@@ -62,6 +55,11 @@ var TextureCube = function (_Texture) {
62
55
  }
63
56
 
64
57
  (0, _createClass2.default)(TextureCube, [{
58
+ key: _Symbol$toStringTag,
59
+ get: function get() {
60
+ return 'TextureCube';
61
+ }
62
+ }, {
65
63
  key: "initialize",
66
64
  value: function initialize() {
67
65
  var _this2 = this;
@@ -193,7 +191,7 @@ var TextureCube = function (_Texture) {
193
191
  }
194
192
  }]);
195
193
  return TextureCube;
196
- }(_texture.default);
194
+ }(_texture.default, Symbol.toStringTag);
197
195
 
198
196
  exports.default = TextureCube;
199
197
  TextureCube.FACES = FACES;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/classes/texture-cube.js"],"names":["FACES","TextureCube","Symbol","toStringTag","gl","props","Object","assign","target","initialize","seal","mipmaps","parameters","opts","setCubeMapImageData","then","loaded","generateMipmap","setParameters","face","data","x","y","mipmapLevel","_subImage","width","height","pixels","border","format","type","imageDataMap","Promise","all","map","facePixels","Array","isArray","resolvedFaces","bind","forEach","index","length","log","warn","id","image","lodLevel","texImage2D","unbind","options","imageData","resolvedImageData","setImageDataForFace","Texture"],"mappings":"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","sourcesContent":["import GL from '@luma.gl/constants';\nimport {log, assertWebGLContext} from '@luma.gl/gltools';\nimport Texture from './texture';\n\nconst FACES = [\n GL.TEXTURE_CUBE_MAP_POSITIVE_X,\n GL.TEXTURE_CUBE_MAP_NEGATIVE_X,\n GL.TEXTURE_CUBE_MAP_POSITIVE_Y,\n GL.TEXTURE_CUBE_MAP_NEGATIVE_Y,\n GL.TEXTURE_CUBE_MAP_POSITIVE_Z,\n GL.TEXTURE_CUBE_MAP_NEGATIVE_Z\n];\n\nexport default class TextureCube extends Texture {\n // eslint-disable-next-line accessor-pairs\n get [Symbol.toStringTag]() {\n return 'TextureCube';\n }\n\n constructor(gl, props = {}) {\n assertWebGLContext(gl);\n\n super(gl, Object.assign({}, props, {target: GL.TEXTURE_CUBE_MAP}));\n\n this.initialize(props);\n\n Object.seal(this);\n }\n\n initialize(props = {}) {\n const {mipmaps = true, parameters = {}} = props;\n\n // Store props for accessors\n this.opts = props;\n\n // @ts-ignore\n this.setCubeMapImageData(props).then(() => {\n this.loaded = true;\n\n // TODO - should genMipmap() be called on the cubemap or on the faces?\n // TODO - without generateMipmap() cube textures do not work at all!!! Why?\n if (mipmaps) {\n this.generateMipmap(props);\n }\n\n this.setParameters(parameters);\n });\n return this;\n }\n\n subImage({face, data, x = 0, y = 0, mipmapLevel = 0}) {\n // @ts-ignore TODO - is this a bug?\n return this._subImage({target: face, data, x, y, mipmapLevel});\n }\n\n /* eslint-disable max-statements, max-len */\n async setCubeMapImageData({\n width,\n height,\n pixels,\n data,\n border = 0,\n format = GL.RGBA,\n type = GL.UNSIGNED_BYTE\n }) {\n const {gl} = this;\n const imageDataMap = pixels || data;\n\n // pixel data (imageDataMap) is an Object from Face to Image or Promise.\n // For example:\n // {\n // GL.TEXTURE_CUBE_MAP_POSITIVE_X : Image-or-Promise,\n // GL.TEXTURE_CUBE_MAP_NEGATIVE_X : Image-or-Promise,\n // ... }\n // To provide multiple level-of-details (LODs) this can be Face to Array\n // of Image or Promise, like this\n // {\n // GL.TEXTURE_CUBE_MAP_POSITIVE_X : [Image-or-Promise-LOD-0, Image-or-Promise-LOD-1],\n // GL.TEXTURE_CUBE_MAP_NEGATIVE_X : [Image-or-Promise-LOD-0, Image-or-Promise-LOD-1],\n // ... }\n\n const resolvedFaces = await Promise.all(\n FACES.map(face => {\n const facePixels = imageDataMap[face];\n return Promise.all(Array.isArray(facePixels) ? facePixels : [facePixels]);\n })\n );\n\n this.bind();\n\n FACES.forEach((face, index) => {\n if (resolvedFaces[index].length > 1 && this.opts.mipmaps !== false) {\n // If the user provides multiple LODs, then automatic mipmap\n // generation generateMipmap() should be disabled to avoid overwritting them.\n log.warn(`${this.id} has mipmap and multiple LODs.`)();\n }\n resolvedFaces[index].forEach((image, lodLevel) => {\n // TODO: adjust width & height for LOD!\n if (width && height) {\n gl.texImage2D(face, lodLevel, format, width, height, border, format, type, image);\n } else {\n gl.texImage2D(face, lodLevel, format, format, type, image);\n }\n });\n });\n\n this.unbind();\n }\n\n // TODO: update this method to accept LODs\n setImageDataForFace(options) {\n const {\n face,\n width,\n height,\n pixels,\n data,\n border = 0,\n format = GL.RGBA,\n type = GL.UNSIGNED_BYTE\n // generateMipmap = false // TODO\n } = options;\n\n const {gl} = this;\n\n const imageData = pixels || data;\n\n this.bind();\n if (imageData instanceof Promise) {\n imageData.then(resolvedImageData =>\n this.setImageDataForFace(\n Object.assign({}, options, {\n face,\n data: resolvedImageData,\n pixels: resolvedImageData\n })\n )\n );\n } else if (this.width || this.height) {\n gl.texImage2D(face, 0, format, width, height, border, format, type, imageData);\n } else {\n gl.texImage2D(face, 0, format, format, type, imageData);\n }\n\n return this;\n }\n}\n\nTextureCube.FACES = FACES;\n"],"file":"texture-cube.js"}
1
+ {"version":3,"file":"texture-cube.js","names":["FACES","TextureCube","gl","props","assertWebGLContext","Object","assign","target","initialize","seal","mipmaps","parameters","opts","setCubeMapImageData","then","loaded","generateMipmap","setParameters","face","data","x","y","mipmapLevel","_subImage","width","height","pixels","border","format","type","imageDataMap","Promise","all","map","facePixels","Array","isArray","resolvedFaces","bind","forEach","index","length","log","warn","id","image","lodLevel","texImage2D","unbind","options","imageData","resolvedImageData","setImageDataForFace","Texture","Symbol","toStringTag"],"sources":["../../../src/classes/texture-cube.js"],"sourcesContent":["import GL from '@luma.gl/constants';\nimport {log, assertWebGLContext} from '@luma.gl/gltools';\nimport Texture from './texture';\n\nconst FACES = [\n GL.TEXTURE_CUBE_MAP_POSITIVE_X,\n GL.TEXTURE_CUBE_MAP_NEGATIVE_X,\n GL.TEXTURE_CUBE_MAP_POSITIVE_Y,\n GL.TEXTURE_CUBE_MAP_NEGATIVE_Y,\n GL.TEXTURE_CUBE_MAP_POSITIVE_Z,\n GL.TEXTURE_CUBE_MAP_NEGATIVE_Z\n];\n\nexport default class TextureCube extends Texture {\n // eslint-disable-next-line accessor-pairs\n get [Symbol.toStringTag]() {\n return 'TextureCube';\n }\n\n constructor(gl, props = {}) {\n assertWebGLContext(gl);\n\n super(gl, Object.assign({}, props, {target: GL.TEXTURE_CUBE_MAP}));\n\n this.initialize(props);\n\n Object.seal(this);\n }\n\n initialize(props = {}) {\n const {mipmaps = true, parameters = {}} = props;\n\n // Store props for accessors\n this.opts = props;\n\n // @ts-ignore\n this.setCubeMapImageData(props).then(() => {\n this.loaded = true;\n\n // TODO - should genMipmap() be called on the cubemap or on the faces?\n // TODO - without generateMipmap() cube textures do not work at all!!! Why?\n if (mipmaps) {\n this.generateMipmap(props);\n }\n\n this.setParameters(parameters);\n });\n return this;\n }\n\n subImage({face, data, x = 0, y = 0, mipmapLevel = 0}) {\n // @ts-ignore TODO - is this a bug?\n return this._subImage({target: face, data, x, y, mipmapLevel});\n }\n\n /* eslint-disable max-statements, max-len */\n async setCubeMapImageData({\n width,\n height,\n pixels,\n data,\n border = 0,\n format = GL.RGBA,\n type = GL.UNSIGNED_BYTE\n }) {\n const {gl} = this;\n const imageDataMap = pixels || data;\n\n // pixel data (imageDataMap) is an Object from Face to Image or Promise.\n // For example:\n // {\n // GL.TEXTURE_CUBE_MAP_POSITIVE_X : Image-or-Promise,\n // GL.TEXTURE_CUBE_MAP_NEGATIVE_X : Image-or-Promise,\n // ... }\n // To provide multiple level-of-details (LODs) this can be Face to Array\n // of Image or Promise, like this\n // {\n // GL.TEXTURE_CUBE_MAP_POSITIVE_X : [Image-or-Promise-LOD-0, Image-or-Promise-LOD-1],\n // GL.TEXTURE_CUBE_MAP_NEGATIVE_X : [Image-or-Promise-LOD-0, Image-or-Promise-LOD-1],\n // ... }\n\n const resolvedFaces = await Promise.all(\n FACES.map(face => {\n const facePixels = imageDataMap[face];\n return Promise.all(Array.isArray(facePixels) ? facePixels : [facePixels]);\n })\n );\n\n this.bind();\n\n FACES.forEach((face, index) => {\n if (resolvedFaces[index].length > 1 && this.opts.mipmaps !== false) {\n // If the user provides multiple LODs, then automatic mipmap\n // generation generateMipmap() should be disabled to avoid overwritting them.\n log.warn(`${this.id} has mipmap and multiple LODs.`)();\n }\n resolvedFaces[index].forEach((image, lodLevel) => {\n // TODO: adjust width & height for LOD!\n if (width && height) {\n gl.texImage2D(face, lodLevel, format, width, height, border, format, type, image);\n } else {\n gl.texImage2D(face, lodLevel, format, format, type, image);\n }\n });\n });\n\n this.unbind();\n }\n\n // TODO: update this method to accept LODs\n setImageDataForFace(options) {\n const {\n face,\n width,\n height,\n pixels,\n data,\n border = 0,\n format = GL.RGBA,\n type = GL.UNSIGNED_BYTE\n // generateMipmap = false // TODO\n } = options;\n\n const {gl} = this;\n\n const imageData = pixels || data;\n\n this.bind();\n if (imageData instanceof Promise) {\n imageData.then(resolvedImageData =>\n this.setImageDataForFace(\n Object.assign({}, options, {\n face,\n data: resolvedImageData,\n pixels: resolvedImageData\n })\n )\n );\n } else if (this.width || this.height) {\n gl.texImage2D(face, 0, format, width, height, border, format, type, imageData);\n } else {\n gl.texImage2D(face, 0, format, format, type, imageData);\n }\n\n return this;\n }\n}\n\nTextureCube.FACES = FACES;\n"],"mappings":"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"}
@@ -5,9 +5,9 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
+ exports.TYPE_SIZES = exports.TEXTURE_FORMATS = exports.DATA_FORMAT_CHANNELS = void 0;
8
9
  exports.isFormatSupported = isFormatSupported;
9
10
  exports.isLinearFilteringSupported = isLinearFilteringSupported;
10
- exports.TYPE_SIZES = exports.DATA_FORMAT_CHANNELS = exports.TEXTURE_FORMATS = void 0;
11
11
 
12
12
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
13
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/classes/texture-formats.js"],"names":["TEXTURE_FORMATS","dataFormat","types","gl2","DATA_FORMAT_CHANNELS","TYPE_SIZES","isFormatSupported","gl","format","info","gl1","undefined","value","getExtension","isLinearFilteringSupported"],"mappings":";;;;;;;;;;;;;AACA;;;;AAUO,IAAMA,eAAe,iFAEhB;AAACC,EAAAA,UAAU,MAAX;AAAqBC,EAAAA,KAAK,EAAE;AAA5B,CAFgB,yDAKf;AACTD,EAAAA,UAAU,MADD;AAETC,EAAAA,KAAK,EAAE;AAFE,CALe,yDASd;AAACD,EAAAA,UAAU,MAAX;AAAuBC,EAAAA,KAAK,EAAE;AAA9B,CATc,yDAUV;AAACD,EAAAA,UAAU,MAAX;AAA2BC,EAAAA,KAAK,EAAE;AAAlC,CAVU,yDAWJ;AAACD,EAAAA,UAAU,MAAX;AAAiCC,EAAAA,KAAK,EAAE;AAAxC,CAXI,0DAcf;AAACD,EAAAA,UAAU,MAAX;AAAqBC,EAAAA,KAAK,EAAE,MAA5B;AAAwCC,EAAAA,GAAG,EAAE;AAA7C,CAde,0DAed;AAACF,EAAAA,UAAU,OAAX;AAAoBC,EAAAA,KAAK,EAAE,MAA3B;AAAuCC,EAAAA,GAAG,EAAE;AAA5C,CAfc,0DAgBb;AAACF,EAAAA,UAAU,MAAX;AAAqBC,EAAAA,KAAK,EAAE,MAA5B;AAAwCC,EAAAA,GAAG,EAAE;AAA7C,CAhBa,0DAiBZ;AAACF,EAAAA,UAAU,MAAX;AAAsBC,EAAAA,KAAK,EAAE,MAA7B;AAAyCC,EAAAA,GAAG,EAAE;AAA9C,CAjBY,oBAArB;;AAmGA,IAAMC,oBAAoB,2FACrB,CADqB,+DAEb,CAFa,+DAGtB,CAHsB,+DAId,CAJc,8DAKrB,CALqB,+DAMb,CANa,8DAOpB,CAPoB,+DAQZ,CARY,8DAST,CATS,+DAUX,CAVW,8DAWnB,CAXmB,8DAYf,CAZe,8DAaT,CAbS,yBAA1B;;AAgBA,IAAMC,UAAU,uEACT,CADS,oDAEF,CAFE,oDAGX,CAHW,oDAIA,CAJA,oDAKT,CALS,oDAMJ,CANI,oDAOV,CAPU,oDAQD,CARC,eAAhB;;;AAWA,SAASC,iBAAT,CAA2BC,EAA3B,EAA+BC,MAA/B,EAAuC;AAC5C,MAAMC,IAAI,GAAGT,eAAe,CAACQ,MAAD,CAA5B;;AACA,MAAI,CAACC,IAAL,EAAW;AACT,WAAO,KAAP;AACD;;AACD,MAAIA,IAAI,CAACC,GAAL,KAAaC,SAAb,IAA0BF,IAAI,CAACN,GAAL,KAAaQ,SAA3C,EAAsD;AAEpD,WAAO,IAAP;AACD;;AACD,MAAMC,KAAK,GAAG,uBAASL,EAAT,IAAeE,IAAI,CAACN,GAAL,IAAYM,IAAI,CAACC,GAAhC,GAAsCD,IAAI,CAACC,GAAzD;AACA,SAAO,OAAOE,KAAP,KAAiB,QAAjB,GAA4BL,EAAE,CAACM,YAAH,CAAgBD,KAAhB,CAA5B,GAAqDA,KAA5D;AACD;;AAEM,SAASE,0BAAT,CAAoCP,EAApC,EAAwCC,MAAxC,EAAgD;AACrD,MAAMC,IAAI,GAAGT,eAAe,CAACQ,MAAD,CAA5B;;AACA,UAAQC,IAAI,IAAIA,IAAI,CAACP,KAAL,CAAW,CAAX,CAAhB;AAEE;AACE,aAAOK,EAAE,CAACM,YAAH,CAAgB,0BAAhB,CAAP;;AAEF;AACE,aAAON,EAAE,CAACM,YAAH,CAAgB,+BAAhB,CAAP;;AACF;AACE,aAAO,IAAP;AARJ;AAUD","sourcesContent":["import GL from '@luma.gl/constants';\nimport {isWebGL2} from '@luma.gl/gltools';\n\n// const S3TC = 'WEBGL_compressed_texture_s3tc';\n// const PVRTC = 'WEBGL_compressed_texture_pvrtc';\n// const ES3 = 'WEBGL_compressed_texture_es3';\n// const ETC1 = 'WEBGL_compressed_texture_etc1';\n// const SRGB = 'EXT_sRGB';\n// const DEPTH = 'WEBGL_depth_texture';\n\n// Legal combinations for internalFormat, format and type\nexport const TEXTURE_FORMATS = {\n // Unsized texture format - more performance\n [GL.RGB]: {dataFormat: GL.RGB, types: [GL.UNSIGNED_BYTE, GL.UNSIGNED_SHORT_5_6_5]},\n // TODO: format: GL.RGBA type: GL.FLOAT is supported in WebGL1 when 'OES_texure_float' is suported\n // we need to update this table structure to specify extensions (gl1: 'OES_texure_float', gl2: false) for each type.\n [GL.RGBA]: {\n dataFormat: GL.RGBA,\n types: [GL.UNSIGNED_BYTE, GL.UNSIGNED_SHORT_4_4_4_4, GL.UNSIGNED_SHORT_5_5_5_1]\n },\n [GL.ALPHA]: {dataFormat: GL.ALPHA, types: [GL.UNSIGNED_BYTE]},\n [GL.LUMINANCE]: {dataFormat: GL.LUMINANCE, types: [GL.UNSIGNED_BYTE]},\n [GL.LUMINANCE_ALPHA]: {dataFormat: GL.LUMINANCE_ALPHA, types: [GL.UNSIGNED_BYTE]},\n\n // 32 bit floats\n [GL.R32F]: {dataFormat: GL.RED, types: [GL.FLOAT], gl2: true},\n [GL.RG32F]: {dataFormat: GL.RG, types: [GL.FLOAT], gl2: true},\n [GL.RGB32F]: {dataFormat: GL.RGB, types: [GL.FLOAT], gl2: true},\n [GL.RGBA32F]: {dataFormat: GL.RGBA, types: [GL.FLOAT], gl2: true}\n\n // [GL.DEPTH_COMPONENT]: {types: [GL.UNSIGNED_SHORT, GL.UNSIGNED_INT, GL.UNSIGNED_INT_24_8], gl1: DEPTH},\n // [GL.DEPTH_STENCIL]: {gl1: DEPTH},\n\n // Sized texture format - more performance\n // R\n // [GL.R8]: {dataFormat: GL.RED, types: [GL.UNSIGNED_BYTE], gl2: true},\n // [GL.R16F]: {dataFormat: GL.RED, types: [GL.HALF_FLOAT, GL.FLOAT], gl2: true},\n // [GL.R8UI]: {dataFormat: GL.RED_INTEGER, types: [GL.UNSIGNED_BYTE], gl2: true},\n // // RG\n // [GL.RG8]: {dataFormat: GL.RG, types: [GL.UNSIGNED_BYTE], gl2: true},\n // [GL.RG16F]: {dataFormat: GL.RG, types: [GL.HALF_FLOAT, GL.FLOAT], gl2: true},\n // [GL.RG8UI]: {dataFormat: GL.RG_INTEGER, types: [GL.UNSIGNED_BYTE], gl2: true},\n // // RGB\n // [GL.RGB8]: {dataFormat: GL.RGB, types: [GL.UNSIGNED_BYTE], gl2: true, gl1: SRGB},\n // [GL.SRGB8]: {dataFormat: GL.RGB, types: [GL.UNSIGNED_BYTE], gl2: true, gl1: SRGB},\n // [GL.RGB565]: {dataFormat: GL.RGB, types: [GL.UNSIGNED_BYTE, GL.UNSIGNED_SHORT_5_6_5], gl2: true},\n // [GL.R11F_G11F_B10F]: {dataFormat: GL.RGB, types: [GL.UNSIGNED_INT_10F_11F_11F_REV, GL.HALF_FLOAT, GL.FLOAT], gl2: true},\n // [GL.RGB9_E5]: {dataFormat: GL.RGB, types: [GL.HALF_FLOAT, GL.FLOAT], gl2: true, gl1: 'WEBGL_color_buffer_half_float'},\n // [GL.RGB16F]: {dataFormat: GL.RGB, types: [GL.HALF_FLOAT, GL.FLOAT], gl2: true, gl1: 'WEBGL_color_buffer_float'},\n // [GL.RGB8UI]: {dataFormat: GL.RGB_INTEGER, types: [GL.UNSIGNED_BYTE], gl2: true},\n // // RGBA\n // [GL.RGBA8]: {dataFormat: GL.RGBA, types: [GL.UNSIGNED_BYTE], gl2: true, gl1: SRGB},\n // [GL.SRGB8_ALPHA8]: {dataFormat: GL.RGBA, types: [GL.UNSIGNED_BYTE], gl2: true, gl1: SRGB},\n // [GL.RGB5_A1]: {dataFormat: GL.RGBA, types: [GL.UNSIGNED_BYTE, GL.UNSIGNED_SHORT_5_5_5_1], gl2: true},\n // [GL.RGBA4]: {dataFormat: GL.RGBA, types: [GL.UNSIGNED_BYTE, GL.UNSIGNED_SHORT_4_4_4_4], gl2: true},\n // [GL.RGBA16F]: {dataFormat: GL.RGBA, types: [GL.HALF_FLOAT, GL.FLOAT], gl2: true},\n // [GL.RGBA8UI]: {dataFormat: GL.RGBA_INTEGER, types: [GL.UNSIGNED_BYTE], gl2: true}\n\n // Compressed formats\n\n // WEBGL_compressed_texture_s3tc\n\n // [GL.COMPRESSED_RGB_S3TC_DXT1_EXT]: {compressed: true, gl1: S3TC},\n // [GL.COMPRESSED_RGBA_S3TC_DXT1_EXT]: {compressed: true, gl1: S3TC},\n // [GL.COMPRESSED_RGBA_S3TC_DXT3_EXT]: {compressed: true, gl1: S3TC},\n // [GL.COMPRESSED_RGBA_S3TC_DXT5_EXT]: {compressed: true, gl1: S3TC},\n\n // WEBGL_compressed_texture_es3\n\n // [GL.COMPRESSED_R11_EAC]: {compressed: true, gl1: ES3}, // RED\n // [GL.COMPRESSED_SIGNED_R11_EAC]: {compressed: true, gl1: ES3}, // RED\n // [GL.COMPRESSED_RG11_EAC]: {compressed: true, gl1: ES3}, // RG\n // [GL.COMPRESSED_SIGNED_RG11_EAC]: {compressed: true, gl1: ES3}, // RG\n // [GL.COMPRESSED_RGB8_ETC2]: {compressed: true, gl1: ES3}, // RGB\n // [GL.COMPRESSED_RGBA8_ETC2_EAC]: {compressed: true, gl1: ES3}, // RBG\n // [GL.COMPRESSED_SRGB8_ETC2]: {compressed: true, gl1: ES3}, // RGB\n // [GL.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC]: {compressed: true, gl1: ES3}, // RGBA\n // [GL.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2]: {compressed: true, gl1: ES3}, // RGBA\n // [GL.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2]: {compressed: true, gl1: ES3}, // RGBA\n /* WebGL2 guaranteed availability compressed formats?\n COMPRESSED_R11_EAC RED\n COMPRESSED_SIGNED_R11_EAC RED\n COMPRESSED_RG11_EAC RG\n COMPRESSED_SIGNED_RG11_EAC RG\n COMPRESSED_RGB8_ETC2 RGB\n COMPRESSED_SRGB8_ETC2 RGB\n COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 RGBA\n COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 RGBA\n COMPRESSED_RGBA8_ETC2_EAC RGBA\n COMPRESSED_SRGB8_ALPHA8_ETC2_EAC\n */\n\n // WEBGL_compressed_texture_pvrtc\n\n // [GL.COMPRESSED_RGB_PVRTC_4BPPV1_IMG]: {compressed: true, gl1: PVRTC},\n // [GL.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG]: {compressed: true, gl1: PVRTC},\n // [GL.COMPRESSED_RGB_PVRTC_2BPPV1_IMG]: {compressed: true, gl1: PVRTC},\n // [GL.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG]: {compressed: true, gl1: PVRTC},\n\n // WEBGL_compressed_texture_etc1\n\n // [GL.COMPRESSED_RGB_ETC1_WEBGL]: {compressed: true, gl1: ETC1},\n\n // WEBGL_compressed_texture_atc\n\n // [GL.COMPRESSED_RGB_ATC_WEBGL]: {compressed: true, gl1: ETC1},\n // [GL.COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL]: {compressed: true, gl1: ETC1},\n // [GL.COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL]: {compressed: true, gl1: ETC1}\n};\n\nexport const DATA_FORMAT_CHANNELS = {\n [GL.RED]: 1,\n [GL.RED_INTEGER]: 1,\n [GL.RG]: 2,\n [GL.RG_INTEGER]: 2,\n [GL.RGB]: 3,\n [GL.RGB_INTEGER]: 3,\n [GL.RGBA]: 4,\n [GL.RGBA_INTEGER]: 4,\n [GL.DEPTH_COMPONENT]: 1,\n [GL.DEPTH_STENCIL]: 1,\n [GL.ALPHA]: 1,\n [GL.LUMINANCE]: 1,\n [GL.LUMINANCE_ALPHA]: 2\n};\n\nexport const TYPE_SIZES = {\n [GL.FLOAT]: 4,\n [GL.UNSIGNED_INT]: 4,\n [GL.INT]: 4,\n [GL.UNSIGNED_SHORT]: 2,\n [GL.SHORT]: 2,\n [GL.HALF_FLOAT]: 2,\n [GL.BYTE]: 1,\n [GL.UNSIGNED_BYTE]: 1\n};\n\nexport function isFormatSupported(gl, format) {\n const info = TEXTURE_FORMATS[format];\n if (!info) {\n return false;\n }\n if (info.gl1 === undefined && info.gl2 === undefined) {\n // No info - always supported\n return true;\n }\n const value = isWebGL2(gl) ? info.gl2 || info.gl1 : info.gl1;\n return typeof value === 'string' ? gl.getExtension(value) : value;\n}\n\nexport function isLinearFilteringSupported(gl, format) {\n const info = TEXTURE_FORMATS[format];\n switch (info && info.types[0]) {\n // Both WebGL1 and WebGL2?\n case GL.FLOAT:\n return gl.getExtension('OES_texture_float_linear');\n // Not in WebGL2?\n case GL.HALF_FLOAT:\n return gl.getExtension('OES_texture_half_float_linear');\n default:\n return true;\n }\n}\n"],"file":"texture-formats.js"}
1
+ {"version":3,"file":"texture-formats.js","names":["TEXTURE_FORMATS","dataFormat","types","gl2","DATA_FORMAT_CHANNELS","TYPE_SIZES","isFormatSupported","gl","format","info","gl1","undefined","value","isWebGL2","getExtension","isLinearFilteringSupported"],"sources":["../../../src/classes/texture-formats.js"],"sourcesContent":["import GL from '@luma.gl/constants';\nimport {isWebGL2} from '@luma.gl/gltools';\n\n// const S3TC = 'WEBGL_compressed_texture_s3tc';\n// const PVRTC = 'WEBGL_compressed_texture_pvrtc';\n// const ES3 = 'WEBGL_compressed_texture_es3';\n// const ETC1 = 'WEBGL_compressed_texture_etc1';\n// const SRGB = 'EXT_sRGB';\n// const DEPTH = 'WEBGL_depth_texture';\n\n// Legal combinations for internalFormat, format and type\nexport const TEXTURE_FORMATS = {\n // Unsized texture format - more performance\n [GL.RGB]: {dataFormat: GL.RGB, types: [GL.UNSIGNED_BYTE, GL.UNSIGNED_SHORT_5_6_5]},\n // TODO: format: GL.RGBA type: GL.FLOAT is supported in WebGL1 when 'OES_texure_float' is suported\n // we need to update this table structure to specify extensions (gl1: 'OES_texure_float', gl2: false) for each type.\n [GL.RGBA]: {\n dataFormat: GL.RGBA,\n types: [GL.UNSIGNED_BYTE, GL.UNSIGNED_SHORT_4_4_4_4, GL.UNSIGNED_SHORT_5_5_5_1]\n },\n [GL.ALPHA]: {dataFormat: GL.ALPHA, types: [GL.UNSIGNED_BYTE]},\n [GL.LUMINANCE]: {dataFormat: GL.LUMINANCE, types: [GL.UNSIGNED_BYTE]},\n [GL.LUMINANCE_ALPHA]: {dataFormat: GL.LUMINANCE_ALPHA, types: [GL.UNSIGNED_BYTE]},\n\n // 32 bit floats\n [GL.R32F]: {dataFormat: GL.RED, types: [GL.FLOAT], gl2: true},\n [GL.RG32F]: {dataFormat: GL.RG, types: [GL.FLOAT], gl2: true},\n [GL.RGB32F]: {dataFormat: GL.RGB, types: [GL.FLOAT], gl2: true},\n [GL.RGBA32F]: {dataFormat: GL.RGBA, types: [GL.FLOAT], gl2: true}\n\n // [GL.DEPTH_COMPONENT]: {types: [GL.UNSIGNED_SHORT, GL.UNSIGNED_INT, GL.UNSIGNED_INT_24_8], gl1: DEPTH},\n // [GL.DEPTH_STENCIL]: {gl1: DEPTH},\n\n // Sized texture format - more performance\n // R\n // [GL.R8]: {dataFormat: GL.RED, types: [GL.UNSIGNED_BYTE], gl2: true},\n // [GL.R16F]: {dataFormat: GL.RED, types: [GL.HALF_FLOAT, GL.FLOAT], gl2: true},\n // [GL.R8UI]: {dataFormat: GL.RED_INTEGER, types: [GL.UNSIGNED_BYTE], gl2: true},\n // // RG\n // [GL.RG8]: {dataFormat: GL.RG, types: [GL.UNSIGNED_BYTE], gl2: true},\n // [GL.RG16F]: {dataFormat: GL.RG, types: [GL.HALF_FLOAT, GL.FLOAT], gl2: true},\n // [GL.RG8UI]: {dataFormat: GL.RG_INTEGER, types: [GL.UNSIGNED_BYTE], gl2: true},\n // // RGB\n // [GL.RGB8]: {dataFormat: GL.RGB, types: [GL.UNSIGNED_BYTE], gl2: true, gl1: SRGB},\n // [GL.SRGB8]: {dataFormat: GL.RGB, types: [GL.UNSIGNED_BYTE], gl2: true, gl1: SRGB},\n // [GL.RGB565]: {dataFormat: GL.RGB, types: [GL.UNSIGNED_BYTE, GL.UNSIGNED_SHORT_5_6_5], gl2: true},\n // [GL.R11F_G11F_B10F]: {dataFormat: GL.RGB, types: [GL.UNSIGNED_INT_10F_11F_11F_REV, GL.HALF_FLOAT, GL.FLOAT], gl2: true},\n // [GL.RGB9_E5]: {dataFormat: GL.RGB, types: [GL.HALF_FLOAT, GL.FLOAT], gl2: true, gl1: 'WEBGL_color_buffer_half_float'},\n // [GL.RGB16F]: {dataFormat: GL.RGB, types: [GL.HALF_FLOAT, GL.FLOAT], gl2: true, gl1: 'WEBGL_color_buffer_float'},\n // [GL.RGB8UI]: {dataFormat: GL.RGB_INTEGER, types: [GL.UNSIGNED_BYTE], gl2: true},\n // // RGBA\n // [GL.RGBA8]: {dataFormat: GL.RGBA, types: [GL.UNSIGNED_BYTE], gl2: true, gl1: SRGB},\n // [GL.SRGB8_ALPHA8]: {dataFormat: GL.RGBA, types: [GL.UNSIGNED_BYTE], gl2: true, gl1: SRGB},\n // [GL.RGB5_A1]: {dataFormat: GL.RGBA, types: [GL.UNSIGNED_BYTE, GL.UNSIGNED_SHORT_5_5_5_1], gl2: true},\n // [GL.RGBA4]: {dataFormat: GL.RGBA, types: [GL.UNSIGNED_BYTE, GL.UNSIGNED_SHORT_4_4_4_4], gl2: true},\n // [GL.RGBA16F]: {dataFormat: GL.RGBA, types: [GL.HALF_FLOAT, GL.FLOAT], gl2: true},\n // [GL.RGBA8UI]: {dataFormat: GL.RGBA_INTEGER, types: [GL.UNSIGNED_BYTE], gl2: true}\n\n // Compressed formats\n\n // WEBGL_compressed_texture_s3tc\n\n // [GL.COMPRESSED_RGB_S3TC_DXT1_EXT]: {compressed: true, gl1: S3TC},\n // [GL.COMPRESSED_RGBA_S3TC_DXT1_EXT]: {compressed: true, gl1: S3TC},\n // [GL.COMPRESSED_RGBA_S3TC_DXT3_EXT]: {compressed: true, gl1: S3TC},\n // [GL.COMPRESSED_RGBA_S3TC_DXT5_EXT]: {compressed: true, gl1: S3TC},\n\n // WEBGL_compressed_texture_es3\n\n // [GL.COMPRESSED_R11_EAC]: {compressed: true, gl1: ES3}, // RED\n // [GL.COMPRESSED_SIGNED_R11_EAC]: {compressed: true, gl1: ES3}, // RED\n // [GL.COMPRESSED_RG11_EAC]: {compressed: true, gl1: ES3}, // RG\n // [GL.COMPRESSED_SIGNED_RG11_EAC]: {compressed: true, gl1: ES3}, // RG\n // [GL.COMPRESSED_RGB8_ETC2]: {compressed: true, gl1: ES3}, // RGB\n // [GL.COMPRESSED_RGBA8_ETC2_EAC]: {compressed: true, gl1: ES3}, // RBG\n // [GL.COMPRESSED_SRGB8_ETC2]: {compressed: true, gl1: ES3}, // RGB\n // [GL.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC]: {compressed: true, gl1: ES3}, // RGBA\n // [GL.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2]: {compressed: true, gl1: ES3}, // RGBA\n // [GL.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2]: {compressed: true, gl1: ES3}, // RGBA\n /* WebGL2 guaranteed availability compressed formats?\n COMPRESSED_R11_EAC RED\n COMPRESSED_SIGNED_R11_EAC RED\n COMPRESSED_RG11_EAC RG\n COMPRESSED_SIGNED_RG11_EAC RG\n COMPRESSED_RGB8_ETC2 RGB\n COMPRESSED_SRGB8_ETC2 RGB\n COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 RGBA\n COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 RGBA\n COMPRESSED_RGBA8_ETC2_EAC RGBA\n COMPRESSED_SRGB8_ALPHA8_ETC2_EAC\n */\n\n // WEBGL_compressed_texture_pvrtc\n\n // [GL.COMPRESSED_RGB_PVRTC_4BPPV1_IMG]: {compressed: true, gl1: PVRTC},\n // [GL.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG]: {compressed: true, gl1: PVRTC},\n // [GL.COMPRESSED_RGB_PVRTC_2BPPV1_IMG]: {compressed: true, gl1: PVRTC},\n // [GL.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG]: {compressed: true, gl1: PVRTC},\n\n // WEBGL_compressed_texture_etc1\n\n // [GL.COMPRESSED_RGB_ETC1_WEBGL]: {compressed: true, gl1: ETC1},\n\n // WEBGL_compressed_texture_atc\n\n // [GL.COMPRESSED_RGB_ATC_WEBGL]: {compressed: true, gl1: ETC1},\n // [GL.COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL]: {compressed: true, gl1: ETC1},\n // [GL.COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL]: {compressed: true, gl1: ETC1}\n};\n\nexport const DATA_FORMAT_CHANNELS = {\n [GL.RED]: 1,\n [GL.RED_INTEGER]: 1,\n [GL.RG]: 2,\n [GL.RG_INTEGER]: 2,\n [GL.RGB]: 3,\n [GL.RGB_INTEGER]: 3,\n [GL.RGBA]: 4,\n [GL.RGBA_INTEGER]: 4,\n [GL.DEPTH_COMPONENT]: 1,\n [GL.DEPTH_STENCIL]: 1,\n [GL.ALPHA]: 1,\n [GL.LUMINANCE]: 1,\n [GL.LUMINANCE_ALPHA]: 2\n};\n\nexport const TYPE_SIZES = {\n [GL.FLOAT]: 4,\n [GL.UNSIGNED_INT]: 4,\n [GL.INT]: 4,\n [GL.UNSIGNED_SHORT]: 2,\n [GL.SHORT]: 2,\n [GL.HALF_FLOAT]: 2,\n [GL.BYTE]: 1,\n [GL.UNSIGNED_BYTE]: 1\n};\n\nexport function isFormatSupported(gl, format) {\n const info = TEXTURE_FORMATS[format];\n if (!info) {\n return false;\n }\n if (info.gl1 === undefined && info.gl2 === undefined) {\n // No info - always supported\n return true;\n }\n const value = isWebGL2(gl) ? info.gl2 || info.gl1 : info.gl1;\n return typeof value === 'string' ? gl.getExtension(value) : value;\n}\n\nexport function isLinearFilteringSupported(gl, format) {\n const info = TEXTURE_FORMATS[format];\n switch (info && info.types[0]) {\n // Both WebGL1 and WebGL2?\n case GL.FLOAT:\n return gl.getExtension('OES_texture_float_linear');\n // Not in WebGL2?\n case GL.HALF_FLOAT:\n return gl.getExtension('OES_texture_half_float_linear');\n default:\n return true;\n }\n}\n"],"mappings":";;;;;;;;;;;;;AACA;;;;AAUO,IAAMA,eAAe,iFAEhB;EAACC,UAAU,MAAX;EAAqBC,KAAK,EAAE;AAA5B,CAFgB,yDAKf;EACTD,UAAU,MADD;EAETC,KAAK,EAAE;AAFE,CALe,yDASd;EAACD,UAAU,MAAX;EAAuBC,KAAK,EAAE;AAA9B,CATc,yDAUV;EAACD,UAAU,MAAX;EAA2BC,KAAK,EAAE;AAAlC,CAVU,yDAWJ;EAACD,UAAU,MAAX;EAAiCC,KAAK,EAAE;AAAxC,CAXI,0DAcf;EAACD,UAAU,MAAX;EAAqBC,KAAK,EAAE,MAA5B;EAAwCC,GAAG,EAAE;AAA7C,CAde,0DAed;EAACF,UAAU,OAAX;EAAoBC,KAAK,EAAE,MAA3B;EAAuCC,GAAG,EAAE;AAA5C,CAfc,0DAgBb;EAACF,UAAU,MAAX;EAAqBC,KAAK,EAAE,MAA5B;EAAwCC,GAAG,EAAE;AAA7C,CAhBa,0DAiBZ;EAACF,UAAU,MAAX;EAAsBC,KAAK,EAAE,MAA7B;EAAyCC,GAAG,EAAE;AAA9C,CAjBY,oBAArB;;AAmGA,IAAMC,oBAAoB,2FACrB,CADqB,+DAEb,CAFa,+DAGtB,CAHsB,+DAId,CAJc,8DAKrB,CALqB,+DAMb,CANa,8DAOpB,CAPoB,+DAQZ,CARY,8DAST,CATS,+DAUX,CAVW,8DAWnB,CAXmB,8DAYf,CAZe,8DAaT,CAbS,yBAA1B;;AAgBA,IAAMC,UAAU,uEACT,CADS,oDAEF,CAFE,oDAGX,CAHW,oDAIA,CAJA,oDAKT,CALS,oDAMJ,CANI,oDAOV,CAPU,oDAQD,CARC,eAAhB;;;AAWA,SAASC,iBAAT,CAA2BC,EAA3B,EAA+BC,MAA/B,EAAuC;EAC5C,IAAMC,IAAI,GAAGT,eAAe,CAACQ,MAAD,CAA5B;;EACA,IAAI,CAACC,IAAL,EAAW;IACT,OAAO,KAAP;EACD;;EACD,IAAIA,IAAI,CAACC,GAAL,KAAaC,SAAb,IAA0BF,IAAI,CAACN,GAAL,KAAaQ,SAA3C,EAAsD;IAEpD,OAAO,IAAP;EACD;;EACD,IAAMC,KAAK,GAAG,IAAAC,iBAAA,EAASN,EAAT,IAAeE,IAAI,CAACN,GAAL,IAAYM,IAAI,CAACC,GAAhC,GAAsCD,IAAI,CAACC,GAAzD;EACA,OAAO,OAAOE,KAAP,KAAiB,QAAjB,GAA4BL,EAAE,CAACO,YAAH,CAAgBF,KAAhB,CAA5B,GAAqDA,KAA5D;AACD;;AAEM,SAASG,0BAAT,CAAoCR,EAApC,EAAwCC,MAAxC,EAAgD;EACrD,IAAMC,IAAI,GAAGT,eAAe,CAACQ,MAAD,CAA5B;;EACA,QAAQC,IAAI,IAAIA,IAAI,CAACP,KAAL,CAAW,CAAX,CAAhB;IAEE;MACE,OAAOK,EAAE,CAACO,YAAH,CAAgB,0BAAhB,CAAP;;IAEF;MACE,OAAOP,EAAE,CAACO,YAAH,CAAgB,+BAAhB,CAAP;;IACF;MACE,OAAO,IAAP;EARJ;AAUD"}