@vcmap/ui 5.0.0-rc.17 → 5.0.0-rc.20

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 (386) hide show
  1. package/README.md +6 -6
  2. package/build/build.js +2 -2
  3. package/build/buildCesium.js +3 -3
  4. package/build/buildHelpers.js +2 -1
  5. package/config/base.config.json +0 -4
  6. package/config/dev.config.json +35 -14
  7. package/config/www.config.json +752 -123
  8. package/dist/assets/cesium/Workers/ArcType-ce2e50ab.js +37 -0
  9. package/dist/assets/cesium/Workers/AttributeCompression-b646d393.js +716 -0
  10. package/dist/assets/cesium/Workers/AxisAlignedBoundingBox-ff186ccc.js +258 -0
  11. package/dist/assets/cesium/Workers/BoundingRectangle-be5924f4.js +369 -0
  12. package/dist/assets/cesium/Workers/BoxGeometry-12eeccaf.js +884 -0
  13. package/dist/assets/cesium/Workers/Check-666ab1a0.js +290 -0
  14. package/dist/assets/cesium/Workers/Color-a84038cb.js +2262 -0
  15. package/dist/assets/cesium/Workers/ComponentDatatype-f7b11d02.js +341 -0
  16. package/dist/assets/cesium/Workers/CoplanarPolygonGeometryLibrary-3272c1b3.js +132 -0
  17. package/dist/assets/cesium/Workers/CorridorGeometryLibrary-0170e093.js +498 -0
  18. package/dist/assets/cesium/Workers/CylinderGeometry-7c5da648.js +467 -0
  19. package/dist/assets/cesium/Workers/CylinderGeometryLibrary-372c07d8.js +63 -0
  20. package/dist/assets/cesium/Workers/EllipseGeometry-797d580e.js +1304 -0
  21. package/dist/assets/cesium/Workers/EllipseGeometryLibrary-2939e1dc.js +366 -0
  22. package/dist/assets/cesium/Workers/EllipseOutlineGeometry-8b50870f.js +443 -0
  23. package/dist/assets/cesium/Workers/EllipsoidGeodesic-98c62a56.js +520 -0
  24. package/dist/assets/cesium/Workers/EllipsoidGeometry-21c0e3a5.js +637 -0
  25. package/dist/assets/cesium/Workers/EllipsoidOutlineGeometry-eff247c8.js +454 -0
  26. package/dist/assets/cesium/Workers/EllipsoidRhumbLine-19756602.js +741 -0
  27. package/dist/assets/cesium/Workers/EllipsoidTangentPlane-214683dc.js +373 -0
  28. package/dist/assets/cesium/Workers/EncodedCartesian3-81f70735.js +171 -0
  29. package/dist/assets/cesium/Workers/FrustumGeometry-ac42a6d9.js +2512 -0
  30. package/dist/assets/cesium/Workers/GeometryAttribute-7d6f1732.js +619 -0
  31. package/dist/assets/cesium/Workers/GeometryAttributes-f06a2792.js +91 -0
  32. package/dist/assets/cesium/Workers/GeometryInstance-451dc1cd.js +121 -0
  33. package/dist/assets/cesium/Workers/GeometryOffsetAttribute-04332ce7.js +16 -0
  34. package/dist/assets/cesium/Workers/GeometryPipeline-ce4339ed.js +3690 -0
  35. package/dist/assets/cesium/Workers/IndexDatatype-a55ceaa1.js +200 -0
  36. package/dist/assets/cesium/Workers/IntersectionTests-f6e6bd8a.js +1836 -0
  37. package/dist/assets/cesium/Workers/Math-2dbd6b93.js +1330 -0
  38. package/dist/assets/cesium/Workers/Matrix2-13178034.js +7086 -0
  39. package/dist/assets/cesium/Workers/Matrix3-315394f6.js +4283 -0
  40. package/dist/assets/cesium/Workers/OrientedBoundingBox-04920dc7.js +1257 -0
  41. package/dist/assets/cesium/Workers/Plane-900aa728.js +309 -0
  42. package/dist/assets/cesium/Workers/PolygonGeometryLibrary-a8680d96.js +1074 -0
  43. package/dist/assets/cesium/Workers/PolygonPipeline-844aab0a.js +1345 -0
  44. package/dist/assets/cesium/Workers/PolylinePipeline-32f36d2a.js +573 -0
  45. package/dist/assets/cesium/Workers/PolylineVolumeGeometryLibrary-a510d657.js +781 -0
  46. package/dist/assets/cesium/Workers/PrimitivePipeline-ba38434a.js +966 -0
  47. package/dist/assets/cesium/Workers/RectangleGeometryLibrary-bdba697e.js +280 -0
  48. package/dist/assets/cesium/Workers/RuntimeError-06c93819.js +68 -0
  49. package/dist/assets/cesium/Workers/TerrainEncoding-833187da.js +1227 -0
  50. package/dist/assets/cesium/Workers/Transforms-40229881.js +14696 -0
  51. package/dist/assets/cesium/Workers/VertexFormat-6b480673.js +312 -0
  52. package/dist/assets/cesium/Workers/WallGeometryLibrary-919eed92.js +211 -0
  53. package/dist/assets/cesium/Workers/WebGLConstants-a8cc3e8c.js +620 -0
  54. package/dist/assets/cesium/Workers/WebMercatorProjection-13a90d41.js +151 -0
  55. package/dist/assets/cesium/Workers/arrayRemoveDuplicates-c2038105.js +129 -0
  56. package/dist/assets/cesium/Workers/cesiumWorkerBootstrapper.js +1336 -4
  57. package/dist/assets/cesium/Workers/combine-ca22a614.js +82 -0
  58. package/dist/assets/cesium/Workers/combineGeometry.js +17 -25
  59. package/dist/assets/cesium/Workers/createBoxGeometry.js +12 -25
  60. package/dist/assets/cesium/Workers/createBoxOutlineGeometry.js +313 -25
  61. package/dist/assets/cesium/Workers/createCircleGeometry.js +213 -25
  62. package/dist/assets/cesium/Workers/createCircleOutlineGeometry.js +160 -25
  63. package/dist/assets/cesium/Workers/createCoplanarPolygonGeometry.js +586 -25
  64. package/dist/assets/cesium/Workers/createCoplanarPolygonOutlineGeometry.js +236 -25
  65. package/dist/assets/cesium/Workers/createCorridorGeometry.js +1407 -25
  66. package/dist/assets/cesium/Workers/createCorridorOutlineGeometry.js +603 -25
  67. package/dist/assets/cesium/Workers/createCylinderGeometry.js +12 -25
  68. package/dist/assets/cesium/Workers/createCylinderOutlineGeometry.js +265 -25
  69. package/dist/assets/cesium/Workers/createEllipseGeometry.js +14 -25
  70. package/dist/assets/cesium/Workers/createEllipseOutlineGeometry.js +14 -25
  71. package/dist/assets/cesium/Workers/createEllipsoidGeometry.js +12 -25
  72. package/dist/assets/cesium/Workers/createEllipsoidOutlineGeometry.js +15 -25
  73. package/dist/assets/cesium/Workers/createFrustumGeometry.js +12 -25
  74. package/dist/assets/cesium/Workers/createFrustumOutlineGeometry.js +251 -25
  75. package/dist/assets/cesium/Workers/createGeometry.js +55 -25
  76. package/dist/assets/cesium/Workers/createGroundPolylineGeometry.js +2134 -25
  77. package/dist/assets/cesium/Workers/createPlaneGeometry.js +250 -25
  78. package/dist/assets/cesium/Workers/createPlaneOutlineGeometry.js +115 -25
  79. package/dist/assets/cesium/Workers/createPolygonGeometry.js +1420 -25
  80. package/dist/assets/cesium/Workers/createPolygonOutlineGeometry.js +683 -25
  81. package/dist/assets/cesium/Workers/createPolylineGeometry.js +571 -25
  82. package/dist/assets/cesium/Workers/createPolylineVolumeGeometry.js +411 -25
  83. package/dist/assets/cesium/Workers/createPolylineVolumeOutlineGeometry.js +301 -25
  84. package/dist/assets/cesium/Workers/createRectangleGeometry.js +1476 -25
  85. package/dist/assets/cesium/Workers/createRectangleOutlineGeometry.js +535 -25
  86. package/dist/assets/cesium/Workers/createSimplePolylineGeometry.js +458 -25
  87. package/dist/assets/cesium/Workers/createSphereGeometry.js +123 -25
  88. package/dist/assets/cesium/Workers/createSphereOutlineGeometry.js +126 -25
  89. package/dist/assets/cesium/Workers/createTaskProcessorWorker.js +127 -25
  90. package/dist/assets/cesium/Workers/createVectorTileClampedPolylines.js +535 -25
  91. package/dist/assets/cesium/Workers/createVectorTileGeometries.js +445 -25
  92. package/dist/assets/cesium/Workers/createVectorTilePoints.js +79 -25
  93. package/dist/assets/cesium/Workers/createVectorTilePolygons.js +406 -25
  94. package/dist/assets/cesium/Workers/createVectorTilePolylines.js +254 -25
  95. package/dist/assets/cesium/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +640 -25
  96. package/dist/assets/cesium/Workers/createVerticesFromHeightmap.js +2711 -27
  97. package/dist/assets/cesium/Workers/createVerticesFromQuantizedTerrainMesh.js +994 -25
  98. package/dist/assets/cesium/Workers/createWallGeometry.js +623 -25
  99. package/dist/assets/cesium/Workers/createWallOutlineGeometry.js +432 -25
  100. package/dist/assets/cesium/Workers/decodeDraco.js +381 -25
  101. package/dist/assets/cesium/Workers/decodeGoogleEarthEnterprisePacket.js +3687 -25
  102. package/dist/assets/cesium/Workers/decodeI3S.js +1040 -0
  103. package/dist/assets/cesium/Workers/defaultValue-0a909f67.js +51 -0
  104. package/dist/assets/cesium/Workers/package.js +2 -2
  105. package/dist/assets/cesium/Workers/transcodeKTX2.js +1516 -25
  106. package/dist/assets/cesium/Workers/transferTypedArrayTest.js +18 -2
  107. package/dist/assets/cesium/Workers/upsampleQuantizedTerrainMesh.js +1023 -25
  108. package/dist/assets/{cesium.41de56.js → cesium.adbd45.js} +112161 -108735
  109. package/dist/assets/cesium.js +1 -1
  110. package/dist/assets/{core.af84e3.js → core.60e74d.js} +1616 -1629
  111. package/dist/assets/core.f198cf.js +15993 -0
  112. package/dist/assets/core.js +1 -1
  113. package/dist/assets/{index.5b773cad.js → index.884a53ef.js} +1 -1
  114. package/dist/assets/{ol.5c7490.js → ol.c6ff35.js} +6992 -6972
  115. package/dist/assets/ol.dbd604.js +44299 -0
  116. package/dist/assets/ol.js +1 -1
  117. package/dist/assets/ui.bf504d.css +1 -0
  118. package/dist/assets/{ui.dffe32.js → ui.bf504d.js} +6171 -6821
  119. package/dist/assets/ui.js +1 -1
  120. package/dist/assets/{vue.25da17.js → vue.75b819.js} +0 -0
  121. package/dist/assets/vue.a831f1.js +4675 -0
  122. package/dist/assets/vue.js +2 -2
  123. package/dist/assets/{vuetify.e4ece7.css → vuetify.0d7360.css} +0 -0
  124. package/dist/assets/{vuetify.e4ece7.js → vuetify.0d7360.js} +1 -1
  125. package/dist/assets/vuetify.js +2 -2
  126. package/dist/index.html +1 -1
  127. package/index.js +2 -1
  128. package/lib/cesium.js +1 -1
  129. package/package.json +3 -4
  130. package/plugins/{simple-graph → @vcmap/simple-graph}/README.md +1 -1
  131. package/plugins/{simple-graph → @vcmap/simple-graph}/SimpleGraphComponent.vue +0 -0
  132. package/plugins/{simple-graph → @vcmap/simple-graph}/index.js +0 -0
  133. package/plugins/{simple-graph → @vcmap/simple-graph}/package.json +0 -0
  134. package/plugins/{simple-graph → @vcmap/simple-graph}/simpleGraphView.js +0 -0
  135. package/plugins/@vcmap-show-case/README.md +20 -0
  136. package/plugins/{buttonExamples/ButtonExamples.vue → @vcmap-show-case/buttons-example/ButtonsExample.vue} +19 -1
  137. package/plugins/@vcmap-show-case/buttons-example/README.md +4 -0
  138. package/plugins/{buttonExamples → @vcmap-show-case/buttons-example}/index.js +16 -8
  139. package/plugins/@vcmap-show-case/buttons-example/package.json +5 -0
  140. package/plugins/{categoryTest → @vcmap-show-case/category-tester}/Categories.vue +7 -6
  141. package/plugins/{categoryTest → @vcmap-show-case/category-tester}/Category.vue +4 -3
  142. package/plugins/@vcmap-show-case/category-tester/README.md +3 -0
  143. package/plugins/{categoryTest → @vcmap-show-case/category-tester}/index.js +12 -4
  144. package/plugins/@vcmap-show-case/category-tester/package.json +5 -0
  145. package/plugins/@vcmap-show-case/config-editor/README.md +3 -0
  146. package/plugins/{test → @vcmap-show-case/config-editor}/editor.vue +0 -0
  147. package/plugins/@vcmap-show-case/config-editor/index.js +47 -0
  148. package/plugins/@vcmap-show-case/config-editor/package.json +5 -0
  149. package/plugins/@vcmap-show-case/context-menu-tester/README.md +3 -0
  150. package/plugins/@vcmap-show-case/context-menu-tester/index.js +33 -0
  151. package/plugins/@vcmap-show-case/context-menu-tester/package.json +5 -0
  152. package/plugins/{@vcmap/pluginExample/pluginExampleComponent.vue → @vcmap-show-case/form-inputs-example/FormInputsExample.vue} +14 -13
  153. package/plugins/@vcmap-show-case/form-inputs-example/README.md +4 -0
  154. package/plugins/@vcmap-show-case/form-inputs-example/config.json +5 -0
  155. package/plugins/{@vcmap/pluginExample → @vcmap-show-case/form-inputs-example}/exampleActions.js +1 -1
  156. package/plugins/{@vcmap/pluginExample → @vcmap-show-case/form-inputs-example}/index.js +23 -22
  157. package/plugins/@vcmap-show-case/form-inputs-example/package.json +5 -0
  158. package/plugins/{@vcmap/pluginExample → @vcmap-show-case/form-inputs-example}/validation.js +0 -0
  159. package/plugins/@vcmap-show-case/icons-example/README.md +5 -0
  160. package/plugins/@vcmap-show-case/icons-example/allIconsComponent.vue +51 -0
  161. package/plugins/@vcmap-show-case/icons-example/index.js +44 -0
  162. package/plugins/@vcmap-show-case/icons-example/package.json +5 -0
  163. package/plugins/{test/testList.vue → @vcmap-show-case/list-example/ListExample.vue} +1 -1
  164. package/plugins/@vcmap-show-case/list-example/README.md +3 -0
  165. package/plugins/@vcmap-show-case/list-example/index.js +44 -0
  166. package/plugins/@vcmap-show-case/list-example/package.json +5 -0
  167. package/plugins/@vcmap-show-case/notifier-tester/README.md +3 -0
  168. package/plugins/{notifier → @vcmap-show-case/notifier-tester}/index.js +11 -6
  169. package/plugins/{notifier → @vcmap-show-case/notifier-tester}/notifierTester.vue +0 -0
  170. package/plugins/@vcmap-show-case/notifier-tester/package.json +5 -0
  171. package/plugins/@vcmap-show-case/textfields-example/README.md +3 -0
  172. package/plugins/{example/mySuperComponent.vue → @vcmap-show-case/textfields-example/TextfieldsExample.vue} +1 -7
  173. package/plugins/{example → @vcmap-show-case/textfields-example}/index.js +58 -62
  174. package/plugins/@vcmap-show-case/textfields-example/package.json +5 -0
  175. package/plugins/@vcmap-show-case/window-tester/README.md +3 -0
  176. package/plugins/{test/windowManagerExample.vue → @vcmap-show-case/window-tester/WindowExample.vue} +36 -20
  177. package/plugins/{test → @vcmap-show-case/window-tester}/emptyComponent.vue +8 -3
  178. package/plugins/@vcmap-show-case/window-tester/index.js +62 -0
  179. package/plugins/{test → @vcmap-show-case/window-tester}/myCustomHeader.vue +0 -0
  180. package/plugins/@vcmap-show-case/window-tester/package.json +5 -0
  181. package/plugins/@vcmap-show-case/window-tester/toolbox-data.js +211 -0
  182. package/plugins/{test/vcsContent.vue → @vcmap-show-case/window-tester/windowExampleContent.vue} +1 -5
  183. package/plugins/@vcmap-show-case/wizard-example/README.md +3 -0
  184. package/plugins/{wizardExample → @vcmap-show-case/wizard-example}/index.js +12 -6
  185. package/plugins/@vcmap-show-case/wizard-example/package.json +5 -0
  186. package/plugins/@vcmap-show-case/wizard-example/wizardExample.vue +95 -0
  187. package/plugins/package.json +2 -1
  188. package/src/actions/actionHelper.js +4 -4
  189. package/src/actions/stateRefAction.js +0 -10
  190. package/src/application/VcsApp.vue +42 -23
  191. package/src/application/VcsMap.vue +9 -0
  192. package/src/application/VcsNavbar.vue +1 -1
  193. package/src/components/buttons/VcsActionButtonList.vue +1 -0
  194. package/src/components/buttons/VcsButton.vue +14 -3
  195. package/src/components/form-inputs-controls/VcsCheckbox.vue +3 -1
  196. package/src/components/form-inputs-controls/VcsWizard.vue +17 -20
  197. package/src/components/form-inputs-controls/VcsWizardStep.vue +160 -0
  198. package/src/{icons → components/icons}/+all.js +0 -0
  199. package/src/{icons → components/icons}/2DAreaIcon.vue +0 -0
  200. package/src/{icons → components/icons}/2DDistanceIcon.vue +0 -0
  201. package/src/{icons → components/icons}/3DAreaIcon.vue +0 -0
  202. package/src/{icons → components/icons}/3DDistanceIcon.vue +0 -0
  203. package/src/{icons → components/icons}/3DHeightIcon.vue +0 -0
  204. package/src/{icons → components/icons}/AngleIcon.vue +0 -0
  205. package/src/{icons → components/icons}/AssociationsIcon.vue +0 -0
  206. package/src/{icons → components/icons}/AxisIcon.vue +0 -0
  207. package/src/{icons → components/icons}/BoundingBoxIcon.vue +0 -0
  208. package/src/{icons → components/icons}/CheckboxCheckedIcon.vue +0 -0
  209. package/src/{icons → components/icons}/CheckboxIcon.vue +0 -0
  210. package/src/{icons → components/icons}/CheckboxIndeterminateIcon.vue +0 -0
  211. package/src/{icons → components/icons}/CircleIcon.vue +0 -0
  212. package/src/{icons → components/icons}/ClippingHorizontalIcon.vue +0 -0
  213. package/src/{icons → components/icons}/ClippingIcon.vue +0 -0
  214. package/src/{icons → components/icons}/ClippingVerticalIcon.vue +0 -0
  215. package/src/{icons → components/icons}/ColorPickerIcon.vue +0 -0
  216. package/src/{icons → components/icons}/ColorSwatchIcon.vue +0 -0
  217. package/src/{icons → components/icons}/CommentIcon.vue +0 -0
  218. package/src/{icons → components/icons}/CompassIcon.vue +0 -0
  219. package/src/{icons → components/icons}/ComponentsIcon.vue +0 -0
  220. package/src/{icons → components/icons}/ConeIcon.vue +0 -0
  221. package/src/{icons → components/icons}/DimensionsHouseIcon.vue +0 -0
  222. package/src/{icons → components/icons}/EditIcon.vue +0 -0
  223. package/src/{icons → components/icons}/ElevationProfileIcon.vue +0 -0
  224. package/src/{icons → components/icons}/ExportAreaIcon.vue +0 -0
  225. package/src/{icons → components/icons}/ExportFlightIcon.vue +0 -0
  226. package/src/{icons → components/icons}/ExportIcon.vue +0 -0
  227. package/src/{icons → components/icons}/ExternalLinkIcon.vue +0 -0
  228. package/src/{icons → components/icons}/EyeIcon.vue +0 -0
  229. package/src/{icons → components/icons}/FastForwardIcon.vue +0 -0
  230. package/src/{icons → components/icons}/FilterIcon.vue +0 -0
  231. package/src/{icons → components/icons}/GlobalTerrainIcon.vue +0 -0
  232. package/src/{icons → components/icons}/GlobeNatureIcon.vue +0 -0
  233. package/src/{icons → components/icons}/GroundIcon.vue +0 -0
  234. package/src/{icons → components/icons}/HealthCareIndustriesIcon.vue +0 -0
  235. package/src/{icons → components/icons}/HelpIcon.vue +0 -0
  236. package/src/{icons → components/icons}/HideIcon.vue +0 -0
  237. package/src/{icons → components/icons}/HomePointIcon.vue +0 -0
  238. package/src/{icons → components/icons}/HospitalsIcon.vue +0 -0
  239. package/src/{icons → components/icons}/HouseIcon.vue +0 -0
  240. package/src/{icons → components/icons}/ImportIcon.vue +0 -0
  241. package/src/{icons → components/icons}/InfoIcon.vue +0 -0
  242. package/src/{icons → components/icons}/KebabIcon.vue +0 -0
  243. package/src/{icons → components/icons}/LabelIcon.vue +0 -0
  244. package/src/{icons → components/icons}/LayersIcon.vue +0 -0
  245. package/src/{icons → components/icons}/LegendIcon.vue +0 -0
  246. package/src/{icons → components/icons}/LineIcon.vue +0 -0
  247. package/src/{icons → components/icons}/LinkIcon.vue +0 -0
  248. package/src/{icons → components/icons}/LogoutIcon.vue +0 -0
  249. package/src/{icons → components/icons}/MapIcon.vue +0 -0
  250. package/src/{icons → components/icons}/MenuIcon.vue +0 -0
  251. package/src/{icons → components/icons}/MinusIcon.vue +0 -0
  252. package/src/{icons → components/icons}/ObjectAttributeIcon.vue +0 -0
  253. package/src/{icons → components/icons}/ObjectSelectIcon.vue +0 -0
  254. package/src/{icons → components/icons}/ObliqueViewIcon.vue +0 -0
  255. package/src/{icons → components/icons}/PdfIcon.vue +0 -0
  256. package/src/{icons → components/icons}/PedestrianIcon.vue +0 -0
  257. package/src/{icons → components/icons}/PenIcon.vue +0 -0
  258. package/src/{icons → components/icons}/PlayCircleIcon.vue +0 -0
  259. package/src/{icons → components/icons}/PlusIcon.vue +0 -0
  260. package/src/{icons → components/icons}/PoiIcon.vue +0 -0
  261. package/src/{icons → components/icons}/PointSelectIcon.vue +0 -0
  262. package/src/{icons → components/icons}/PolygonIcon.vue +0 -0
  263. package/src/{icons → components/icons}/PresentationModeIcon.vue +0 -0
  264. package/src/{icons → components/icons}/ProgressIcon.vue +0 -0
  265. package/src/{icons → components/icons}/QueryIcon.vue +0 -0
  266. package/src/{icons → components/icons}/RectangleIcon.vue +0 -0
  267. package/src/{icons → components/icons}/ReturnIcon.vue +0 -0
  268. package/src/{icons → components/icons}/RewindIcon.vue +0 -0
  269. package/src/{icons → components/icons}/RotateLeftIcon.vue +0 -0
  270. package/src/{icons → components/icons}/RotateRightIcon.vue +0 -0
  271. package/src/{icons → components/icons}/ScreenshotIcon.vue +0 -0
  272. package/src/{icons → components/icons}/SearchIcon.vue +0 -0
  273. package/src/{icons → components/icons}/ShadowIcon.vue +0 -0
  274. package/src/{icons → components/icons}/ShapesIcon.vue +0 -0
  275. package/src/{icons → components/icons}/ShareIcon.vue +0 -0
  276. package/src/{icons → components/icons}/SimpleCircleFilledIcon.vue +0 -0
  277. package/src/{icons → components/icons}/SimpleCircleHalfFilledIcon.vue +0 -0
  278. package/src/{icons → components/icons}/SimpleCircleOutlinedIcon.vue +0 -0
  279. package/src/{icons → components/icons}/SkipNextIcon.vue +0 -0
  280. package/src/{icons → components/icons}/SkipPreviousIcon.vue +0 -0
  281. package/src/{icons → components/icons}/SplitViewIcon.vue +0 -0
  282. package/src/{icons → components/icons}/TerrainBoxIcon.vue +0 -0
  283. package/src/{icons → components/icons}/TextStyleIcon.vue +0 -0
  284. package/src/{icons → components/icons}/ThreeDimensionsIcon.vue +0 -0
  285. package/src/{icons → components/icons}/ToolsIcon.vue +0 -0
  286. package/src/{icons → components/icons}/TouchIcon.vue +0 -0
  287. package/src/{icons → components/icons}/TrashCanIcon.vue +0 -0
  288. package/src/{icons → components/icons}/TriangleIcon.vue +0 -0
  289. package/src/{icons → components/icons}/TwoDimensionsIcon.vue +0 -0
  290. package/src/{icons → components/icons}/UploadIcon.vue +0 -0
  291. package/src/{icons → components/icons}/UserProfileIcon.vue +0 -0
  292. package/src/{icons → components/icons}/UserShareIcon.vue +0 -0
  293. package/src/{icons → components/icons}/VideoRecorderIcon.vue +0 -0
  294. package/src/{icons → components/icons}/ViewpointFlightIcon.vue +0 -0
  295. package/src/{icons → components/icons}/ViewpointIcon.vue +0 -0
  296. package/src/{icons → components/icons}/Viewshed360Icon.vue +0 -0
  297. package/src/{icons → components/icons}/ViewshedConeIcon.vue +0 -0
  298. package/src/{icons → components/icons}/ViewshedIcon.vue +0 -0
  299. package/src/{icons → components/icons}/WalkingIcon.vue +0 -0
  300. package/src/{icons → components/icons}/WallIcon.vue +0 -0
  301. package/src/{icons → components/icons}/WandIcon.vue +0 -0
  302. package/src/components/lists/VcsActionList.vue +2 -0
  303. package/src/components/lists/VcsList.vue +21 -12
  304. package/src/components/lists/VcsTreeviewLeaf.vue +14 -2
  305. package/src/components/notification/VcsTooltip.vue +1 -1
  306. package/src/contentTree/layerContentTreeItem.js +2 -2
  307. package/src/featureInfo/BalloonComponent.vue +2 -2
  308. package/src/featureInfo/abstractFeatureInfoView.js +1 -1
  309. package/src/featureInfo/addressBalloonFeatureInfoView.js +1 -1
  310. package/src/featureInfo/balloonFeatureInfoView.js +1 -1
  311. package/src/featureInfo/balloonHelper.js +6 -6
  312. package/src/featureInfo/featureInfo.js +2 -2
  313. package/src/i18n/de.js +8 -8
  314. package/src/i18n/en.js +6 -6
  315. package/src/legend/legendHelper.js +8 -8
  316. package/src/legend/vcsLegend.vue +33 -5
  317. package/src/manager/toolbox/ToolboxManager.vue +1 -0
  318. package/src/manager/window/WindowComponent.vue +42 -4
  319. package/src/manager/window/WindowComponentHeader.vue +1 -1
  320. package/src/manager/window/windowHelper.js +7 -11
  321. package/src/manager/window/windowManager.js +15 -11
  322. package/src/navigation/mapNavCompass.vue +13 -7
  323. package/src/navigation/mapNavigation.vue +66 -4
  324. package/src/navigation/orientationToolsButton.vue +1 -1
  325. package/src/navigation/overviewMap.js +26 -10
  326. package/src/navigation/vcsCompass.vue +4 -73
  327. package/src/setup.js +1 -1
  328. package/src/vuePlugins/vuetify.js +1 -1
  329. package/dist/assets/cesium/Workers/ArcType-c9b2b290.js +0 -25
  330. package/dist/assets/cesium/Workers/AttributeCompression-7b0f288d.js +0 -25
  331. package/dist/assets/cesium/Workers/AxisAlignedBoundingBox-d0c22774.js +0 -25
  332. package/dist/assets/cesium/Workers/BoundingRectangle-201b1a81.js +0 -25
  333. package/dist/assets/cesium/Workers/BoxGeometry-4985457c.js +0 -25
  334. package/dist/assets/cesium/Workers/Color-cc8c18b3.js +0 -25
  335. package/dist/assets/cesium/Workers/ComponentDatatype-0200bf8c.js +0 -25
  336. package/dist/assets/cesium/Workers/CoplanarPolygonGeometryLibrary-4345acdf.js +0 -25
  337. package/dist/assets/cesium/Workers/CorridorGeometryLibrary-850a6c35.js +0 -25
  338. package/dist/assets/cesium/Workers/CylinderGeometry-57a1051a.js +0 -25
  339. package/dist/assets/cesium/Workers/CylinderGeometryLibrary-62ce5a1f.js +0 -25
  340. package/dist/assets/cesium/Workers/EllipseGeometry-8627398f.js +0 -25
  341. package/dist/assets/cesium/Workers/EllipseGeometryLibrary-e5919563.js +0 -25
  342. package/dist/assets/cesium/Workers/EllipseOutlineGeometry-96fd4ae1.js +0 -25
  343. package/dist/assets/cesium/Workers/EllipsoidGeodesic-8bfefbff.js +0 -25
  344. package/dist/assets/cesium/Workers/EllipsoidGeometry-377329b9.js +0 -25
  345. package/dist/assets/cesium/Workers/EllipsoidOutlineGeometry-e6e16e49.js +0 -25
  346. package/dist/assets/cesium/Workers/EllipsoidRhumbLine-03528f73.js +0 -25
  347. package/dist/assets/cesium/Workers/EllipsoidTangentPlane-c080fd1b.js +0 -25
  348. package/dist/assets/cesium/Workers/EncodedCartesian3-ea0e408f.js +0 -25
  349. package/dist/assets/cesium/Workers/FrustumGeometry-a8b5d817.js +0 -25
  350. package/dist/assets/cesium/Workers/GeometryAttribute-8458a8fd.js +0 -25
  351. package/dist/assets/cesium/Workers/GeometryAttributes-ac0f8485.js +0 -25
  352. package/dist/assets/cesium/Workers/GeometryInstance-ee3aa3ba.js +0 -25
  353. package/dist/assets/cesium/Workers/GeometryOffsetAttribute-08ae0c50.js +0 -25
  354. package/dist/assets/cesium/Workers/GeometryPipeline-33ca229c.js +0 -25
  355. package/dist/assets/cesium/Workers/IndexDatatype-e713bfd2.js +0 -25
  356. package/dist/assets/cesium/Workers/IntersectionTests-eb4db8e0.js +0 -25
  357. package/dist/assets/cesium/Workers/Matrix2-eefef8eb.js +0 -25
  358. package/dist/assets/cesium/Workers/OrientedBoundingBox-5193f9a2.js +0 -25
  359. package/dist/assets/cesium/Workers/Plane-b0299683.js +0 -25
  360. package/dist/assets/cesium/Workers/PolygonGeometryLibrary-b61295f3.js +0 -25
  361. package/dist/assets/cesium/Workers/PolygonPipeline-eb527514.js +0 -25
  362. package/dist/assets/cesium/Workers/PolylinePipeline-0f23dd84.js +0 -25
  363. package/dist/assets/cesium/Workers/PolylineVolumeGeometryLibrary-2d903430.js +0 -25
  364. package/dist/assets/cesium/Workers/PrimitivePipeline-e2640413.js +0 -25
  365. package/dist/assets/cesium/Workers/RectangleGeometryLibrary-ae8bf8a5.js +0 -25
  366. package/dist/assets/cesium/Workers/RuntimeError-5baf5c66.js +0 -25
  367. package/dist/assets/cesium/Workers/TerrainEncoding-bc10ab54.js +0 -25
  368. package/dist/assets/cesium/Workers/Transforms-d2e5867e.js +0 -63
  369. package/dist/assets/cesium/Workers/VertexFormat-5ec0d9ff.js +0 -25
  370. package/dist/assets/cesium/Workers/WallGeometryLibrary-1a33e416.js +0 -25
  371. package/dist/assets/cesium/Workers/WebGLConstants-5b50ced1.js +0 -25
  372. package/dist/assets/cesium/Workers/WebMercatorProjection-cd2f30c2.js +0 -25
  373. package/dist/assets/cesium/Workers/_commonjsHelpers-bc29abbc.js +0 -25
  374. package/dist/assets/cesium/Workers/arrayRemoveDuplicates-f13aceb1.js +0 -25
  375. package/dist/assets/cesium/Workers/combine-7533016d.js +0 -25
  376. package/dist/assets/cesium/Workers/defaultValue-0c475b81.js +0 -25
  377. package/dist/assets/cesium/Workers/package.json +0 -1
  378. package/dist/assets/ui.dffe32.css +0 -1
  379. package/plugins/@vcmap/pluginExample/config.json +0 -6
  380. package/plugins/@vcmap/pluginExample/package.json +0 -7
  381. package/plugins/categoryTest/ItemEditor.vue +0 -13
  382. package/plugins/test/allIconsComponent.vue +0 -50
  383. package/plugins/test/index.js +0 -207
  384. package/plugins/test/toolbox-data.js +0 -154
  385. package/plugins/wizardExample/wizardExample.vue +0 -77
  386. package/src/components/form-inputs-controls/VcsColorPicker.vue +0 -85
@@ -1,25 +1,1516 @@
1
- /**
2
- * @license
3
- * Cesium - https://github.com/CesiumGS/cesium
4
- * Version 1.97.1
5
- *
6
- * Copyright 2011-2022 Cesium Contributors
7
- *
8
- * Licensed under the Apache License, Version 2.0 (the "License");
9
- * you may not use this file except in compliance with the License.
10
- * You may obtain a copy of the License at
11
- *
12
- * http://www.apache.org/licenses/LICENSE-2.0
13
- *
14
- * Unless required by applicable law or agreed to in writing, software
15
- * distributed under the License is distributed on an "AS IS" BASIS,
16
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17
- * See the License for the specific language governing permissions and
18
- * limitations under the License.
19
- *
20
- * Columbus View (Pat. Pend.)
21
- *
22
- * Portions licensed separately.
23
- * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details.
24
- */
25
- define(["./defaultValue-0c475b81","./WebGLConstants-5b50ced1","./RuntimeError-5baf5c66","./createTaskProcessorWorker"],(function(_,R,t,A){"use strict";const e={UNSIGNED_BYTE:R.WebGLConstants.UNSIGNED_BYTE,UNSIGNED_SHORT:R.WebGLConstants.UNSIGNED_SHORT,UNSIGNED_INT:R.WebGLConstants.UNSIGNED_INT,FLOAT:R.WebGLConstants.FLOAT,HALF_FLOAT:R.WebGLConstants.HALF_FLOAT_OES,UNSIGNED_INT_24_8:R.WebGLConstants.UNSIGNED_INT_24_8,UNSIGNED_SHORT_4_4_4_4:R.WebGLConstants.UNSIGNED_SHORT_4_4_4_4,UNSIGNED_SHORT_5_5_5_1:R.WebGLConstants.UNSIGNED_SHORT_5_5_5_1,UNSIGNED_SHORT_5_6_5:R.WebGLConstants.UNSIGNED_SHORT_5_6_5,toWebGLConstant:function(_,t){switch(_){case e.UNSIGNED_BYTE:return R.WebGLConstants.UNSIGNED_BYTE;case e.UNSIGNED_SHORT:return R.WebGLConstants.UNSIGNED_SHORT;case e.UNSIGNED_INT:return R.WebGLConstants.UNSIGNED_INT;case e.FLOAT:return R.WebGLConstants.FLOAT;case e.HALF_FLOAT:return t.webgl2?R.WebGLConstants.HALF_FLOAT:R.WebGLConstants.HALF_FLOAT_OES;case e.UNSIGNED_INT_24_8:return R.WebGLConstants.UNSIGNED_INT_24_8;case e.UNSIGNED_SHORT_4_4_4_4:return R.WebGLConstants.UNSIGNED_SHORT_4_4_4_4;case e.UNSIGNED_SHORT_5_5_5_1:return R.WebGLConstants.UNSIGNED_SHORT_5_5_5_1;case e.UNSIGNED_SHORT_5_6_5:return e.UNSIGNED_SHORT_5_6_5}},isPacked:function(_){return _===e.UNSIGNED_INT_24_8||_===e.UNSIGNED_SHORT_4_4_4_4||_===e.UNSIGNED_SHORT_5_5_5_1||_===e.UNSIGNED_SHORT_5_6_5},sizeInBytes:function(_){switch(_){case e.UNSIGNED_BYTE:return 1;case e.UNSIGNED_SHORT:case e.UNSIGNED_SHORT_4_4_4_4:case e.UNSIGNED_SHORT_5_5_5_1:case e.UNSIGNED_SHORT_5_6_5:case e.HALF_FLOAT:return 2;case e.UNSIGNED_INT:case e.FLOAT:case e.UNSIGNED_INT_24_8:return 4}},validate:function(_){return _===e.UNSIGNED_BYTE||_===e.UNSIGNED_SHORT||_===e.UNSIGNED_INT||_===e.FLOAT||_===e.HALF_FLOAT||_===e.UNSIGNED_INT_24_8||_===e.UNSIGNED_SHORT_4_4_4_4||_===e.UNSIGNED_SHORT_5_5_5_1||_===e.UNSIGNED_SHORT_5_6_5}};var T=Object.freeze(e);const O={DEPTH_COMPONENT:R.WebGLConstants.DEPTH_COMPONENT,DEPTH_STENCIL:R.WebGLConstants.DEPTH_STENCIL,ALPHA:R.WebGLConstants.ALPHA,RGB:R.WebGLConstants.RGB,RGBA:R.WebGLConstants.RGBA,LUMINANCE:R.WebGLConstants.LUMINANCE,LUMINANCE_ALPHA:R.WebGLConstants.LUMINANCE_ALPHA,RGB_DXT1:R.WebGLConstants.COMPRESSED_RGB_S3TC_DXT1_EXT,RGBA_DXT1:R.WebGLConstants.COMPRESSED_RGBA_S3TC_DXT1_EXT,RGBA_DXT3:R.WebGLConstants.COMPRESSED_RGBA_S3TC_DXT3_EXT,RGBA_DXT5:R.WebGLConstants.COMPRESSED_RGBA_S3TC_DXT5_EXT,RGB_PVRTC_4BPPV1:R.WebGLConstants.COMPRESSED_RGB_PVRTC_4BPPV1_IMG,RGB_PVRTC_2BPPV1:R.WebGLConstants.COMPRESSED_RGB_PVRTC_2BPPV1_IMG,RGBA_PVRTC_4BPPV1:R.WebGLConstants.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG,RGBA_PVRTC_2BPPV1:R.WebGLConstants.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG,RGBA_ASTC:R.WebGLConstants.COMPRESSED_RGBA_ASTC_4x4_WEBGL,RGB_ETC1:R.WebGLConstants.COMPRESSED_RGB_ETC1_WEBGL,RGB8_ETC2:R.WebGLConstants.COMPRESSED_RGB8_ETC2,RGBA8_ETC2_EAC:R.WebGLConstants.COMPRESSED_RGBA8_ETC2_EAC,RGBA_BC7:R.WebGLConstants.COMPRESSED_RGBA_BPTC_UNORM,componentsLength:function(_){switch(_){case O.RGB:return 3;case O.RGBA:return 4;case O.LUMINANCE_ALPHA:return 2;case O.ALPHA:case O.LUMINANCE:default:return 1}},validate:function(_){return _===O.DEPTH_COMPONENT||_===O.DEPTH_STENCIL||_===O.ALPHA||_===O.RGB||_===O.RGBA||_===O.LUMINANCE||_===O.LUMINANCE_ALPHA||_===O.RGB_DXT1||_===O.RGBA_DXT1||_===O.RGBA_DXT3||_===O.RGBA_DXT5||_===O.RGB_PVRTC_4BPPV1||_===O.RGB_PVRTC_2BPPV1||_===O.RGBA_PVRTC_4BPPV1||_===O.RGBA_PVRTC_2BPPV1||_===O.RGBA_ASTC||_===O.RGB_ETC1||_===O.RGB8_ETC2||_===O.RGBA8_ETC2_EAC||_===O.RGBA_BC7},isColorFormat:function(_){return _===O.ALPHA||_===O.RGB||_===O.RGBA||_===O.LUMINANCE||_===O.LUMINANCE_ALPHA},isDepthFormat:function(_){return _===O.DEPTH_COMPONENT||_===O.DEPTH_STENCIL},isCompressedFormat:function(_){return _===O.RGB_DXT1||_===O.RGBA_DXT1||_===O.RGBA_DXT3||_===O.RGBA_DXT5||_===O.RGB_PVRTC_4BPPV1||_===O.RGB_PVRTC_2BPPV1||_===O.RGBA_PVRTC_4BPPV1||_===O.RGBA_PVRTC_2BPPV1||_===O.RGBA_ASTC||_===O.RGB_ETC1||_===O.RGB8_ETC2||_===O.RGBA8_ETC2_EAC||_===O.RGBA_BC7},isDXTFormat:function(_){return _===O.RGB_DXT1||_===O.RGBA_DXT1||_===O.RGBA_DXT3||_===O.RGBA_DXT5},isPVRTCFormat:function(_){return _===O.RGB_PVRTC_4BPPV1||_===O.RGB_PVRTC_2BPPV1||_===O.RGBA_PVRTC_4BPPV1||_===O.RGBA_PVRTC_2BPPV1},isASTCFormat:function(_){return _===O.RGBA_ASTC},isETC1Format:function(_){return _===O.RGB_ETC1},isETC2Format:function(_){return _===O.RGB8_ETC2||_===O.RGBA8_ETC2_EAC},isBC7Format:function(_){return _===O.RGBA_BC7},compressedTextureSizeInBytes:function(_,R,t){switch(_){case O.RGB_DXT1:case O.RGBA_DXT1:case O.RGB_ETC1:case O.RGB8_ETC2:return Math.floor((R+3)/4)*Math.floor((t+3)/4)*8;case O.RGBA_DXT3:case O.RGBA_DXT5:case O.RGBA_ASTC:case O.RGBA8_ETC2_EAC:return Math.floor((R+3)/4)*Math.floor((t+3)/4)*16;case O.RGB_PVRTC_4BPPV1:case O.RGBA_PVRTC_4BPPV1:return Math.floor((Math.max(R,8)*Math.max(t,8)*4+7)/8);case O.RGB_PVRTC_2BPPV1:case O.RGBA_PVRTC_2BPPV1:return Math.floor((Math.max(R,16)*Math.max(t,8)*2+7)/8);case O.RGBA_BC7:return Math.ceil(R/4)*Math.ceil(t/4)*16;default:return 0}},textureSizeInBytes:function(_,R,t,A){let e=O.componentsLength(_);return T.isPacked(R)&&(e=1),e*T.sizeInBytes(R)*t*A},alignmentInBytes:function(_,R,t){const A=O.textureSizeInBytes(_,R,t,1)%4;return 0===A?4:2===A?2:1},createTypedArray:function(_,R,t,A){let e;const n=T.sizeInBytes(R);e=n===Uint8Array.BYTES_PER_ELEMENT?Uint8Array:n===Uint16Array.BYTES_PER_ELEMENT?Uint16Array:n===Float32Array.BYTES_PER_ELEMENT&&R===T.FLOAT?Float32Array:Uint32Array;return new e(O.componentsLength(_)*t*A)},flipY:function(_,R,t,A,e){if(1===e)return _;const T=O.createTypedArray(R,t,A,e),n=O.componentsLength(R),B=A*n;for(let R=0;R<e;++R){const t=R*A*n,O=(e-R-1)*A*n;for(let R=0;R<B;++R)T[O+R]=_[t+R]}return T},toInternalFormat:function(_,t,A){if(!A.webgl2)return _;if(_===O.DEPTH_STENCIL)return R.WebGLConstants.DEPTH24_STENCIL8;if(_===O.DEPTH_COMPONENT){if(t===T.UNSIGNED_SHORT)return R.WebGLConstants.DEPTH_COMPONENT16;if(t===T.UNSIGNED_INT)return R.WebGLConstants.DEPTH_COMPONENT24}if(t===T.FLOAT)switch(_){case O.RGBA:return R.WebGLConstants.RGBA32F;case O.RGB:return R.WebGLConstants.RGB32F;case O.RG:return R.WebGLConstants.RG32F;case O.R:return R.WebGLConstants.R32F}if(t===T.HALF_FLOAT)switch(_){case O.RGBA:return R.WebGLConstants.RGBA16F;case O.RGB:return R.WebGLConstants.RGB16F;case O.RG:return R.WebGLConstants.RG16F;case O.R:return R.WebGLConstants.R16F}return _}};var n=Object.freeze(O);var B=Object.freeze({VK_FORMAT_UNDEFINED:0,VK_FORMAT_R4G4_UNORM_PACK8:1,VK_FORMAT_R4G4B4A4_UNORM_PACK16:2,VK_FORMAT_B4G4R4A4_UNORM_PACK16:3,VK_FORMAT_R5G6B5_UNORM_PACK16:4,VK_FORMAT_B5G6R5_UNORM_PACK16:5,VK_FORMAT_R5G5B5A1_UNORM_PACK16:6,VK_FORMAT_B5G5R5A1_UNORM_PACK16:7,VK_FORMAT_A1R5G5B5_UNORM_PACK16:8,VK_FORMAT_R8_UNORM:9,VK_FORMAT_R8_SNORM:10,VK_FORMAT_R8_USCALED:11,VK_FORMAT_R8_SSCALED:12,VK_FORMAT_R8_UINT:13,VK_FORMAT_R8_SINT:14,VK_FORMAT_R8_SRGB:15,VK_FORMAT_R8G8_UNORM:16,VK_FORMAT_R8G8_SNORM:17,VK_FORMAT_R8G8_USCALED:18,VK_FORMAT_R8G8_SSCALED:19,VK_FORMAT_R8G8_UINT:20,VK_FORMAT_R8G8_SINT:21,VK_FORMAT_R8G8_SRGB:22,VK_FORMAT_R8G8B8_UNORM:23,VK_FORMAT_R8G8B8_SNORM:24,VK_FORMAT_R8G8B8_USCALED:25,VK_FORMAT_R8G8B8_SSCALED:26,VK_FORMAT_R8G8B8_UINT:27,VK_FORMAT_R8G8B8_SINT:28,VK_FORMAT_R8G8B8_SRGB:29,VK_FORMAT_B8G8R8_UNORM:30,VK_FORMAT_B8G8R8_SNORM:31,VK_FORMAT_B8G8R8_USCALED:32,VK_FORMAT_B8G8R8_SSCALED:33,VK_FORMAT_B8G8R8_UINT:34,VK_FORMAT_B8G8R8_SINT:35,VK_FORMAT_B8G8R8_SRGB:36,VK_FORMAT_R8G8B8A8_UNORM:37,VK_FORMAT_R8G8B8A8_SNORM:38,VK_FORMAT_R8G8B8A8_USCALED:39,VK_FORMAT_R8G8B8A8_SSCALED:40,VK_FORMAT_R8G8B8A8_UINT:41,VK_FORMAT_R8G8B8A8_SINT:42,VK_FORMAT_R8G8B8A8_SRGB:43,VK_FORMAT_B8G8R8A8_UNORM:44,VK_FORMAT_B8G8R8A8_SNORM:45,VK_FORMAT_B8G8R8A8_USCALED:46,VK_FORMAT_B8G8R8A8_SSCALED:47,VK_FORMAT_B8G8R8A8_UINT:48,VK_FORMAT_B8G8R8A8_SINT:49,VK_FORMAT_B8G8R8A8_SRGB:50,VK_FORMAT_A8B8G8R8_UNORM_PACK32:51,VK_FORMAT_A8B8G8R8_SNORM_PACK32:52,VK_FORMAT_A8B8G8R8_USCALED_PACK32:53,VK_FORMAT_A8B8G8R8_SSCALED_PACK32:54,VK_FORMAT_A8B8G8R8_UINT_PACK32:55,VK_FORMAT_A8B8G8R8_SINT_PACK32:56,VK_FORMAT_A8B8G8R8_SRGB_PACK32:57,VK_FORMAT_A2R10G10B10_UNORM_PACK32:58,VK_FORMAT_A2R10G10B10_SNORM_PACK32:59,VK_FORMAT_A2R10G10B10_USCALED_PACK32:60,VK_FORMAT_A2R10G10B10_SSCALED_PACK32:61,VK_FORMAT_A2R10G10B10_UINT_PACK32:62,VK_FORMAT_A2R10G10B10_SINT_PACK32:63,VK_FORMAT_A2B10G10R10_UNORM_PACK32:64,VK_FORMAT_A2B10G10R10_SNORM_PACK32:65,VK_FORMAT_A2B10G10R10_USCALED_PACK32:66,VK_FORMAT_A2B10G10R10_SSCALED_PACK32:67,VK_FORMAT_A2B10G10R10_UINT_PACK32:68,VK_FORMAT_A2B10G10R10_SINT_PACK32:69,VK_FORMAT_R16_UNORM:70,VK_FORMAT_R16_SNORM:71,VK_FORMAT_R16_USCALED:72,VK_FORMAT_R16_SSCALED:73,VK_FORMAT_R16_UINT:74,VK_FORMAT_R16_SINT:75,VK_FORMAT_R16_SFLOAT:76,VK_FORMAT_R16G16_UNORM:77,VK_FORMAT_R16G16_SNORM:78,VK_FORMAT_R16G16_USCALED:79,VK_FORMAT_R16G16_SSCALED:80,VK_FORMAT_R16G16_UINT:81,VK_FORMAT_R16G16_SINT:82,VK_FORMAT_R16G16_SFLOAT:83,VK_FORMAT_R16G16B16_UNORM:84,VK_FORMAT_R16G16B16_SNORM:85,VK_FORMAT_R16G16B16_USCALED:86,VK_FORMAT_R16G16B16_SSCALED:87,VK_FORMAT_R16G16B16_UINT:88,VK_FORMAT_R16G16B16_SINT:89,VK_FORMAT_R16G16B16_SFLOAT:90,VK_FORMAT_R16G16B16A16_UNORM:91,VK_FORMAT_R16G16B16A16_SNORM:92,VK_FORMAT_R16G16B16A16_USCALED:93,VK_FORMAT_R16G16B16A16_SSCALED:94,VK_FORMAT_R16G16B16A16_UINT:95,VK_FORMAT_R16G16B16A16_SINT:96,VK_FORMAT_R16G16B16A16_SFLOAT:97,VK_FORMAT_R32_UINT:98,VK_FORMAT_R32_SINT:99,VK_FORMAT_R32_SFLOAT:100,VK_FORMAT_R32G32_UINT:101,VK_FORMAT_R32G32_SINT:102,VK_FORMAT_R32G32_SFLOAT:103,VK_FORMAT_R32G32B32_UINT:104,VK_FORMAT_R32G32B32_SINT:105,VK_FORMAT_R32G32B32_SFLOAT:106,VK_FORMAT_R32G32B32A32_UINT:107,VK_FORMAT_R32G32B32A32_SINT:108,VK_FORMAT_R32G32B32A32_SFLOAT:109,VK_FORMAT_R64_UINT:110,VK_FORMAT_R64_SINT:111,VK_FORMAT_R64_SFLOAT:112,VK_FORMAT_R64G64_UINT:113,VK_FORMAT_R64G64_SINT:114,VK_FORMAT_R64G64_SFLOAT:115,VK_FORMAT_R64G64B64_UINT:116,VK_FORMAT_R64G64B64_SINT:117,VK_FORMAT_R64G64B64_SFLOAT:118,VK_FORMAT_R64G64B64A64_UINT:119,VK_FORMAT_R64G64B64A64_SINT:120,VK_FORMAT_R64G64B64A64_SFLOAT:121,VK_FORMAT_B10G11R11_UFLOAT_PACK32:122,VK_FORMAT_E5B9G9R9_UFLOAT_PACK32:123,VK_FORMAT_D16_UNORM:124,VK_FORMAT_X8_D24_UNORM_PACK32:125,VK_FORMAT_D32_SFLOAT:126,VK_FORMAT_S8_UINT:127,VK_FORMAT_D16_UNORM_S8_UINT:128,VK_FORMAT_D24_UNORM_S8_UINT:129,VK_FORMAT_D32_SFLOAT_S8_UINT:130,VK_FORMAT_BC1_RGB_UNORM_BLOCK:131,VK_FORMAT_BC1_RGB_SRGB_BLOCK:132,VK_FORMAT_BC1_RGBA_UNORM_BLOCK:133,VK_FORMAT_BC1_RGBA_SRGB_BLOCK:134,VK_FORMAT_BC2_UNORM_BLOCK:135,VK_FORMAT_BC2_SRGB_BLOCK:136,VK_FORMAT_BC3_UNORM_BLOCK:137,VK_FORMAT_BC3_SRGB_BLOCK:138,VK_FORMAT_BC4_UNORM_BLOCK:139,VK_FORMAT_BC4_SNORM_BLOCK:140,VK_FORMAT_BC5_UNORM_BLOCK:141,VK_FORMAT_BC5_SNORM_BLOCK:142,VK_FORMAT_BC6H_UFLOAT_BLOCK:143,VK_FORMAT_BC6H_SFLOAT_BLOCK:144,VK_FORMAT_BC7_UNORM_BLOCK:145,VK_FORMAT_BC7_SRGB_BLOCK:146,VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK:147,VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK:148,VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK:149,VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK:150,VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK:151,VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK:152,VK_FORMAT_EAC_R11_UNORM_BLOCK:153,VK_FORMAT_EAC_R11_SNORM_BLOCK:154,VK_FORMAT_EAC_R11G11_UNORM_BLOCK:155,VK_FORMAT_EAC_R11G11_SNORM_BLOCK:156,VK_FORMAT_ASTC_4x4_UNORM_BLOCK:157,VK_FORMAT_ASTC_4x4_SRGB_BLOCK:158,VK_FORMAT_ASTC_5x4_UNORM_BLOCK:159,VK_FORMAT_ASTC_5x4_SRGB_BLOCK:160,VK_FORMAT_ASTC_5x5_UNORM_BLOCK:161,VK_FORMAT_ASTC_5x5_SRGB_BLOCK:162,VK_FORMAT_ASTC_6x5_UNORM_BLOCK:163,VK_FORMAT_ASTC_6x5_SRGB_BLOCK:164,VK_FORMAT_ASTC_6x6_UNORM_BLOCK:165,VK_FORMAT_ASTC_6x6_SRGB_BLOCK:166,VK_FORMAT_ASTC_8x5_UNORM_BLOCK:167,VK_FORMAT_ASTC_8x5_SRGB_BLOCK:168,VK_FORMAT_ASTC_8x6_UNORM_BLOCK:169,VK_FORMAT_ASTC_8x6_SRGB_BLOCK:170,VK_FORMAT_ASTC_8x8_UNORM_BLOCK:171,VK_FORMAT_ASTC_8x8_SRGB_BLOCK:172,VK_FORMAT_ASTC_10x5_UNORM_BLOCK:173,VK_FORMAT_ASTC_10x5_SRGB_BLOCK:174,VK_FORMAT_ASTC_10x6_UNORM_BLOCK:175,VK_FORMAT_ASTC_10x6_SRGB_BLOCK:176,VK_FORMAT_ASTC_10x8_UNORM_BLOCK:177,VK_FORMAT_ASTC_10x8_SRGB_BLOCK:178,VK_FORMAT_ASTC_10x10_UNORM_BLOCK:179,VK_FORMAT_ASTC_10x10_SRGB_BLOCK:180,VK_FORMAT_ASTC_12x10_UNORM_BLOCK:181,VK_FORMAT_ASTC_12x10_SRGB_BLOCK:182,VK_FORMAT_ASTC_12x12_UNORM_BLOCK:183,VK_FORMAT_ASTC_12x12_SRGB_BLOCK:184,VK_FORMAT_G8B8G8R8_422_UNORM:1000156e3,VK_FORMAT_B8G8R8G8_422_UNORM:1000156001,VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM:1000156002,VK_FORMAT_G8_B8R8_2PLANE_420_UNORM:1000156003,VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM:1000156004,VK_FORMAT_G8_B8R8_2PLANE_422_UNORM:1000156005,VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM:1000156006,VK_FORMAT_R10X6_UNORM_PACK16:1000156007,VK_FORMAT_R10X6G10X6_UNORM_2PACK16:1000156008,VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16:1000156009,VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16:1000156010,VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16:1000156011,VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16:1000156012,VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16:1000156013,VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16:1000156014,VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16:1000156015,VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16:1000156016,VK_FORMAT_R12X4_UNORM_PACK16:1000156017,VK_FORMAT_R12X4G12X4_UNORM_2PACK16:1000156018,VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16:1000156019,VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16:1000156020,VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16:1000156021,VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16:1000156022,VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16:1000156023,VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16:1000156024,VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16:1000156025,VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16:1000156026,VK_FORMAT_G16B16G16R16_422_UNORM:1000156027,VK_FORMAT_B16G16R16G16_422_UNORM:1000156028,VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM:1000156029,VK_FORMAT_G16_B16R16_2PLANE_420_UNORM:1000156030,VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM:1000156031,VK_FORMAT_G16_B16R16_2PLANE_422_UNORM:1000156032,VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM:1000156033,VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG:1000054e3,VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG:1000054001,VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG:1000054002,VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG:1000054003,VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG:1000054004,VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG:1000054005,VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG:1000054006,VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG:1000054007,VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT:1000066e3,VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT:1000066001,VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT:1000066002,VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT:1000066003,VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT:1000066004,VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT:1000066005,VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT:1000066006,VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT:1000066007,VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT:1000066008,VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT:1000066009,VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT:1000066010,VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT:1000066011,VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT:1000066012,VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT:1000066013,VK_FORMAT_G8B8G8R8_422_UNORM_KHR:1000156e3,VK_FORMAT_B8G8R8G8_422_UNORM_KHR:1000156001,VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR:1000156002,VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR:1000156003,VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR:1000156004,VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR:1000156005,VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR:1000156006,VK_FORMAT_R10X6_UNORM_PACK16_KHR:1000156007,VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR:1000156008,VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR:1000156009,VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR:1000156010,VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR:1000156011,VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR:1000156012,VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR:1000156013,VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR:1000156014,VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR:1000156015,VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR:1000156016,VK_FORMAT_R12X4_UNORM_PACK16_KHR:1000156017,VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR:1000156018,VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR:1000156019,VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR:1000156020,VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR:1000156021,VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR:1000156022,VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR:1000156023,VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR:1000156024,VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR:1000156025,VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR:1000156026,VK_FORMAT_G16B16G16R16_422_UNORM_KHR:1000156027,VK_FORMAT_B16G16R16G16_422_UNORM_KHR:1000156028,VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR:1000156029,VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR:1000156030,VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR:1000156031,VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR:1000156032,VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR:1000156033});const G=[171,75,84,88,32,50,48,187,13,10,26,10];var M,C,K,s,F,N,r,i,S;(S=M||(M={}))[S.NONE=0]="NONE",S[S.BASISLZ=1]="BASISLZ",S[S.ZSTD=2]="ZSTD",S[S.ZLIB=3]="ZLIB",function(_){_[_.BASICFORMAT=0]="BASICFORMAT"}(C||(C={})),function(_){_[_.UNSPECIFIED=0]="UNSPECIFIED",_[_.ETC1S=163]="ETC1S",_[_.UASTC=166]="UASTC"}(K||(K={})),function(_){_[_.UNSPECIFIED=0]="UNSPECIFIED",_[_.SRGB=1]="SRGB"}(s||(s={})),function(_){_[_.UNSPECIFIED=0]="UNSPECIFIED",_[_.LINEAR=1]="LINEAR",_[_.SRGB=2]="SRGB",_[_.ITU=3]="ITU",_[_.NTSC=4]="NTSC",_[_.SLOG=5]="SLOG",_[_.SLOG2=6]="SLOG2"}(F||(F={})),function(_){_[_.ALPHA_STRAIGHT=0]="ALPHA_STRAIGHT",_[_.ALPHA_PREMULTIPLIED=1]="ALPHA_PREMULTIPLIED"}(N||(N={})),function(_){_[_.RGB=0]="RGB",_[_.RRR=3]="RRR",_[_.GGG=4]="GGG",_[_.AAA=15]="AAA"}(r||(r={})),function(_){_[_.RGB=0]="RGB",_[_.RGBA=3]="RGBA",_[_.RRR=4]="RRR",_[_.RRRG=5]="RRRG"}(i||(i={}));class V{constructor(){this.vkFormat=0,this.typeSize=1,this.pixelWidth=0,this.pixelHeight=0,this.pixelDepth=0,this.layerCount=0,this.faceCount=1,this.supercompressionScheme=M.NONE,this.levels=[],this.dataFormatDescriptor=[{vendorId:0,descriptorType:C.BASICFORMAT,versionNumber:2,descriptorBlockSize:40,colorModel:K.UNSPECIFIED,colorPrimaries:s.SRGB,transferFunction:s.SRGB,flags:N.ALPHA_STRAIGHT,texelBlockDimension:{x:4,y:4,z:1,w:1},bytesPlane:[],samples:[]}],this.keyValue={},this.globalData=null}}class o{constructor(_,R,t,A){this._dataView=new DataView(_.buffer,_.byteOffset+R,t),this._littleEndian=A,this._offset=0}_nextUint8(){const _=this._dataView.getUint8(this._offset);return this._offset+=1,_}_nextUint16(){const _=this._dataView.getUint16(this._offset,this._littleEndian);return this._offset+=2,_}_nextUint32(){const _=this._dataView.getUint32(this._offset,this._littleEndian);return this._offset+=4,_}_nextUint64(){const _=this._dataView.getUint32(this._offset,this._littleEndian)+2**32*this._dataView.getUint32(this._offset+4,this._littleEndian);return this._offset+=8,_}_skip(_){return this._offset+=_,this}_scan(_,R=0){const t=this._offset;let A=0;for(;this._dataView.getUint8(this._offset)!==R&&A<_;)A++,this._offset++;return A<_&&this._offset++,new Uint8Array(this._dataView.buffer,this._dataView.byteOffset+t,A)}}function a(_){return"undefined"!=typeof TextDecoder?(new TextDecoder).decode(_):Buffer.from(_).toString("utf8")}const U=["positiveX","negativeX","positiveY","negativeY","positiveZ","negativeZ"];let E;function L(R,A){const e=R.ktx2Buffer,O=R.supportedTargetFormats;let M;try{M=function(_){const R=new Uint8Array(_.buffer,_.byteOffset,G.length);if(R[0]!==G[0]||R[1]!==G[1]||R[2]!==G[2]||R[3]!==G[3]||R[4]!==G[4]||R[5]!==G[5]||R[6]!==G[6]||R[7]!==G[7]||R[8]!==G[8]||R[9]!==G[9]||R[10]!==G[10]||R[11]!==G[11])throw new Error("Missing KTX 2.0 identifier.");const t=new V,A=17*Uint32Array.BYTES_PER_ELEMENT,e=new o(_,G.length,A,!0);t.vkFormat=e._nextUint32(),t.typeSize=e._nextUint32(),t.pixelWidth=e._nextUint32(),t.pixelHeight=e._nextUint32(),t.pixelDepth=e._nextUint32(),t.layerCount=e._nextUint32(),t.faceCount=e._nextUint32();const T=e._nextUint32();t.supercompressionScheme=e._nextUint32();const O=e._nextUint32(),n=e._nextUint32(),B=e._nextUint32(),M=e._nextUint32(),C=e._nextUint64(),K=e._nextUint64(),s=new o(_,G.length+A,3*T*8,!0);for(let R=0;R<T;R++)t.levels.push({levelData:new Uint8Array(_.buffer,_.byteOffset+s._nextUint64(),s._nextUint64()),uncompressedByteLength:s._nextUint64()});const F=new o(_,O,n,!0),N={vendorId:F._skip(4)._nextUint16(),descriptorType:F._nextUint16(),versionNumber:F._nextUint16(),descriptorBlockSize:F._nextUint16(),colorModel:F._nextUint8(),colorPrimaries:F._nextUint8(),transferFunction:F._nextUint8(),flags:F._nextUint8(),texelBlockDimension:{x:F._nextUint8()+1,y:F._nextUint8()+1,z:F._nextUint8()+1,w:F._nextUint8()+1},bytesPlane:[F._nextUint8(),F._nextUint8(),F._nextUint8(),F._nextUint8(),F._nextUint8(),F._nextUint8(),F._nextUint8(),F._nextUint8()],samples:[]},r=(N.descriptorBlockSize/4-6)/4;for(let _=0;_<r;_++)N.samples[_]={bitOffset:F._nextUint16(),bitLength:F._nextUint8(),channelID:F._nextUint8(),samplePosition:[F._nextUint8(),F._nextUint8(),F._nextUint8(),F._nextUint8()],sampleLower:F._nextUint32(),sampleUpper:F._nextUint32()};t.dataFormatDescriptor.length=0,t.dataFormatDescriptor.push(N);const i=new o(_,B,M,!0);for(;i._offset<M;){const _=i._nextUint32(),R=i._scan(_),A=a(R),e=i._scan(_-R.byteLength);t.keyValue[A]=A.match(/^ktx/i)?a(e):e,i._offset%4&&i._skip(4-i._offset%4)}if(K<=0)return t;const S=new o(_,C,K,!0),U=S._nextUint16(),E=S._nextUint16(),L=S._nextUint32(),P=S._nextUint32(),c=S._nextUint32(),f=S._nextUint32(),I=[];for(let _=0;_<T;_++)I.push({imageFlags:S._nextUint32(),rgbSliceByteOffset:S._nextUint32(),rgbSliceByteLength:S._nextUint32(),alphaSliceByteOffset:S._nextUint32(),alphaSliceByteLength:S._nextUint32()});const l=C+S._offset,u=l+L,X=u+P,D=X+c,x=new Uint8Array(_.buffer,_.byteOffset+l,L),h=new Uint8Array(_.buffer,_.byteOffset+u,P),H=new Uint8Array(_.buffer,_.byteOffset+X,c),d=new Uint8Array(_.buffer,_.byteOffset+D,f);return t.globalData={endpointCount:U,selectorCount:E,imageDescs:I,endpointsData:x,selectorsData:h,tablesData:H,extendedData:d},t}(e)}catch(_){throw new t.RuntimeError("Invalid KTX2 file.")}if(0!==M.layerCount)throw new t.RuntimeError("KTX2 texture arrays are not supported.");if(0!==M.pixelDepth)throw new t.RuntimeError("KTX2 3D textures are unsupported.");const C=M.dataFormatDescriptor[0],K=new Array(M.levelCount);return 0!==M.vkFormat||163!==C.colorModel&&166!==C.colorModel?(A.push(e.buffer),function(R,t){const A=R.vkFormat===B.VK_FORMAT_R8G8B8_SRGB?n.RGB:n.RGBA;let e;R.vkFormat===B.VK_FORMAT_R8G8B8A8_UNORM?e=T.UNSIGNED_BYTE:R.vkFormat===B.VK_FORMAT_R16G16B16A16_SFLOAT?e=T.HALF_FLOAT:R.vkFormat===B.VK_FORMAT_R32G32B32A32_SFLOAT&&(e=T.FLOAT);for(let O=0;O<R.levels.length;++O){const B={};t[O]=B;const G=R.levels[O].levelData,M=R.pixelWidth>>O,C=R.pixelHeight>>O,K=M*C*n.componentsLength(A);for(let t=0;t<R.faceCount;++t){const O=G.byteOffset+K*R.typeSize*t;let n;n=_.defined(e)&&1!==T.sizeInBytes(e)?2===T.sizeInBytes(e)?new Uint16Array(G.buffer,O,K):new Float32Array(G.buffer,O,K):new Uint8Array(G.buffer,O,K),B[U[t]]={internalFormat:A,datatype:e,width:M,height:C,levelBuffer:n}}}}(M,K)):function(R,A,e,T,O,B){const G=new T.KTX2File(R);let M=G.getWidth(),C=G.getHeight();const K=G.getLevels(),s=G.getHasAlpha();if(!(M>0&&C>0&&K>0))throw G.close(),G.delete(),new t.RuntimeError("Invalid KTX2 file");let F,N;const r=A.dataFormatDescriptor[0],i=T.transcoder_texture_format;if(163===r.colorModel)if(e.etc)F=s?n.RGBA8_ETC2_EAC:n.RGB8_ETC2,N=s?i.cTFETC2_RGBA:i.cTFETC1_RGB;else if(e.etc1&&!s)F=n.RGB_ETC1,N=i.cTFETC1_RGB;else if(e.s3tc)F=s?n.RGBA_DXT5:n.RGB_DXT1,N=s?i.cTFBC3_RGBA:i.cTFBC1_RGB;else if(e.pvrtc)F=s?n.RGBA_PVRTC_4BPPV1:n.RGB_PVRTC_4BPPV1,N=s?i.cTFPVRTC1_4_RGBA:i.cTFPVRTC1_4_RGB;else if(e.astc)F=n.RGBA_ASTC,N=i.cTFASTC_4x4_RGBA;else{if(!e.bc7)throw new t.RuntimeError("No transcoding format target available for ETC1S compressed ktx2.");F=n.RGBA_BC7,N=i.cTFBC7_RGBA}else if(166===r.colorModel)if(e.astc)F=n.RGBA_ASTC,N=i.cTFASTC_4x4_RGBA;else if(e.bc7)F=n.RGBA_BC7,N=i.cTFBC7_RGBA;else if(e.s3tc)F=s?n.RGBA_DXT5:n.RGB_DXT1,N=s?i.cTFBC3_RGBA:i.cTFBC1_RGB;else if(e.etc)F=s?n.RGBA8_ETC2_EAC:n.RGB8_ETC2,N=s?i.cTFETC2_RGBA:i.cTFETC1_RGB;else if(e.etc1&&!s)F=n.RGB_ETC1,N=i.cTFETC1_RGB;else{if(!e.pvrtc)throw new t.RuntimeError("No transcoding format target available for UASTC compressed ktx2.");F=s?n.RGBA_PVRTC_4BPPV1:n.RGB_PVRTC_4BPPV1,N=s?i.cTFPVRTC1_4_RGBA:i.cTFPVRTC1_4_RGB}if(!G.startTranscoding())throw G.close(),G.delete(),new t.RuntimeError("startTranscoding() failed");for(let R=0;R<A.levels.length;++R){const e={};B[R]=e,M=A.pixelWidth>>R,C=A.pixelHeight>>R;const T=G.getImageTranscodedSizeInBytes(R,0,0,N.value),n=new Uint8Array(T),K=G.transcodeImage(n,R,0,0,N.value,0,-1,-1);if(!_.defined(K))throw new t.RuntimeError("transcodeImage() failed.");O.push(n.buffer),e[U[0]]={internalFormat:F,width:M,height:C,levelBuffer:n}}G.close(),G.delete()}(e,M,O,E,A,K),K}function P(_){E=_,E.initializeBasis(),self.onmessage=A(L),self.postMessage(!0)}return function(R){const t=R.data.webAssemblyConfig;if(_.defined(t))return require([t.modulePath],(function(R){if(!_.defined(t.wasmBinaryFile))return R().then((function(_){P(_)}));_.defined(R)||(R=self.MSC_TRANSCODER),R(t).then((function(_){P(_)}))}))}}));
1
+ define(['./defaultValue-0a909f67', './Check-666ab1a0', './WebGLConstants-a8cc3e8c', './RuntimeError-06c93819', './createTaskProcessorWorker'], (function (defaultValue, Check, WebGLConstants, RuntimeError, createTaskProcessorWorker) { 'use strict';
2
+
3
+ /**
4
+ * The data type of a pixel.
5
+ *
6
+ * @enum {Number}
7
+ * @see PostProcessStage
8
+ */
9
+ const PixelDatatype = {
10
+ UNSIGNED_BYTE: WebGLConstants.WebGLConstants.UNSIGNED_BYTE,
11
+ UNSIGNED_SHORT: WebGLConstants.WebGLConstants.UNSIGNED_SHORT,
12
+ UNSIGNED_INT: WebGLConstants.WebGLConstants.UNSIGNED_INT,
13
+ FLOAT: WebGLConstants.WebGLConstants.FLOAT,
14
+ HALF_FLOAT: WebGLConstants.WebGLConstants.HALF_FLOAT_OES,
15
+ UNSIGNED_INT_24_8: WebGLConstants.WebGLConstants.UNSIGNED_INT_24_8,
16
+ UNSIGNED_SHORT_4_4_4_4: WebGLConstants.WebGLConstants.UNSIGNED_SHORT_4_4_4_4,
17
+ UNSIGNED_SHORT_5_5_5_1: WebGLConstants.WebGLConstants.UNSIGNED_SHORT_5_5_5_1,
18
+ UNSIGNED_SHORT_5_6_5: WebGLConstants.WebGLConstants.UNSIGNED_SHORT_5_6_5,
19
+ };
20
+
21
+ /**
22
+ @private
23
+ */
24
+ PixelDatatype.toWebGLConstant = function (pixelDatatype, context) {
25
+ switch (pixelDatatype) {
26
+ case PixelDatatype.UNSIGNED_BYTE:
27
+ return WebGLConstants.WebGLConstants.UNSIGNED_BYTE;
28
+ case PixelDatatype.UNSIGNED_SHORT:
29
+ return WebGLConstants.WebGLConstants.UNSIGNED_SHORT;
30
+ case PixelDatatype.UNSIGNED_INT:
31
+ return WebGLConstants.WebGLConstants.UNSIGNED_INT;
32
+ case PixelDatatype.FLOAT:
33
+ return WebGLConstants.WebGLConstants.FLOAT;
34
+ case PixelDatatype.HALF_FLOAT:
35
+ return context.webgl2
36
+ ? WebGLConstants.WebGLConstants.HALF_FLOAT
37
+ : WebGLConstants.WebGLConstants.HALF_FLOAT_OES;
38
+ case PixelDatatype.UNSIGNED_INT_24_8:
39
+ return WebGLConstants.WebGLConstants.UNSIGNED_INT_24_8;
40
+ case PixelDatatype.UNSIGNED_SHORT_4_4_4_4:
41
+ return WebGLConstants.WebGLConstants.UNSIGNED_SHORT_4_4_4_4;
42
+ case PixelDatatype.UNSIGNED_SHORT_5_5_5_1:
43
+ return WebGLConstants.WebGLConstants.UNSIGNED_SHORT_5_5_5_1;
44
+ case PixelDatatype.UNSIGNED_SHORT_5_6_5:
45
+ return PixelDatatype.UNSIGNED_SHORT_5_6_5;
46
+ }
47
+ };
48
+
49
+ /**
50
+ @private
51
+ */
52
+ PixelDatatype.isPacked = function (pixelDatatype) {
53
+ return (
54
+ pixelDatatype === PixelDatatype.UNSIGNED_INT_24_8 ||
55
+ pixelDatatype === PixelDatatype.UNSIGNED_SHORT_4_4_4_4 ||
56
+ pixelDatatype === PixelDatatype.UNSIGNED_SHORT_5_5_5_1 ||
57
+ pixelDatatype === PixelDatatype.UNSIGNED_SHORT_5_6_5
58
+ );
59
+ };
60
+
61
+ /**
62
+ @private
63
+ */
64
+ PixelDatatype.sizeInBytes = function (pixelDatatype) {
65
+ switch (pixelDatatype) {
66
+ case PixelDatatype.UNSIGNED_BYTE:
67
+ return 1;
68
+ case PixelDatatype.UNSIGNED_SHORT:
69
+ case PixelDatatype.UNSIGNED_SHORT_4_4_4_4:
70
+ case PixelDatatype.UNSIGNED_SHORT_5_5_5_1:
71
+ case PixelDatatype.UNSIGNED_SHORT_5_6_5:
72
+ case PixelDatatype.HALF_FLOAT:
73
+ return 2;
74
+ case PixelDatatype.UNSIGNED_INT:
75
+ case PixelDatatype.FLOAT:
76
+ case PixelDatatype.UNSIGNED_INT_24_8:
77
+ return 4;
78
+ }
79
+ };
80
+
81
+ /**
82
+ @private
83
+ */
84
+ PixelDatatype.validate = function (pixelDatatype) {
85
+ return (
86
+ pixelDatatype === PixelDatatype.UNSIGNED_BYTE ||
87
+ pixelDatatype === PixelDatatype.UNSIGNED_SHORT ||
88
+ pixelDatatype === PixelDatatype.UNSIGNED_INT ||
89
+ pixelDatatype === PixelDatatype.FLOAT ||
90
+ pixelDatatype === PixelDatatype.HALF_FLOAT ||
91
+ pixelDatatype === PixelDatatype.UNSIGNED_INT_24_8 ||
92
+ pixelDatatype === PixelDatatype.UNSIGNED_SHORT_4_4_4_4 ||
93
+ pixelDatatype === PixelDatatype.UNSIGNED_SHORT_5_5_5_1 ||
94
+ pixelDatatype === PixelDatatype.UNSIGNED_SHORT_5_6_5
95
+ );
96
+ };
97
+
98
+ var PixelDatatype$1 = Object.freeze(PixelDatatype);
99
+
100
+ /**
101
+ * The format of a pixel, i.e., the number of components it has and what they represent.
102
+ *
103
+ * @enum {Number}
104
+ */
105
+ const PixelFormat = {
106
+ /**
107
+ * A pixel format containing a depth value.
108
+ *
109
+ * @type {Number}
110
+ * @constant
111
+ */
112
+ DEPTH_COMPONENT: WebGLConstants.WebGLConstants.DEPTH_COMPONENT,
113
+
114
+ /**
115
+ * A pixel format containing a depth and stencil value, most often used with {@link PixelDatatype.UNSIGNED_INT_24_8}.
116
+ *
117
+ * @type {Number}
118
+ * @constant
119
+ */
120
+ DEPTH_STENCIL: WebGLConstants.WebGLConstants.DEPTH_STENCIL,
121
+
122
+ /**
123
+ * A pixel format containing an alpha channel.
124
+ *
125
+ * @type {Number}
126
+ * @constant
127
+ */
128
+ ALPHA: WebGLConstants.WebGLConstants.ALPHA,
129
+
130
+ /**
131
+ * A pixel format containing red, green, and blue channels.
132
+ *
133
+ * @type {Number}
134
+ * @constant
135
+ */
136
+ RGB: WebGLConstants.WebGLConstants.RGB,
137
+
138
+ /**
139
+ * A pixel format containing red, green, blue, and alpha channels.
140
+ *
141
+ * @type {Number}
142
+ * @constant
143
+ */
144
+ RGBA: WebGLConstants.WebGLConstants.RGBA,
145
+
146
+ /**
147
+ * A pixel format containing a luminance (intensity) channel.
148
+ *
149
+ * @type {Number}
150
+ * @constant
151
+ */
152
+ LUMINANCE: WebGLConstants.WebGLConstants.LUMINANCE,
153
+
154
+ /**
155
+ * A pixel format containing luminance (intensity) and alpha channels.
156
+ *
157
+ * @type {Number}
158
+ * @constant
159
+ */
160
+ LUMINANCE_ALPHA: WebGLConstants.WebGLConstants.LUMINANCE_ALPHA,
161
+
162
+ /**
163
+ * A pixel format containing red, green, and blue channels that is DXT1 compressed.
164
+ *
165
+ * @type {Number}
166
+ * @constant
167
+ */
168
+ RGB_DXT1: WebGLConstants.WebGLConstants.COMPRESSED_RGB_S3TC_DXT1_EXT,
169
+
170
+ /**
171
+ * A pixel format containing red, green, blue, and alpha channels that is DXT1 compressed.
172
+ *
173
+ * @type {Number}
174
+ * @constant
175
+ */
176
+ RGBA_DXT1: WebGLConstants.WebGLConstants.COMPRESSED_RGBA_S3TC_DXT1_EXT,
177
+
178
+ /**
179
+ * A pixel format containing red, green, blue, and alpha channels that is DXT3 compressed.
180
+ *
181
+ * @type {Number}
182
+ * @constant
183
+ */
184
+ RGBA_DXT3: WebGLConstants.WebGLConstants.COMPRESSED_RGBA_S3TC_DXT3_EXT,
185
+
186
+ /**
187
+ * A pixel format containing red, green, blue, and alpha channels that is DXT5 compressed.
188
+ *
189
+ * @type {Number}
190
+ * @constant
191
+ */
192
+ RGBA_DXT5: WebGLConstants.WebGLConstants.COMPRESSED_RGBA_S3TC_DXT5_EXT,
193
+
194
+ /**
195
+ * A pixel format containing red, green, and blue channels that is PVR 4bpp compressed.
196
+ *
197
+ * @type {Number}
198
+ * @constant
199
+ */
200
+ RGB_PVRTC_4BPPV1: WebGLConstants.WebGLConstants.COMPRESSED_RGB_PVRTC_4BPPV1_IMG,
201
+
202
+ /**
203
+ * A pixel format containing red, green, and blue channels that is PVR 2bpp compressed.
204
+ *
205
+ * @type {Number}
206
+ * @constant
207
+ */
208
+ RGB_PVRTC_2BPPV1: WebGLConstants.WebGLConstants.COMPRESSED_RGB_PVRTC_2BPPV1_IMG,
209
+
210
+ /**
211
+ * A pixel format containing red, green, blue, and alpha channels that is PVR 4bpp compressed.
212
+ *
213
+ * @type {Number}
214
+ * @constant
215
+ */
216
+ RGBA_PVRTC_4BPPV1: WebGLConstants.WebGLConstants.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG,
217
+
218
+ /**
219
+ * A pixel format containing red, green, blue, and alpha channels that is PVR 2bpp compressed.
220
+ *
221
+ * @type {Number}
222
+ * @constant
223
+ */
224
+ RGBA_PVRTC_2BPPV1: WebGLConstants.WebGLConstants.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG,
225
+
226
+ /**
227
+ * A pixel format containing red, green, blue, and alpha channels that is ASTC compressed.
228
+ *
229
+ * @type {Number}
230
+ * @constant
231
+ */
232
+ RGBA_ASTC: WebGLConstants.WebGLConstants.COMPRESSED_RGBA_ASTC_4x4_WEBGL,
233
+
234
+ /**
235
+ * A pixel format containing red, green, and blue channels that is ETC1 compressed.
236
+ *
237
+ * @type {Number}
238
+ * @constant
239
+ */
240
+ RGB_ETC1: WebGLConstants.WebGLConstants.COMPRESSED_RGB_ETC1_WEBGL,
241
+
242
+ /**
243
+ * A pixel format containing red, green, and blue channels that is ETC2 compressed.
244
+ *
245
+ * @type {Number}
246
+ * @constant
247
+ */
248
+ RGB8_ETC2: WebGLConstants.WebGLConstants.COMPRESSED_RGB8_ETC2,
249
+
250
+ /**
251
+ * A pixel format containing red, green, blue, and alpha channels that is ETC2 compressed.
252
+ *
253
+ * @type {Number}
254
+ * @constant
255
+ */
256
+ RGBA8_ETC2_EAC: WebGLConstants.WebGLConstants.COMPRESSED_RGBA8_ETC2_EAC,
257
+
258
+ /**
259
+ * A pixel format containing red, green, blue, and alpha channels that is BC7 compressed.
260
+ *
261
+ * @type {Number}
262
+ * @constant
263
+ */
264
+ RGBA_BC7: WebGLConstants.WebGLConstants.COMPRESSED_RGBA_BPTC_UNORM,
265
+ };
266
+
267
+ /**
268
+ * @private
269
+ */
270
+ PixelFormat.componentsLength = function (pixelFormat) {
271
+ switch (pixelFormat) {
272
+ case PixelFormat.RGB:
273
+ return 3;
274
+ case PixelFormat.RGBA:
275
+ return 4;
276
+ case PixelFormat.LUMINANCE_ALPHA:
277
+ return 2;
278
+ case PixelFormat.ALPHA:
279
+ case PixelFormat.LUMINANCE:
280
+ return 1;
281
+ default:
282
+ return 1;
283
+ }
284
+ };
285
+
286
+ /**
287
+ * @private
288
+ */
289
+ PixelFormat.validate = function (pixelFormat) {
290
+ return (
291
+ pixelFormat === PixelFormat.DEPTH_COMPONENT ||
292
+ pixelFormat === PixelFormat.DEPTH_STENCIL ||
293
+ pixelFormat === PixelFormat.ALPHA ||
294
+ pixelFormat === PixelFormat.RGB ||
295
+ pixelFormat === PixelFormat.RGBA ||
296
+ pixelFormat === PixelFormat.LUMINANCE ||
297
+ pixelFormat === PixelFormat.LUMINANCE_ALPHA ||
298
+ pixelFormat === PixelFormat.RGB_DXT1 ||
299
+ pixelFormat === PixelFormat.RGBA_DXT1 ||
300
+ pixelFormat === PixelFormat.RGBA_DXT3 ||
301
+ pixelFormat === PixelFormat.RGBA_DXT5 ||
302
+ pixelFormat === PixelFormat.RGB_PVRTC_4BPPV1 ||
303
+ pixelFormat === PixelFormat.RGB_PVRTC_2BPPV1 ||
304
+ pixelFormat === PixelFormat.RGBA_PVRTC_4BPPV1 ||
305
+ pixelFormat === PixelFormat.RGBA_PVRTC_2BPPV1 ||
306
+ pixelFormat === PixelFormat.RGBA_ASTC ||
307
+ pixelFormat === PixelFormat.RGB_ETC1 ||
308
+ pixelFormat === PixelFormat.RGB8_ETC2 ||
309
+ pixelFormat === PixelFormat.RGBA8_ETC2_EAC ||
310
+ pixelFormat === PixelFormat.RGBA_BC7
311
+ );
312
+ };
313
+
314
+ /**
315
+ * @private
316
+ */
317
+ PixelFormat.isColorFormat = function (pixelFormat) {
318
+ return (
319
+ pixelFormat === PixelFormat.ALPHA ||
320
+ pixelFormat === PixelFormat.RGB ||
321
+ pixelFormat === PixelFormat.RGBA ||
322
+ pixelFormat === PixelFormat.LUMINANCE ||
323
+ pixelFormat === PixelFormat.LUMINANCE_ALPHA
324
+ );
325
+ };
326
+
327
+ /**
328
+ * @private
329
+ */
330
+ PixelFormat.isDepthFormat = function (pixelFormat) {
331
+ return (
332
+ pixelFormat === PixelFormat.DEPTH_COMPONENT ||
333
+ pixelFormat === PixelFormat.DEPTH_STENCIL
334
+ );
335
+ };
336
+
337
+ /**
338
+ * @private
339
+ */
340
+ PixelFormat.isCompressedFormat = function (pixelFormat) {
341
+ return (
342
+ pixelFormat === PixelFormat.RGB_DXT1 ||
343
+ pixelFormat === PixelFormat.RGBA_DXT1 ||
344
+ pixelFormat === PixelFormat.RGBA_DXT3 ||
345
+ pixelFormat === PixelFormat.RGBA_DXT5 ||
346
+ pixelFormat === PixelFormat.RGB_PVRTC_4BPPV1 ||
347
+ pixelFormat === PixelFormat.RGB_PVRTC_2BPPV1 ||
348
+ pixelFormat === PixelFormat.RGBA_PVRTC_4BPPV1 ||
349
+ pixelFormat === PixelFormat.RGBA_PVRTC_2BPPV1 ||
350
+ pixelFormat === PixelFormat.RGBA_ASTC ||
351
+ pixelFormat === PixelFormat.RGB_ETC1 ||
352
+ pixelFormat === PixelFormat.RGB8_ETC2 ||
353
+ pixelFormat === PixelFormat.RGBA8_ETC2_EAC ||
354
+ pixelFormat === PixelFormat.RGBA_BC7
355
+ );
356
+ };
357
+
358
+ /**
359
+ * @private
360
+ */
361
+ PixelFormat.isDXTFormat = function (pixelFormat) {
362
+ return (
363
+ pixelFormat === PixelFormat.RGB_DXT1 ||
364
+ pixelFormat === PixelFormat.RGBA_DXT1 ||
365
+ pixelFormat === PixelFormat.RGBA_DXT3 ||
366
+ pixelFormat === PixelFormat.RGBA_DXT5
367
+ );
368
+ };
369
+
370
+ /**
371
+ * @private
372
+ */
373
+ PixelFormat.isPVRTCFormat = function (pixelFormat) {
374
+ return (
375
+ pixelFormat === PixelFormat.RGB_PVRTC_4BPPV1 ||
376
+ pixelFormat === PixelFormat.RGB_PVRTC_2BPPV1 ||
377
+ pixelFormat === PixelFormat.RGBA_PVRTC_4BPPV1 ||
378
+ pixelFormat === PixelFormat.RGBA_PVRTC_2BPPV1
379
+ );
380
+ };
381
+
382
+ /**
383
+ * @private
384
+ */
385
+ PixelFormat.isASTCFormat = function (pixelFormat) {
386
+ return pixelFormat === PixelFormat.RGBA_ASTC;
387
+ };
388
+
389
+ /**
390
+ * @private
391
+ */
392
+ PixelFormat.isETC1Format = function (pixelFormat) {
393
+ return pixelFormat === PixelFormat.RGB_ETC1;
394
+ };
395
+
396
+ /**
397
+ * @private
398
+ */
399
+ PixelFormat.isETC2Format = function (pixelFormat) {
400
+ return (
401
+ pixelFormat === PixelFormat.RGB8_ETC2 ||
402
+ pixelFormat === PixelFormat.RGBA8_ETC2_EAC
403
+ );
404
+ };
405
+
406
+ /**
407
+ * @private
408
+ */
409
+ PixelFormat.isBC7Format = function (pixelFormat) {
410
+ return pixelFormat === PixelFormat.RGBA_BC7;
411
+ };
412
+
413
+ /**
414
+ * @private
415
+ */
416
+ PixelFormat.compressedTextureSizeInBytes = function (
417
+ pixelFormat,
418
+ width,
419
+ height
420
+ ) {
421
+ switch (pixelFormat) {
422
+ case PixelFormat.RGB_DXT1:
423
+ case PixelFormat.RGBA_DXT1:
424
+ case PixelFormat.RGB_ETC1:
425
+ case PixelFormat.RGB8_ETC2:
426
+ return Math.floor((width + 3) / 4) * Math.floor((height + 3) / 4) * 8;
427
+
428
+ case PixelFormat.RGBA_DXT3:
429
+ case PixelFormat.RGBA_DXT5:
430
+ case PixelFormat.RGBA_ASTC:
431
+ case PixelFormat.RGBA8_ETC2_EAC:
432
+ return Math.floor((width + 3) / 4) * Math.floor((height + 3) / 4) * 16;
433
+
434
+ case PixelFormat.RGB_PVRTC_4BPPV1:
435
+ case PixelFormat.RGBA_PVRTC_4BPPV1:
436
+ return Math.floor((Math.max(width, 8) * Math.max(height, 8) * 4 + 7) / 8);
437
+
438
+ case PixelFormat.RGB_PVRTC_2BPPV1:
439
+ case PixelFormat.RGBA_PVRTC_2BPPV1:
440
+ return Math.floor(
441
+ (Math.max(width, 16) * Math.max(height, 8) * 2 + 7) / 8
442
+ );
443
+
444
+ case PixelFormat.RGBA_BC7:
445
+ return Math.ceil(width / 4) * Math.ceil(height / 4) * 16;
446
+
447
+ default:
448
+ return 0;
449
+ }
450
+ };
451
+
452
+ /**
453
+ * @private
454
+ */
455
+ PixelFormat.textureSizeInBytes = function (
456
+ pixelFormat,
457
+ pixelDatatype,
458
+ width,
459
+ height
460
+ ) {
461
+ let componentsLength = PixelFormat.componentsLength(pixelFormat);
462
+ if (PixelDatatype$1.isPacked(pixelDatatype)) {
463
+ componentsLength = 1;
464
+ }
465
+ return (
466
+ componentsLength * PixelDatatype$1.sizeInBytes(pixelDatatype) * width * height
467
+ );
468
+ };
469
+
470
+ /**
471
+ * @private
472
+ */
473
+ PixelFormat.alignmentInBytes = function (pixelFormat, pixelDatatype, width) {
474
+ const mod =
475
+ PixelFormat.textureSizeInBytes(pixelFormat, pixelDatatype, width, 1) % 4;
476
+ return mod === 0 ? 4 : mod === 2 ? 2 : 1;
477
+ };
478
+
479
+ /**
480
+ * @private
481
+ */
482
+ PixelFormat.createTypedArray = function (
483
+ pixelFormat,
484
+ pixelDatatype,
485
+ width,
486
+ height
487
+ ) {
488
+ let constructor;
489
+ const sizeInBytes = PixelDatatype$1.sizeInBytes(pixelDatatype);
490
+ if (sizeInBytes === Uint8Array.BYTES_PER_ELEMENT) {
491
+ constructor = Uint8Array;
492
+ } else if (sizeInBytes === Uint16Array.BYTES_PER_ELEMENT) {
493
+ constructor = Uint16Array;
494
+ } else if (
495
+ sizeInBytes === Float32Array.BYTES_PER_ELEMENT &&
496
+ pixelDatatype === PixelDatatype$1.FLOAT
497
+ ) {
498
+ constructor = Float32Array;
499
+ } else {
500
+ constructor = Uint32Array;
501
+ }
502
+
503
+ const size = PixelFormat.componentsLength(pixelFormat) * width * height;
504
+ return new constructor(size);
505
+ };
506
+
507
+ /**
508
+ * @private
509
+ */
510
+ PixelFormat.flipY = function (
511
+ bufferView,
512
+ pixelFormat,
513
+ pixelDatatype,
514
+ width,
515
+ height
516
+ ) {
517
+ if (height === 1) {
518
+ return bufferView;
519
+ }
520
+ const flipped = PixelFormat.createTypedArray(
521
+ pixelFormat,
522
+ pixelDatatype,
523
+ width,
524
+ height
525
+ );
526
+ const numberOfComponents = PixelFormat.componentsLength(pixelFormat);
527
+ const textureWidth = width * numberOfComponents;
528
+ for (let i = 0; i < height; ++i) {
529
+ const row = i * width * numberOfComponents;
530
+ const flippedRow = (height - i - 1) * width * numberOfComponents;
531
+ for (let j = 0; j < textureWidth; ++j) {
532
+ flipped[flippedRow + j] = bufferView[row + j];
533
+ }
534
+ }
535
+ return flipped;
536
+ };
537
+
538
+ /**
539
+ * @private
540
+ */
541
+ PixelFormat.toInternalFormat = function (pixelFormat, pixelDatatype, context) {
542
+ // WebGL 1 require internalFormat to be the same as PixelFormat
543
+ if (!context.webgl2) {
544
+ return pixelFormat;
545
+ }
546
+
547
+ // Convert pixelFormat to correct internalFormat for WebGL 2
548
+ if (pixelFormat === PixelFormat.DEPTH_STENCIL) {
549
+ return WebGLConstants.WebGLConstants.DEPTH24_STENCIL8;
550
+ }
551
+
552
+ if (pixelFormat === PixelFormat.DEPTH_COMPONENT) {
553
+ if (pixelDatatype === PixelDatatype$1.UNSIGNED_SHORT) {
554
+ return WebGLConstants.WebGLConstants.DEPTH_COMPONENT16;
555
+ } else if (pixelDatatype === PixelDatatype$1.UNSIGNED_INT) {
556
+ return WebGLConstants.WebGLConstants.DEPTH_COMPONENT24;
557
+ }
558
+ }
559
+
560
+ if (pixelDatatype === PixelDatatype$1.FLOAT) {
561
+ switch (pixelFormat) {
562
+ case PixelFormat.RGBA:
563
+ return WebGLConstants.WebGLConstants.RGBA32F;
564
+ case PixelFormat.RGB:
565
+ return WebGLConstants.WebGLConstants.RGB32F;
566
+ case PixelFormat.RG:
567
+ return WebGLConstants.WebGLConstants.RG32F;
568
+ case PixelFormat.R:
569
+ return WebGLConstants.WebGLConstants.R32F;
570
+ }
571
+ }
572
+
573
+ if (pixelDatatype === PixelDatatype$1.HALF_FLOAT) {
574
+ switch (pixelFormat) {
575
+ case PixelFormat.RGBA:
576
+ return WebGLConstants.WebGLConstants.RGBA16F;
577
+ case PixelFormat.RGB:
578
+ return WebGLConstants.WebGLConstants.RGB16F;
579
+ case PixelFormat.RG:
580
+ return WebGLConstants.WebGLConstants.RG16F;
581
+ case PixelFormat.R:
582
+ return WebGLConstants.WebGLConstants.R16F;
583
+ }
584
+ }
585
+
586
+ return pixelFormat;
587
+ };
588
+
589
+ var PixelFormat$1 = Object.freeze(PixelFormat);
590
+
591
+ /**
592
+ * Enum containing Vulkan Constant values by name.
593
+ *
594
+ * These match the constants from the {@link https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-definition|Vulkan 1.2 specification}.
595
+ *
596
+ * @enum {Number}
597
+ * @private
598
+ */
599
+ const VulkanConstants = {
600
+ VK_FORMAT_UNDEFINED: 0,
601
+ VK_FORMAT_R4G4_UNORM_PACK8: 1,
602
+ VK_FORMAT_R4G4B4A4_UNORM_PACK16: 2,
603
+ VK_FORMAT_B4G4R4A4_UNORM_PACK16: 3,
604
+ VK_FORMAT_R5G6B5_UNORM_PACK16: 4,
605
+ VK_FORMAT_B5G6R5_UNORM_PACK16: 5,
606
+ VK_FORMAT_R5G5B5A1_UNORM_PACK16: 6,
607
+ VK_FORMAT_B5G5R5A1_UNORM_PACK16: 7,
608
+ VK_FORMAT_A1R5G5B5_UNORM_PACK16: 8,
609
+ VK_FORMAT_R8_UNORM: 9,
610
+ VK_FORMAT_R8_SNORM: 10,
611
+ VK_FORMAT_R8_USCALED: 11,
612
+ VK_FORMAT_R8_SSCALED: 12,
613
+ VK_FORMAT_R8_UINT: 13,
614
+ VK_FORMAT_R8_SINT: 14,
615
+ VK_FORMAT_R8_SRGB: 15,
616
+ VK_FORMAT_R8G8_UNORM: 16,
617
+ VK_FORMAT_R8G8_SNORM: 17,
618
+ VK_FORMAT_R8G8_USCALED: 18,
619
+ VK_FORMAT_R8G8_SSCALED: 19,
620
+ VK_FORMAT_R8G8_UINT: 20,
621
+ VK_FORMAT_R8G8_SINT: 21,
622
+ VK_FORMAT_R8G8_SRGB: 22,
623
+ VK_FORMAT_R8G8B8_UNORM: 23,
624
+ VK_FORMAT_R8G8B8_SNORM: 24,
625
+ VK_FORMAT_R8G8B8_USCALED: 25,
626
+ VK_FORMAT_R8G8B8_SSCALED: 26,
627
+ VK_FORMAT_R8G8B8_UINT: 27,
628
+ VK_FORMAT_R8G8B8_SINT: 28,
629
+ VK_FORMAT_R8G8B8_SRGB: 29,
630
+ VK_FORMAT_B8G8R8_UNORM: 30,
631
+ VK_FORMAT_B8G8R8_SNORM: 31,
632
+ VK_FORMAT_B8G8R8_USCALED: 32,
633
+ VK_FORMAT_B8G8R8_SSCALED: 33,
634
+ VK_FORMAT_B8G8R8_UINT: 34,
635
+ VK_FORMAT_B8G8R8_SINT: 35,
636
+ VK_FORMAT_B8G8R8_SRGB: 36,
637
+ VK_FORMAT_R8G8B8A8_UNORM: 37,
638
+ VK_FORMAT_R8G8B8A8_SNORM: 38,
639
+ VK_FORMAT_R8G8B8A8_USCALED: 39,
640
+ VK_FORMAT_R8G8B8A8_SSCALED: 40,
641
+ VK_FORMAT_R8G8B8A8_UINT: 41,
642
+ VK_FORMAT_R8G8B8A8_SINT: 42,
643
+ VK_FORMAT_R8G8B8A8_SRGB: 43,
644
+ VK_FORMAT_B8G8R8A8_UNORM: 44,
645
+ VK_FORMAT_B8G8R8A8_SNORM: 45,
646
+ VK_FORMAT_B8G8R8A8_USCALED: 46,
647
+ VK_FORMAT_B8G8R8A8_SSCALED: 47,
648
+ VK_FORMAT_B8G8R8A8_UINT: 48,
649
+ VK_FORMAT_B8G8R8A8_SINT: 49,
650
+ VK_FORMAT_B8G8R8A8_SRGB: 50,
651
+ VK_FORMAT_A8B8G8R8_UNORM_PACK32: 51,
652
+ VK_FORMAT_A8B8G8R8_SNORM_PACK32: 52,
653
+ VK_FORMAT_A8B8G8R8_USCALED_PACK32: 53,
654
+ VK_FORMAT_A8B8G8R8_SSCALED_PACK32: 54,
655
+ VK_FORMAT_A8B8G8R8_UINT_PACK32: 55,
656
+ VK_FORMAT_A8B8G8R8_SINT_PACK32: 56,
657
+ VK_FORMAT_A8B8G8R8_SRGB_PACK32: 57,
658
+ VK_FORMAT_A2R10G10B10_UNORM_PACK32: 58,
659
+ VK_FORMAT_A2R10G10B10_SNORM_PACK32: 59,
660
+ VK_FORMAT_A2R10G10B10_USCALED_PACK32: 60,
661
+ VK_FORMAT_A2R10G10B10_SSCALED_PACK32: 61,
662
+ VK_FORMAT_A2R10G10B10_UINT_PACK32: 62,
663
+ VK_FORMAT_A2R10G10B10_SINT_PACK32: 63,
664
+ VK_FORMAT_A2B10G10R10_UNORM_PACK32: 64,
665
+ VK_FORMAT_A2B10G10R10_SNORM_PACK32: 65,
666
+ VK_FORMAT_A2B10G10R10_USCALED_PACK32: 66,
667
+ VK_FORMAT_A2B10G10R10_SSCALED_PACK32: 67,
668
+ VK_FORMAT_A2B10G10R10_UINT_PACK32: 68,
669
+ VK_FORMAT_A2B10G10R10_SINT_PACK32: 69,
670
+ VK_FORMAT_R16_UNORM: 70,
671
+ VK_FORMAT_R16_SNORM: 71,
672
+ VK_FORMAT_R16_USCALED: 72,
673
+ VK_FORMAT_R16_SSCALED: 73,
674
+ VK_FORMAT_R16_UINT: 74,
675
+ VK_FORMAT_R16_SINT: 75,
676
+ VK_FORMAT_R16_SFLOAT: 76,
677
+ VK_FORMAT_R16G16_UNORM: 77,
678
+ VK_FORMAT_R16G16_SNORM: 78,
679
+ VK_FORMAT_R16G16_USCALED: 79,
680
+ VK_FORMAT_R16G16_SSCALED: 80,
681
+ VK_FORMAT_R16G16_UINT: 81,
682
+ VK_FORMAT_R16G16_SINT: 82,
683
+ VK_FORMAT_R16G16_SFLOAT: 83,
684
+ VK_FORMAT_R16G16B16_UNORM: 84,
685
+ VK_FORMAT_R16G16B16_SNORM: 85,
686
+ VK_FORMAT_R16G16B16_USCALED: 86,
687
+ VK_FORMAT_R16G16B16_SSCALED: 87,
688
+ VK_FORMAT_R16G16B16_UINT: 88,
689
+ VK_FORMAT_R16G16B16_SINT: 89,
690
+ VK_FORMAT_R16G16B16_SFLOAT: 90,
691
+ VK_FORMAT_R16G16B16A16_UNORM: 91,
692
+ VK_FORMAT_R16G16B16A16_SNORM: 92,
693
+ VK_FORMAT_R16G16B16A16_USCALED: 93,
694
+ VK_FORMAT_R16G16B16A16_SSCALED: 94,
695
+ VK_FORMAT_R16G16B16A16_UINT: 95,
696
+ VK_FORMAT_R16G16B16A16_SINT: 96,
697
+ VK_FORMAT_R16G16B16A16_SFLOAT: 97,
698
+ VK_FORMAT_R32_UINT: 98,
699
+ VK_FORMAT_R32_SINT: 99,
700
+ VK_FORMAT_R32_SFLOAT: 100,
701
+ VK_FORMAT_R32G32_UINT: 101,
702
+ VK_FORMAT_R32G32_SINT: 102,
703
+ VK_FORMAT_R32G32_SFLOAT: 103,
704
+ VK_FORMAT_R32G32B32_UINT: 104,
705
+ VK_FORMAT_R32G32B32_SINT: 105,
706
+ VK_FORMAT_R32G32B32_SFLOAT: 106,
707
+ VK_FORMAT_R32G32B32A32_UINT: 107,
708
+ VK_FORMAT_R32G32B32A32_SINT: 108,
709
+ VK_FORMAT_R32G32B32A32_SFLOAT: 109,
710
+ VK_FORMAT_R64_UINT: 110,
711
+ VK_FORMAT_R64_SINT: 111,
712
+ VK_FORMAT_R64_SFLOAT: 112,
713
+ VK_FORMAT_R64G64_UINT: 113,
714
+ VK_FORMAT_R64G64_SINT: 114,
715
+ VK_FORMAT_R64G64_SFLOAT: 115,
716
+ VK_FORMAT_R64G64B64_UINT: 116,
717
+ VK_FORMAT_R64G64B64_SINT: 117,
718
+ VK_FORMAT_R64G64B64_SFLOAT: 118,
719
+ VK_FORMAT_R64G64B64A64_UINT: 119,
720
+ VK_FORMAT_R64G64B64A64_SINT: 120,
721
+ VK_FORMAT_R64G64B64A64_SFLOAT: 121,
722
+ VK_FORMAT_B10G11R11_UFLOAT_PACK32: 122,
723
+ VK_FORMAT_E5B9G9R9_UFLOAT_PACK32: 123,
724
+ VK_FORMAT_D16_UNORM: 124,
725
+ VK_FORMAT_X8_D24_UNORM_PACK32: 125,
726
+ VK_FORMAT_D32_SFLOAT: 126,
727
+ VK_FORMAT_S8_UINT: 127,
728
+ VK_FORMAT_D16_UNORM_S8_UINT: 128,
729
+ VK_FORMAT_D24_UNORM_S8_UINT: 129,
730
+ VK_FORMAT_D32_SFLOAT_S8_UINT: 130,
731
+ VK_FORMAT_BC1_RGB_UNORM_BLOCK: 131,
732
+ VK_FORMAT_BC1_RGB_SRGB_BLOCK: 132,
733
+ VK_FORMAT_BC1_RGBA_UNORM_BLOCK: 133,
734
+ VK_FORMAT_BC1_RGBA_SRGB_BLOCK: 134,
735
+ VK_FORMAT_BC2_UNORM_BLOCK: 135,
736
+ VK_FORMAT_BC2_SRGB_BLOCK: 136,
737
+ VK_FORMAT_BC3_UNORM_BLOCK: 137,
738
+ VK_FORMAT_BC3_SRGB_BLOCK: 138,
739
+ VK_FORMAT_BC4_UNORM_BLOCK: 139,
740
+ VK_FORMAT_BC4_SNORM_BLOCK: 140,
741
+ VK_FORMAT_BC5_UNORM_BLOCK: 141,
742
+ VK_FORMAT_BC5_SNORM_BLOCK: 142,
743
+ VK_FORMAT_BC6H_UFLOAT_BLOCK: 143,
744
+ VK_FORMAT_BC6H_SFLOAT_BLOCK: 144,
745
+ VK_FORMAT_BC7_UNORM_BLOCK: 145,
746
+ VK_FORMAT_BC7_SRGB_BLOCK: 146,
747
+ VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK: 147,
748
+ VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK: 148,
749
+ VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK: 149,
750
+ VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK: 150,
751
+ VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK: 151,
752
+ VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK: 152,
753
+ VK_FORMAT_EAC_R11_UNORM_BLOCK: 153,
754
+ VK_FORMAT_EAC_R11_SNORM_BLOCK: 154,
755
+ VK_FORMAT_EAC_R11G11_UNORM_BLOCK: 155,
756
+ VK_FORMAT_EAC_R11G11_SNORM_BLOCK: 156,
757
+ VK_FORMAT_ASTC_4x4_UNORM_BLOCK: 157,
758
+ VK_FORMAT_ASTC_4x4_SRGB_BLOCK: 158,
759
+ VK_FORMAT_ASTC_5x4_UNORM_BLOCK: 159,
760
+ VK_FORMAT_ASTC_5x4_SRGB_BLOCK: 160,
761
+ VK_FORMAT_ASTC_5x5_UNORM_BLOCK: 161,
762
+ VK_FORMAT_ASTC_5x5_SRGB_BLOCK: 162,
763
+ VK_FORMAT_ASTC_6x5_UNORM_BLOCK: 163,
764
+ VK_FORMAT_ASTC_6x5_SRGB_BLOCK: 164,
765
+ VK_FORMAT_ASTC_6x6_UNORM_BLOCK: 165,
766
+ VK_FORMAT_ASTC_6x6_SRGB_BLOCK: 166,
767
+ VK_FORMAT_ASTC_8x5_UNORM_BLOCK: 167,
768
+ VK_FORMAT_ASTC_8x5_SRGB_BLOCK: 168,
769
+ VK_FORMAT_ASTC_8x6_UNORM_BLOCK: 169,
770
+ VK_FORMAT_ASTC_8x6_SRGB_BLOCK: 170,
771
+ VK_FORMAT_ASTC_8x8_UNORM_BLOCK: 171,
772
+ VK_FORMAT_ASTC_8x8_SRGB_BLOCK: 172,
773
+ VK_FORMAT_ASTC_10x5_UNORM_BLOCK: 173,
774
+ VK_FORMAT_ASTC_10x5_SRGB_BLOCK: 174,
775
+ VK_FORMAT_ASTC_10x6_UNORM_BLOCK: 175,
776
+ VK_FORMAT_ASTC_10x6_SRGB_BLOCK: 176,
777
+ VK_FORMAT_ASTC_10x8_UNORM_BLOCK: 177,
778
+ VK_FORMAT_ASTC_10x8_SRGB_BLOCK: 178,
779
+ VK_FORMAT_ASTC_10x10_UNORM_BLOCK: 179,
780
+ VK_FORMAT_ASTC_10x10_SRGB_BLOCK: 180,
781
+ VK_FORMAT_ASTC_12x10_UNORM_BLOCK: 181,
782
+ VK_FORMAT_ASTC_12x10_SRGB_BLOCK: 182,
783
+ VK_FORMAT_ASTC_12x12_UNORM_BLOCK: 183,
784
+ VK_FORMAT_ASTC_12x12_SRGB_BLOCK: 184,
785
+ VK_FORMAT_G8B8G8R8_422_UNORM: 1000156000,
786
+ VK_FORMAT_B8G8R8G8_422_UNORM: 1000156001,
787
+ VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM: 1000156002,
788
+ VK_FORMAT_G8_B8R8_2PLANE_420_UNORM: 1000156003,
789
+ VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM: 1000156004,
790
+ VK_FORMAT_G8_B8R8_2PLANE_422_UNORM: 1000156005,
791
+ VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM: 1000156006,
792
+ VK_FORMAT_R10X6_UNORM_PACK16: 1000156007,
793
+ VK_FORMAT_R10X6G10X6_UNORM_2PACK16: 1000156008,
794
+ VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16: 1000156009,
795
+ VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16: 1000156010,
796
+ VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16: 1000156011,
797
+ VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16: 1000156012,
798
+ VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16: 1000156013,
799
+ VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16: 1000156014,
800
+ VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16: 1000156015,
801
+ VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16: 1000156016,
802
+ VK_FORMAT_R12X4_UNORM_PACK16: 1000156017,
803
+ VK_FORMAT_R12X4G12X4_UNORM_2PACK16: 1000156018,
804
+ VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16: 1000156019,
805
+ VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16: 1000156020,
806
+ VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16: 1000156021,
807
+ VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16: 1000156022,
808
+ VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16: 1000156023,
809
+ VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16: 1000156024,
810
+ VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16: 1000156025,
811
+ VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16: 1000156026,
812
+ VK_FORMAT_G16B16G16R16_422_UNORM: 1000156027,
813
+ VK_FORMAT_B16G16R16G16_422_UNORM: 1000156028,
814
+ VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM: 1000156029,
815
+ VK_FORMAT_G16_B16R16_2PLANE_420_UNORM: 1000156030,
816
+ VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM: 1000156031,
817
+ VK_FORMAT_G16_B16R16_2PLANE_422_UNORM: 1000156032,
818
+ VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM: 1000156033,
819
+ VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG: 1000054000,
820
+ VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG: 1000054001,
821
+ VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG: 1000054002,
822
+ VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG: 1000054003,
823
+ VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG: 1000054004,
824
+ VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG: 1000054005,
825
+ VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG: 1000054006,
826
+ VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG: 1000054007,
827
+ VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT: 1000066000,
828
+ VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT: 1000066001,
829
+ VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT: 1000066002,
830
+ VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT: 1000066003,
831
+ VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT: 1000066004,
832
+ VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT: 1000066005,
833
+ VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT: 1000066006,
834
+ VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT: 1000066007,
835
+ VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT: 1000066008,
836
+ VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT: 1000066009,
837
+ VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT: 1000066010,
838
+ VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT: 1000066011,
839
+ VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT: 1000066012,
840
+ VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT: 1000066013,
841
+ VK_FORMAT_G8B8G8R8_422_UNORM_KHR: 1000156000,
842
+ VK_FORMAT_B8G8R8G8_422_UNORM_KHR: 1000156001,
843
+ VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR: 1000156002,
844
+ VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR: 1000156003,
845
+ VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR: 1000156004,
846
+ VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR: 1000156005,
847
+ VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR: 1000156006,
848
+ VK_FORMAT_R10X6_UNORM_PACK16_KHR: 1000156007,
849
+ VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR: 1000156008,
850
+ VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR: 1000156009,
851
+ VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR: 1000156010,
852
+ VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR: 1000156011,
853
+ VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR: 1000156012,
854
+ VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR: 1000156013,
855
+ VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR: 1000156014,
856
+ VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR: 1000156015,
857
+ VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR: 1000156016,
858
+ VK_FORMAT_R12X4_UNORM_PACK16_KHR: 1000156017,
859
+ VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR: 1000156018,
860
+ VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR: 1000156019,
861
+ VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR: 1000156020,
862
+ VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR: 1000156021,
863
+ VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR: 1000156022,
864
+ VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR: 1000156023,
865
+ VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR: 1000156024,
866
+ VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR: 1000156025,
867
+ VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR: 1000156026,
868
+ VK_FORMAT_G16B16G16R16_422_UNORM_KHR: 1000156027,
869
+ VK_FORMAT_B16G16R16G16_422_UNORM_KHR: 1000156028,
870
+ VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR: 1000156029,
871
+ VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR: 1000156030,
872
+ VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR: 1000156031,
873
+ VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR: 1000156032,
874
+ VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR: 1000156033,
875
+ };
876
+ var VulkanConstants$1 = Object.freeze(VulkanConstants);
877
+
878
+ ///////////////////////////////////////////////////
879
+ // KTX2 Header.
880
+ ///////////////////////////////////////////////////
881
+ const KHR_SUPERCOMPRESSION_NONE = 0;
882
+ // Data Format Descriptor (DFD).
883
+ ///////////////////////////////////////////////////
884
+
885
+ const KHR_DF_KHR_DESCRIPTORTYPE_BASICFORMAT = 0;
886
+ const KHR_DF_VENDORID_KHRONOS = 0;
887
+ const KHR_DF_VERSION = 2;
888
+ const KHR_DF_MODEL_UNSPECIFIED = 0;
889
+ const KHR_DF_FLAG_ALPHA_STRAIGHT = 0;
890
+ const KHR_DF_TRANSFER_SRGB = 2;
891
+ const KHR_DF_PRIMARIES_BT709 = 1;
892
+ const KHR_DF_SAMPLE_DATATYPE_SIGNED = 0x40;
893
+ // VK FORMAT.
894
+ ///////////////////////////////////////////////////
895
+
896
+ const VK_FORMAT_UNDEFINED = 0;
897
+
898
+ /**
899
+ * Represents an unpacked KTX 2.0 texture container. Data for individual mip levels are stored in
900
+ * the `.levels` array, typically compressed in Basis Universal formats. Additional properties
901
+ * provide metadata required to process, transcode, and upload these textures.
902
+ */
903
+
904
+ class KTX2Container {
905
+ constructor() {
906
+ this.vkFormat = VK_FORMAT_UNDEFINED;
907
+ this.typeSize = 1;
908
+ this.pixelWidth = 0;
909
+ this.pixelHeight = 0;
910
+ this.pixelDepth = 0;
911
+ this.layerCount = 0;
912
+ this.faceCount = 1;
913
+ this.supercompressionScheme = KHR_SUPERCOMPRESSION_NONE;
914
+ this.levels = [];
915
+ this.dataFormatDescriptor = [{
916
+ vendorId: KHR_DF_VENDORID_KHRONOS,
917
+ descriptorType: KHR_DF_KHR_DESCRIPTORTYPE_BASICFORMAT,
918
+ descriptorBlockSize: 0,
919
+ versionNumber: KHR_DF_VERSION,
920
+ colorModel: KHR_DF_MODEL_UNSPECIFIED,
921
+ colorPrimaries: KHR_DF_PRIMARIES_BT709,
922
+ transferFunction: KHR_DF_TRANSFER_SRGB,
923
+ flags: KHR_DF_FLAG_ALPHA_STRAIGHT,
924
+ texelBlockDimension: [0, 0, 0, 0],
925
+ bytesPlane: [0, 0, 0, 0, 0, 0, 0, 0],
926
+ samples: []
927
+ }];
928
+ this.keyValue = {};
929
+ this.globalData = null;
930
+ }
931
+
932
+ }
933
+
934
+ class BufferReader {
935
+ constructor(data, byteOffset, byteLength, littleEndian) {
936
+ this._dataView = void 0;
937
+ this._littleEndian = void 0;
938
+ this._offset = void 0;
939
+ this._dataView = new DataView(data.buffer, data.byteOffset + byteOffset, byteLength);
940
+ this._littleEndian = littleEndian;
941
+ this._offset = 0;
942
+ }
943
+
944
+ _nextUint8() {
945
+ const value = this._dataView.getUint8(this._offset);
946
+
947
+ this._offset += 1;
948
+ return value;
949
+ }
950
+
951
+ _nextUint16() {
952
+ const value = this._dataView.getUint16(this._offset, this._littleEndian);
953
+
954
+ this._offset += 2;
955
+ return value;
956
+ }
957
+
958
+ _nextUint32() {
959
+ const value = this._dataView.getUint32(this._offset, this._littleEndian);
960
+
961
+ this._offset += 4;
962
+ return value;
963
+ }
964
+
965
+ _nextUint64() {
966
+ const left = this._dataView.getUint32(this._offset, this._littleEndian);
967
+
968
+ const right = this._dataView.getUint32(this._offset + 4, this._littleEndian); // TODO(cleanup): Just test this...
969
+ // const value = this._littleEndian ? left + (2 ** 32 * right) : (2 ** 32 * left) + right;
970
+
971
+
972
+ const value = left + 2 ** 32 * right;
973
+ this._offset += 8;
974
+ return value;
975
+ }
976
+
977
+ _nextInt32() {
978
+ const value = this._dataView.getInt32(this._offset, this._littleEndian);
979
+
980
+ this._offset += 4;
981
+ return value;
982
+ }
983
+
984
+ _skip(bytes) {
985
+ this._offset += bytes;
986
+ return this;
987
+ }
988
+
989
+ _scan(maxByteLength, term = 0x00) {
990
+ const byteOffset = this._offset;
991
+ let byteLength = 0;
992
+
993
+ while (this._dataView.getUint8(this._offset) !== term && byteLength < maxByteLength) {
994
+ byteLength++;
995
+ this._offset++;
996
+ }
997
+
998
+ if (byteLength < maxByteLength) this._offset++;
999
+ return new Uint8Array(this._dataView.buffer, this._dataView.byteOffset + byteOffset, byteLength);
1000
+ }
1001
+
1002
+ }
1003
+ // KTX2 Header.
1004
+ ///////////////////////////////////////////////////
1005
+
1006
+ const KTX2_ID = [// '´', 'K', 'T', 'X', '2', '0', 'ª', '\r', '\n', '\x1A', '\n'
1007
+ 0xab, 0x4b, 0x54, 0x58, 0x20, 0x32, 0x30, 0xbb, 0x0d, 0x0a, 0x1a, 0x0a];
1008
+ /** Decodes an ArrayBuffer to text. */
1009
+
1010
+ function decodeText(buffer) {
1011
+ if (typeof TextDecoder !== 'undefined') {
1012
+ return new TextDecoder().decode(buffer);
1013
+ }
1014
+
1015
+ return Buffer.from(buffer).toString('utf8');
1016
+ }
1017
+
1018
+ /**
1019
+ * Parses a KTX 2.0 file, returning an unpacked {@link KTX2Container} instance with all associated
1020
+ * data. The container's mip levels and other binary data are pointers into the original file, not
1021
+ * copies, so the original file should not be overwritten after reading.
1022
+ *
1023
+ * @param data Bytes of KTX 2.0 file, as Uint8Array or Buffer.
1024
+ */
1025
+
1026
+ function read(data) {
1027
+ ///////////////////////////////////////////////////
1028
+ // KTX 2.0 Identifier.
1029
+ ///////////////////////////////////////////////////
1030
+ const id = new Uint8Array(data.buffer, data.byteOffset, KTX2_ID.length);
1031
+
1032
+ if (id[0] !== KTX2_ID[0] || // '´'
1033
+ id[1] !== KTX2_ID[1] || // 'K'
1034
+ id[2] !== KTX2_ID[2] || // 'T'
1035
+ id[3] !== KTX2_ID[3] || // 'X'
1036
+ id[4] !== KTX2_ID[4] || // ' '
1037
+ id[5] !== KTX2_ID[5] || // '2'
1038
+ id[6] !== KTX2_ID[6] || // '0'
1039
+ id[7] !== KTX2_ID[7] || // 'ª'
1040
+ id[8] !== KTX2_ID[8] || // '\r'
1041
+ id[9] !== KTX2_ID[9] || // '\n'
1042
+ id[10] !== KTX2_ID[10] || // '\x1A'
1043
+ id[11] !== KTX2_ID[11] // '\n'
1044
+ ) {
1045
+ throw new Error('Missing KTX 2.0 identifier.');
1046
+ }
1047
+
1048
+ const container = new KTX2Container(); ///////////////////////////////////////////////////
1049
+ // Header.
1050
+ ///////////////////////////////////////////////////
1051
+
1052
+ const headerByteLength = 17 * Uint32Array.BYTES_PER_ELEMENT;
1053
+ const headerReader = new BufferReader(data, KTX2_ID.length, headerByteLength, true);
1054
+ container.vkFormat = headerReader._nextUint32();
1055
+ container.typeSize = headerReader._nextUint32();
1056
+ container.pixelWidth = headerReader._nextUint32();
1057
+ container.pixelHeight = headerReader._nextUint32();
1058
+ container.pixelDepth = headerReader._nextUint32();
1059
+ container.layerCount = headerReader._nextUint32();
1060
+ container.faceCount = headerReader._nextUint32();
1061
+
1062
+ const levelCount = headerReader._nextUint32();
1063
+
1064
+ container.supercompressionScheme = headerReader._nextUint32();
1065
+
1066
+ const dfdByteOffset = headerReader._nextUint32();
1067
+
1068
+ const dfdByteLength = headerReader._nextUint32();
1069
+
1070
+ const kvdByteOffset = headerReader._nextUint32();
1071
+
1072
+ const kvdByteLength = headerReader._nextUint32();
1073
+
1074
+ const sgdByteOffset = headerReader._nextUint64();
1075
+
1076
+ const sgdByteLength = headerReader._nextUint64(); ///////////////////////////////////////////////////
1077
+ // Level Index.
1078
+ ///////////////////////////////////////////////////
1079
+
1080
+
1081
+ const levelByteLength = levelCount * 3 * 8;
1082
+ const levelReader = new BufferReader(data, KTX2_ID.length + headerByteLength, levelByteLength, true);
1083
+
1084
+ for (let i = 0; i < levelCount; i++) {
1085
+ container.levels.push({
1086
+ levelData: new Uint8Array(data.buffer, data.byteOffset + levelReader._nextUint64(), levelReader._nextUint64()),
1087
+ uncompressedByteLength: levelReader._nextUint64()
1088
+ });
1089
+ } ///////////////////////////////////////////////////
1090
+ // Data Format Descriptor (DFD).
1091
+ ///////////////////////////////////////////////////
1092
+
1093
+
1094
+ const dfdReader = new BufferReader(data, dfdByteOffset, dfdByteLength, true);
1095
+ const dfd = {
1096
+ vendorId: dfdReader._skip(4
1097
+ /* totalSize */
1098
+ )._nextUint16(),
1099
+ descriptorType: dfdReader._nextUint16(),
1100
+ versionNumber: dfdReader._nextUint16(),
1101
+ descriptorBlockSize: dfdReader._nextUint16(),
1102
+ colorModel: dfdReader._nextUint8(),
1103
+ colorPrimaries: dfdReader._nextUint8(),
1104
+ transferFunction: dfdReader._nextUint8(),
1105
+ flags: dfdReader._nextUint8(),
1106
+ texelBlockDimension: [dfdReader._nextUint8(), dfdReader._nextUint8(), dfdReader._nextUint8(), dfdReader._nextUint8()],
1107
+ bytesPlane: [dfdReader._nextUint8(), dfdReader._nextUint8(), dfdReader._nextUint8(), dfdReader._nextUint8(), dfdReader._nextUint8(), dfdReader._nextUint8(), dfdReader._nextUint8(), dfdReader._nextUint8()],
1108
+ samples: []
1109
+ };
1110
+ const sampleStart = 6;
1111
+ const sampleWords = 4;
1112
+ const numSamples = (dfd.descriptorBlockSize / 4 - sampleStart) / sampleWords;
1113
+
1114
+ for (let i = 0; i < numSamples; i++) {
1115
+ const sample = {
1116
+ bitOffset: dfdReader._nextUint16(),
1117
+ bitLength: dfdReader._nextUint8(),
1118
+ channelType: dfdReader._nextUint8(),
1119
+ samplePosition: [dfdReader._nextUint8(), dfdReader._nextUint8(), dfdReader._nextUint8(), dfdReader._nextUint8()],
1120
+ sampleLower: -Infinity,
1121
+ sampleUpper: Infinity
1122
+ };
1123
+
1124
+ if (sample.channelType & KHR_DF_SAMPLE_DATATYPE_SIGNED) {
1125
+ sample.sampleLower = dfdReader._nextInt32();
1126
+ sample.sampleUpper = dfdReader._nextInt32();
1127
+ } else {
1128
+ sample.sampleLower = dfdReader._nextUint32();
1129
+ sample.sampleUpper = dfdReader._nextUint32();
1130
+ }
1131
+
1132
+ dfd.samples[i] = sample;
1133
+ }
1134
+
1135
+ container.dataFormatDescriptor.length = 0;
1136
+ container.dataFormatDescriptor.push(dfd); ///////////////////////////////////////////////////
1137
+ // Key/Value Data (KVD).
1138
+ ///////////////////////////////////////////////////
1139
+
1140
+ const kvdReader = new BufferReader(data, kvdByteOffset, kvdByteLength, true);
1141
+
1142
+ while (kvdReader._offset < kvdByteLength) {
1143
+ const keyValueByteLength = kvdReader._nextUint32();
1144
+
1145
+ const keyData = kvdReader._scan(keyValueByteLength);
1146
+
1147
+ const key = decodeText(keyData);
1148
+
1149
+ const valueData = kvdReader._scan(keyValueByteLength - keyData.byteLength);
1150
+
1151
+ container.keyValue[key] = key.match(/^ktx/i) ? decodeText(valueData) : valueData; // 4-byte alignment.
1152
+
1153
+ if (kvdReader._offset % 4) kvdReader._skip(4 - kvdReader._offset % 4);
1154
+ } ///////////////////////////////////////////////////
1155
+ // Supercompression Global Data (SGD).
1156
+ ///////////////////////////////////////////////////
1157
+
1158
+
1159
+ if (sgdByteLength <= 0) return container;
1160
+ const sgdReader = new BufferReader(data, sgdByteOffset, sgdByteLength, true);
1161
+
1162
+ const endpointCount = sgdReader._nextUint16();
1163
+
1164
+ const selectorCount = sgdReader._nextUint16();
1165
+
1166
+ const endpointsByteLength = sgdReader._nextUint32();
1167
+
1168
+ const selectorsByteLength = sgdReader._nextUint32();
1169
+
1170
+ const tablesByteLength = sgdReader._nextUint32();
1171
+
1172
+ const extendedByteLength = sgdReader._nextUint32();
1173
+
1174
+ const imageDescs = [];
1175
+
1176
+ for (let i = 0; i < levelCount; i++) {
1177
+ imageDescs.push({
1178
+ imageFlags: sgdReader._nextUint32(),
1179
+ rgbSliceByteOffset: sgdReader._nextUint32(),
1180
+ rgbSliceByteLength: sgdReader._nextUint32(),
1181
+ alphaSliceByteOffset: sgdReader._nextUint32(),
1182
+ alphaSliceByteLength: sgdReader._nextUint32()
1183
+ });
1184
+ }
1185
+
1186
+ const endpointsByteOffset = sgdByteOffset + sgdReader._offset;
1187
+ const selectorsByteOffset = endpointsByteOffset + endpointsByteLength;
1188
+ const tablesByteOffset = selectorsByteOffset + selectorsByteLength;
1189
+ const extendedByteOffset = tablesByteOffset + tablesByteLength;
1190
+ const endpointsData = new Uint8Array(data.buffer, data.byteOffset + endpointsByteOffset, endpointsByteLength);
1191
+ const selectorsData = new Uint8Array(data.buffer, data.byteOffset + selectorsByteOffset, selectorsByteLength);
1192
+ const tablesData = new Uint8Array(data.buffer, data.byteOffset + tablesByteOffset, tablesByteLength);
1193
+ const extendedData = new Uint8Array(data.buffer, data.byteOffset + extendedByteOffset, extendedByteLength);
1194
+ container.globalData = {
1195
+ endpointCount,
1196
+ selectorCount,
1197
+ imageDescs,
1198
+ endpointsData,
1199
+ selectorsData,
1200
+ tablesData,
1201
+ extendedData
1202
+ };
1203
+ return container;
1204
+ }
1205
+
1206
+ /* global require */
1207
+
1208
+ const faceOrder = [
1209
+ "positiveX",
1210
+ "negativeX",
1211
+ "positiveY",
1212
+ "negativeY",
1213
+ "positiveZ",
1214
+ "negativeZ",
1215
+ ];
1216
+
1217
+ // Flags
1218
+ const colorModelETC1S = 163;
1219
+ const colorModelUASTC = 166;
1220
+
1221
+ let transcoderModule;
1222
+ function transcode(parameters, transferableObjects) {
1223
+ //>>includeStart('debug', pragmas.debug);
1224
+ Check.Check.typeOf.object("transcoderModule", transcoderModule);
1225
+ //>>includeEnd('debug');
1226
+
1227
+ const data = parameters.ktx2Buffer;
1228
+ const supportedTargetFormats = parameters.supportedTargetFormats;
1229
+ let header;
1230
+ try {
1231
+ header = read(data);
1232
+ } catch (e) {
1233
+ throw new RuntimeError.RuntimeError("Invalid KTX2 file.");
1234
+ }
1235
+
1236
+ if (header.layerCount !== 0) {
1237
+ throw new RuntimeError.RuntimeError("KTX2 texture arrays are not supported.");
1238
+ }
1239
+
1240
+ if (header.pixelDepth !== 0) {
1241
+ throw new RuntimeError.RuntimeError("KTX2 3D textures are unsupported.");
1242
+ }
1243
+
1244
+ const dfd = header.dataFormatDescriptor[0];
1245
+ const result = new Array(header.levelCount);
1246
+
1247
+ if (
1248
+ header.vkFormat === 0x0 &&
1249
+ (dfd.colorModel === colorModelETC1S || dfd.colorModel === colorModelUASTC)
1250
+ ) {
1251
+ // Compressed, initialize transcoder module
1252
+ transcodeCompressed(
1253
+ data,
1254
+ header,
1255
+ supportedTargetFormats,
1256
+ transcoderModule,
1257
+ transferableObjects,
1258
+ result
1259
+ );
1260
+ } else {
1261
+ transferableObjects.push(data.buffer);
1262
+ parseUncompressed(header, result);
1263
+ }
1264
+
1265
+ return result;
1266
+ }
1267
+
1268
+ // Parser for uncompressed
1269
+ function parseUncompressed(header, result) {
1270
+ const internalFormat =
1271
+ header.vkFormat === VulkanConstants$1.VK_FORMAT_R8G8B8_SRGB
1272
+ ? PixelFormat$1.RGB
1273
+ : PixelFormat$1.RGBA;
1274
+ let datatype;
1275
+ if (header.vkFormat === VulkanConstants$1.VK_FORMAT_R8G8B8A8_UNORM) {
1276
+ datatype = PixelDatatype$1.UNSIGNED_BYTE;
1277
+ } else if (
1278
+ header.vkFormat === VulkanConstants$1.VK_FORMAT_R16G16B16A16_SFLOAT
1279
+ ) {
1280
+ datatype = PixelDatatype$1.HALF_FLOAT;
1281
+ } else if (
1282
+ header.vkFormat === VulkanConstants$1.VK_FORMAT_R32G32B32A32_SFLOAT
1283
+ ) {
1284
+ datatype = PixelDatatype$1.FLOAT;
1285
+ }
1286
+
1287
+ for (let i = 0; i < header.levels.length; ++i) {
1288
+ const level = {};
1289
+ result[i] = level;
1290
+ const levelBuffer = header.levels[i].levelData;
1291
+
1292
+ const width = header.pixelWidth >> i;
1293
+ const height = header.pixelHeight >> i;
1294
+ const faceLength =
1295
+ width * height * PixelFormat$1.componentsLength(internalFormat);
1296
+
1297
+ for (let j = 0; j < header.faceCount; ++j) {
1298
+ // multiply levelBuffer.byteOffset by the size in bytes of the pixel data type
1299
+ const faceByteOffset =
1300
+ levelBuffer.byteOffset + faceLength * header.typeSize * j;
1301
+ let faceView;
1302
+ if (!defaultValue.defined(datatype) || PixelDatatype$1.sizeInBytes(datatype) === 1) {
1303
+ faceView = new Uint8Array(
1304
+ levelBuffer.buffer,
1305
+ faceByteOffset,
1306
+ faceLength
1307
+ );
1308
+ } else if (PixelDatatype$1.sizeInBytes(datatype) === 2) {
1309
+ faceView = new Uint16Array(
1310
+ levelBuffer.buffer,
1311
+ faceByteOffset,
1312
+ faceLength
1313
+ );
1314
+ } else {
1315
+ faceView = new Float32Array(
1316
+ levelBuffer.buffer,
1317
+ faceByteOffset,
1318
+ faceLength
1319
+ );
1320
+ }
1321
+
1322
+ level[faceOrder[j]] = {
1323
+ internalFormat: internalFormat,
1324
+ datatype: datatype,
1325
+ width: width,
1326
+ height: height,
1327
+ levelBuffer: faceView,
1328
+ };
1329
+ }
1330
+ }
1331
+ }
1332
+
1333
+ function transcodeCompressed(
1334
+ data,
1335
+ header,
1336
+ supportedTargetFormats,
1337
+ transcoderModule,
1338
+ transferableObjects,
1339
+ result
1340
+ ) {
1341
+ const ktx2File = new transcoderModule.KTX2File(data);
1342
+ let width = ktx2File.getWidth();
1343
+ let height = ktx2File.getHeight();
1344
+ const levels = ktx2File.getLevels();
1345
+ const hasAlpha = ktx2File.getHasAlpha();
1346
+
1347
+ if (!(width > 0) || !(height > 0) || !(levels > 0)) {
1348
+ ktx2File.close();
1349
+ ktx2File.delete();
1350
+ throw new RuntimeError.RuntimeError("Invalid KTX2 file");
1351
+ }
1352
+
1353
+ let internalFormat, transcoderFormat;
1354
+ const dfd = header.dataFormatDescriptor[0];
1355
+ const BasisFormat = transcoderModule.transcoder_texture_format;
1356
+
1357
+ // Determine target format based on platform support
1358
+ if (dfd.colorModel === colorModelETC1S) {
1359
+ if (supportedTargetFormats.etc) {
1360
+ internalFormat = hasAlpha
1361
+ ? PixelFormat$1.RGBA8_ETC2_EAC
1362
+ : PixelFormat$1.RGB8_ETC2;
1363
+ transcoderFormat = hasAlpha
1364
+ ? BasisFormat.cTFETC2_RGBA
1365
+ : BasisFormat.cTFETC1_RGB;
1366
+ } else if (supportedTargetFormats.etc1 && !hasAlpha) {
1367
+ internalFormat = PixelFormat$1.RGB_ETC1;
1368
+ transcoderFormat = BasisFormat.cTFETC1_RGB;
1369
+ } else if (supportedTargetFormats.s3tc) {
1370
+ internalFormat = hasAlpha ? PixelFormat$1.RGBA_DXT5 : PixelFormat$1.RGB_DXT1;
1371
+ transcoderFormat = hasAlpha
1372
+ ? BasisFormat.cTFBC3_RGBA
1373
+ : BasisFormat.cTFBC1_RGB;
1374
+ } else if (supportedTargetFormats.pvrtc) {
1375
+ internalFormat = hasAlpha
1376
+ ? PixelFormat$1.RGBA_PVRTC_4BPPV1
1377
+ : PixelFormat$1.RGB_PVRTC_4BPPV1;
1378
+ transcoderFormat = hasAlpha
1379
+ ? BasisFormat.cTFPVRTC1_4_RGBA
1380
+ : BasisFormat.cTFPVRTC1_4_RGB;
1381
+ } else if (supportedTargetFormats.astc) {
1382
+ internalFormat = PixelFormat$1.RGBA_ASTC;
1383
+ transcoderFormat = BasisFormat.cTFASTC_4x4_RGBA;
1384
+ } else if (supportedTargetFormats.bc7) {
1385
+ internalFormat = PixelFormat$1.RGBA_BC7;
1386
+ transcoderFormat = BasisFormat.cTFBC7_RGBA;
1387
+ } else {
1388
+ throw new RuntimeError.RuntimeError(
1389
+ "No transcoding format target available for ETC1S compressed ktx2."
1390
+ );
1391
+ }
1392
+ } else if (dfd.colorModel === colorModelUASTC) {
1393
+ if (supportedTargetFormats.astc) {
1394
+ internalFormat = PixelFormat$1.RGBA_ASTC;
1395
+ transcoderFormat = BasisFormat.cTFASTC_4x4_RGBA;
1396
+ } else if (supportedTargetFormats.bc7) {
1397
+ internalFormat = PixelFormat$1.RGBA_BC7;
1398
+ transcoderFormat = BasisFormat.cTFBC7_RGBA;
1399
+ } else if (supportedTargetFormats.s3tc) {
1400
+ internalFormat = hasAlpha ? PixelFormat$1.RGBA_DXT5 : PixelFormat$1.RGB_DXT1;
1401
+ transcoderFormat = hasAlpha
1402
+ ? BasisFormat.cTFBC3_RGBA
1403
+ : BasisFormat.cTFBC1_RGB;
1404
+ } else if (supportedTargetFormats.etc) {
1405
+ internalFormat = hasAlpha
1406
+ ? PixelFormat$1.RGBA8_ETC2_EAC
1407
+ : PixelFormat$1.RGB8_ETC2;
1408
+ transcoderFormat = hasAlpha
1409
+ ? BasisFormat.cTFETC2_RGBA
1410
+ : BasisFormat.cTFETC1_RGB;
1411
+ } else if (supportedTargetFormats.etc1 && !hasAlpha) {
1412
+ internalFormat = PixelFormat$1.RGB_ETC1;
1413
+ transcoderFormat = BasisFormat.cTFETC1_RGB;
1414
+ } else if (supportedTargetFormats.pvrtc) {
1415
+ internalFormat = hasAlpha
1416
+ ? PixelFormat$1.RGBA_PVRTC_4BPPV1
1417
+ : PixelFormat$1.RGB_PVRTC_4BPPV1;
1418
+ transcoderFormat = hasAlpha
1419
+ ? BasisFormat.cTFPVRTC1_4_RGBA
1420
+ : BasisFormat.cTFPVRTC1_4_RGB;
1421
+ } else {
1422
+ throw new RuntimeError.RuntimeError(
1423
+ "No transcoding format target available for UASTC compressed ktx2."
1424
+ );
1425
+ }
1426
+ }
1427
+
1428
+ if (!ktx2File.startTranscoding()) {
1429
+ ktx2File.close();
1430
+ ktx2File.delete();
1431
+ throw new RuntimeError.RuntimeError("startTranscoding() failed");
1432
+ }
1433
+
1434
+ for (let i = 0; i < header.levels.length; ++i) {
1435
+ const level = {};
1436
+ result[i] = level;
1437
+ width = header.pixelWidth >> i;
1438
+ height = header.pixelHeight >> i;
1439
+
1440
+ // Since supercompressed cubemaps are unsupported, this function
1441
+ // does not iterate over KTX2 faces and assumes faceCount = 1.
1442
+
1443
+ const dstSize = ktx2File.getImageTranscodedSizeInBytes(
1444
+ i, // level index
1445
+ 0, // layer index
1446
+ 0, // face index
1447
+ transcoderFormat.value
1448
+ );
1449
+ const dst = new Uint8Array(dstSize);
1450
+
1451
+ const transcoded = ktx2File.transcodeImage(
1452
+ dst,
1453
+ i, // level index
1454
+ 0, // layer index
1455
+ 0, // face index
1456
+ transcoderFormat.value,
1457
+ 0, // get_alpha_for_opaque_formats
1458
+ -1, // channel0
1459
+ -1 // channel1
1460
+ );
1461
+
1462
+ if (!defaultValue.defined(transcoded)) {
1463
+ throw new RuntimeError.RuntimeError("transcodeImage() failed.");
1464
+ }
1465
+
1466
+ transferableObjects.push(dst.buffer);
1467
+
1468
+ level[faceOrder[0]] = {
1469
+ internalFormat: internalFormat,
1470
+ width: width,
1471
+ height: height,
1472
+ levelBuffer: dst,
1473
+ };
1474
+ }
1475
+
1476
+ ktx2File.close();
1477
+ ktx2File.delete();
1478
+ return result;
1479
+ }
1480
+
1481
+ function initWorker(compiledModule) {
1482
+ transcoderModule = compiledModule;
1483
+ transcoderModule.initializeBasis();
1484
+
1485
+ self.onmessage = createTaskProcessorWorker(transcode);
1486
+ self.postMessage(true);
1487
+ }
1488
+
1489
+ function transcodeKTX2(event) {
1490
+ const data = event.data;
1491
+
1492
+ // Expect the first message to be to load a web assembly module
1493
+ const wasmConfig = data.webAssemblyConfig;
1494
+ if (defaultValue.defined(wasmConfig)) {
1495
+ // Require and compile WebAssembly module, or use fallback if not supported
1496
+ return require([wasmConfig.modulePath], function (mscBasisTranscoder) {
1497
+ if (defaultValue.defined(wasmConfig.wasmBinaryFile)) {
1498
+ if (!defaultValue.defined(mscBasisTranscoder)) {
1499
+ mscBasisTranscoder = self.MSC_TRANSCODER;
1500
+ }
1501
+
1502
+ mscBasisTranscoder(wasmConfig).then(function (compiledModule) {
1503
+ initWorker(compiledModule);
1504
+ });
1505
+ } else {
1506
+ return mscBasisTranscoder().then(function (transcoder) {
1507
+ initWorker(transcoder);
1508
+ });
1509
+ }
1510
+ });
1511
+ }
1512
+ }
1513
+
1514
+ return transcodeKTX2;
1515
+
1516
+ }));