@vcmap/ui 5.0.0-rc.18 → 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.
- package/README.md +6 -6
- package/build/build.js +2 -2
- package/build/buildCesium.js +3 -3
- package/build/buildHelpers.js +2 -1
- package/config/base.config.json +0 -4
- package/config/dev.config.json +35 -14
- package/config/www.config.json +4 -0
- package/dist/assets/cesium/Workers/ArcType-ce2e50ab.js +37 -0
- package/dist/assets/cesium/Workers/AttributeCompression-b646d393.js +716 -0
- package/dist/assets/cesium/Workers/AxisAlignedBoundingBox-ff186ccc.js +258 -0
- package/dist/assets/cesium/Workers/BoundingRectangle-be5924f4.js +369 -0
- package/dist/assets/cesium/Workers/BoxGeometry-12eeccaf.js +884 -0
- package/dist/assets/cesium/Workers/Check-666ab1a0.js +290 -0
- package/dist/assets/cesium/Workers/Color-a84038cb.js +2262 -0
- package/dist/assets/cesium/Workers/ComponentDatatype-f7b11d02.js +341 -0
- package/dist/assets/cesium/Workers/CoplanarPolygonGeometryLibrary-3272c1b3.js +132 -0
- package/dist/assets/cesium/Workers/CorridorGeometryLibrary-0170e093.js +498 -0
- package/dist/assets/cesium/Workers/CylinderGeometry-7c5da648.js +467 -0
- package/dist/assets/cesium/Workers/CylinderGeometryLibrary-372c07d8.js +63 -0
- package/dist/assets/cesium/Workers/EllipseGeometry-797d580e.js +1304 -0
- package/dist/assets/cesium/Workers/EllipseGeometryLibrary-2939e1dc.js +366 -0
- package/dist/assets/cesium/Workers/EllipseOutlineGeometry-8b50870f.js +443 -0
- package/dist/assets/cesium/Workers/EllipsoidGeodesic-98c62a56.js +520 -0
- package/dist/assets/cesium/Workers/EllipsoidGeometry-21c0e3a5.js +637 -0
- package/dist/assets/cesium/Workers/EllipsoidOutlineGeometry-eff247c8.js +454 -0
- package/dist/assets/cesium/Workers/EllipsoidRhumbLine-19756602.js +741 -0
- package/dist/assets/cesium/Workers/EllipsoidTangentPlane-214683dc.js +373 -0
- package/dist/assets/cesium/Workers/EncodedCartesian3-81f70735.js +171 -0
- package/dist/assets/cesium/Workers/FrustumGeometry-ac42a6d9.js +2512 -0
- package/dist/assets/cesium/Workers/GeometryAttribute-7d6f1732.js +619 -0
- package/dist/assets/cesium/Workers/GeometryAttributes-f06a2792.js +91 -0
- package/dist/assets/cesium/Workers/GeometryInstance-451dc1cd.js +121 -0
- package/dist/assets/cesium/Workers/GeometryOffsetAttribute-04332ce7.js +16 -0
- package/dist/assets/cesium/Workers/GeometryPipeline-ce4339ed.js +3690 -0
- package/dist/assets/cesium/Workers/IndexDatatype-a55ceaa1.js +200 -0
- package/dist/assets/cesium/Workers/IntersectionTests-f6e6bd8a.js +1836 -0
- package/dist/assets/cesium/Workers/Math-2dbd6b93.js +1330 -0
- package/dist/assets/cesium/Workers/Matrix2-13178034.js +7086 -0
- package/dist/assets/cesium/Workers/Matrix3-315394f6.js +4283 -0
- package/dist/assets/cesium/Workers/OrientedBoundingBox-04920dc7.js +1257 -0
- package/dist/assets/cesium/Workers/Plane-900aa728.js +309 -0
- package/dist/assets/cesium/Workers/PolygonGeometryLibrary-a8680d96.js +1074 -0
- package/dist/assets/cesium/Workers/PolygonPipeline-844aab0a.js +1345 -0
- package/dist/assets/cesium/Workers/PolylinePipeline-32f36d2a.js +573 -0
- package/dist/assets/cesium/Workers/PolylineVolumeGeometryLibrary-a510d657.js +781 -0
- package/dist/assets/cesium/Workers/PrimitivePipeline-ba38434a.js +966 -0
- package/dist/assets/cesium/Workers/RectangleGeometryLibrary-bdba697e.js +280 -0
- package/dist/assets/cesium/Workers/RuntimeError-06c93819.js +68 -0
- package/dist/assets/cesium/Workers/TerrainEncoding-833187da.js +1227 -0
- package/dist/assets/cesium/Workers/Transforms-40229881.js +14696 -0
- package/dist/assets/cesium/Workers/VertexFormat-6b480673.js +312 -0
- package/dist/assets/cesium/Workers/WallGeometryLibrary-919eed92.js +211 -0
- package/dist/assets/cesium/Workers/WebGLConstants-a8cc3e8c.js +620 -0
- package/dist/assets/cesium/Workers/WebMercatorProjection-13a90d41.js +151 -0
- package/dist/assets/cesium/Workers/arrayRemoveDuplicates-c2038105.js +129 -0
- package/dist/assets/cesium/Workers/cesiumWorkerBootstrapper.js +1336 -4
- package/dist/assets/cesium/Workers/combine-ca22a614.js +82 -0
- package/dist/assets/cesium/Workers/combineGeometry.js +17 -25
- package/dist/assets/cesium/Workers/createBoxGeometry.js +12 -25
- package/dist/assets/cesium/Workers/createBoxOutlineGeometry.js +313 -25
- package/dist/assets/cesium/Workers/createCircleGeometry.js +213 -25
- package/dist/assets/cesium/Workers/createCircleOutlineGeometry.js +160 -25
- package/dist/assets/cesium/Workers/createCoplanarPolygonGeometry.js +586 -25
- package/dist/assets/cesium/Workers/createCoplanarPolygonOutlineGeometry.js +236 -25
- package/dist/assets/cesium/Workers/createCorridorGeometry.js +1407 -25
- package/dist/assets/cesium/Workers/createCorridorOutlineGeometry.js +603 -25
- package/dist/assets/cesium/Workers/createCylinderGeometry.js +12 -25
- package/dist/assets/cesium/Workers/createCylinderOutlineGeometry.js +265 -25
- package/dist/assets/cesium/Workers/createEllipseGeometry.js +14 -25
- package/dist/assets/cesium/Workers/createEllipseOutlineGeometry.js +14 -25
- package/dist/assets/cesium/Workers/createEllipsoidGeometry.js +12 -25
- package/dist/assets/cesium/Workers/createEllipsoidOutlineGeometry.js +15 -25
- package/dist/assets/cesium/Workers/createFrustumGeometry.js +12 -25
- package/dist/assets/cesium/Workers/createFrustumOutlineGeometry.js +251 -25
- package/dist/assets/cesium/Workers/createGeometry.js +55 -25
- package/dist/assets/cesium/Workers/createGroundPolylineGeometry.js +2134 -25
- package/dist/assets/cesium/Workers/createPlaneGeometry.js +250 -25
- package/dist/assets/cesium/Workers/createPlaneOutlineGeometry.js +115 -25
- package/dist/assets/cesium/Workers/createPolygonGeometry.js +1420 -25
- package/dist/assets/cesium/Workers/createPolygonOutlineGeometry.js +683 -25
- package/dist/assets/cesium/Workers/createPolylineGeometry.js +571 -25
- package/dist/assets/cesium/Workers/createPolylineVolumeGeometry.js +411 -25
- package/dist/assets/cesium/Workers/createPolylineVolumeOutlineGeometry.js +301 -25
- package/dist/assets/cesium/Workers/createRectangleGeometry.js +1476 -25
- package/dist/assets/cesium/Workers/createRectangleOutlineGeometry.js +535 -25
- package/dist/assets/cesium/Workers/createSimplePolylineGeometry.js +458 -25
- package/dist/assets/cesium/Workers/createSphereGeometry.js +123 -25
- package/dist/assets/cesium/Workers/createSphereOutlineGeometry.js +126 -25
- package/dist/assets/cesium/Workers/createTaskProcessorWorker.js +127 -25
- package/dist/assets/cesium/Workers/createVectorTileClampedPolylines.js +535 -25
- package/dist/assets/cesium/Workers/createVectorTileGeometries.js +445 -25
- package/dist/assets/cesium/Workers/createVectorTilePoints.js +79 -25
- package/dist/assets/cesium/Workers/createVectorTilePolygons.js +406 -25
- package/dist/assets/cesium/Workers/createVectorTilePolylines.js +254 -25
- package/dist/assets/cesium/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +640 -25
- package/dist/assets/cesium/Workers/createVerticesFromHeightmap.js +2711 -27
- package/dist/assets/cesium/Workers/createVerticesFromQuantizedTerrainMesh.js +994 -25
- package/dist/assets/cesium/Workers/createWallGeometry.js +623 -25
- package/dist/assets/cesium/Workers/createWallOutlineGeometry.js +432 -25
- package/dist/assets/cesium/Workers/decodeDraco.js +381 -25
- package/dist/assets/cesium/Workers/decodeGoogleEarthEnterprisePacket.js +3687 -25
- package/dist/assets/cesium/Workers/decodeI3S.js +1040 -0
- package/dist/assets/cesium/Workers/defaultValue-0a909f67.js +51 -0
- package/dist/assets/cesium/Workers/package.js +2 -2
- package/dist/assets/cesium/Workers/transcodeKTX2.js +1516 -25
- package/dist/assets/cesium/Workers/transferTypedArrayTest.js +18 -2
- package/dist/assets/cesium/Workers/upsampleQuantizedTerrainMesh.js +1023 -25
- package/dist/assets/{cesium.2f992f.js → cesium.adbd45.js} +112161 -108735
- package/dist/assets/cesium.js +1 -1
- package/dist/assets/{core.cb0408.js → core.60e74d.js} +1616 -1629
- package/dist/assets/core.f198cf.js +15993 -0
- package/dist/assets/core.js +1 -1
- package/dist/assets/{index.bccdf969.js → index.884a53ef.js} +1 -1
- package/dist/assets/{ol.5e3fd0.js → ol.c6ff35.js} +6992 -6972
- package/dist/assets/ol.dbd604.js +44299 -0
- package/dist/assets/ol.js +1 -1
- package/dist/assets/ui.bf504d.css +1 -0
- package/dist/assets/{ui.08c48f.js → ui.bf504d.js} +6121 -6785
- package/dist/assets/ui.js +1 -1
- package/dist/assets/{vue.228ead.js → vue.75b819.js} +0 -0
- package/dist/assets/vue.a831f1.js +4675 -0
- package/dist/assets/vue.js +2 -2
- package/dist/assets/{vuetify.0b5039.css → vuetify.0d7360.css} +0 -0
- package/dist/assets/{vuetify.0b5039.js → vuetify.0d7360.js} +1 -1
- package/dist/assets/vuetify.js +2 -2
- package/dist/index.html +1 -1
- package/index.js +2 -1
- package/lib/cesium.js +1 -1
- package/package.json +3 -4
- package/plugins/{simple-graph → @vcmap/simple-graph}/README.md +1 -1
- package/plugins/{simple-graph → @vcmap/simple-graph}/SimpleGraphComponent.vue +0 -0
- package/plugins/{simple-graph → @vcmap/simple-graph}/index.js +0 -0
- package/plugins/{simple-graph → @vcmap/simple-graph}/package.json +0 -0
- package/plugins/{simple-graph → @vcmap/simple-graph}/simpleGraphView.js +0 -0
- package/plugins/@vcmap-show-case/README.md +20 -0
- package/plugins/{buttonExamples/ButtonExamples.vue → @vcmap-show-case/buttons-example/ButtonsExample.vue} +1 -1
- package/plugins/@vcmap-show-case/buttons-example/README.md +4 -0
- package/plugins/{buttonExamples → @vcmap-show-case/buttons-example}/index.js +16 -8
- package/plugins/@vcmap-show-case/buttons-example/package.json +5 -0
- package/plugins/{categoryTest → @vcmap-show-case/category-tester}/Categories.vue +7 -6
- package/plugins/{categoryTest → @vcmap-show-case/category-tester}/Category.vue +4 -3
- package/plugins/@vcmap-show-case/category-tester/README.md +3 -0
- package/plugins/{categoryTest → @vcmap-show-case/category-tester}/index.js +12 -4
- package/plugins/@vcmap-show-case/category-tester/package.json +5 -0
- package/plugins/@vcmap-show-case/config-editor/README.md +3 -0
- package/plugins/{test → @vcmap-show-case/config-editor}/editor.vue +0 -0
- package/plugins/@vcmap-show-case/config-editor/index.js +47 -0
- package/plugins/@vcmap-show-case/config-editor/package.json +5 -0
- package/plugins/@vcmap-show-case/context-menu-tester/README.md +3 -0
- package/plugins/@vcmap-show-case/context-menu-tester/index.js +33 -0
- package/plugins/@vcmap-show-case/context-menu-tester/package.json +5 -0
- package/plugins/{@vcmap/pluginExample/pluginExampleComponent.vue → @vcmap-show-case/form-inputs-example/FormInputsExample.vue} +14 -13
- package/plugins/@vcmap-show-case/form-inputs-example/README.md +4 -0
- package/plugins/@vcmap-show-case/form-inputs-example/config.json +5 -0
- package/plugins/{@vcmap/pluginExample → @vcmap-show-case/form-inputs-example}/exampleActions.js +1 -1
- package/plugins/{@vcmap/pluginExample → @vcmap-show-case/form-inputs-example}/index.js +23 -22
- package/plugins/@vcmap-show-case/form-inputs-example/package.json +5 -0
- package/plugins/{@vcmap/pluginExample → @vcmap-show-case/form-inputs-example}/validation.js +0 -0
- package/plugins/@vcmap-show-case/icons-example/README.md +5 -0
- package/plugins/@vcmap-show-case/icons-example/allIconsComponent.vue +51 -0
- package/plugins/@vcmap-show-case/icons-example/index.js +44 -0
- package/plugins/@vcmap-show-case/icons-example/package.json +5 -0
- package/plugins/{test/testList.vue → @vcmap-show-case/list-example/ListExample.vue} +1 -1
- package/plugins/@vcmap-show-case/list-example/README.md +3 -0
- package/plugins/@vcmap-show-case/list-example/index.js +44 -0
- package/plugins/@vcmap-show-case/list-example/package.json +5 -0
- package/plugins/@vcmap-show-case/notifier-tester/README.md +3 -0
- package/plugins/{notifier → @vcmap-show-case/notifier-tester}/index.js +11 -6
- package/plugins/{notifier → @vcmap-show-case/notifier-tester}/notifierTester.vue +0 -0
- package/plugins/@vcmap-show-case/notifier-tester/package.json +5 -0
- package/plugins/@vcmap-show-case/textfields-example/README.md +3 -0
- package/plugins/{example/mySuperComponent.vue → @vcmap-show-case/textfields-example/TextfieldsExample.vue} +1 -7
- package/plugins/{example → @vcmap-show-case/textfields-example}/index.js +58 -62
- package/plugins/@vcmap-show-case/textfields-example/package.json +5 -0
- package/plugins/@vcmap-show-case/window-tester/README.md +3 -0
- package/plugins/{test/windowManagerExample.vue → @vcmap-show-case/window-tester/WindowExample.vue} +36 -20
- package/plugins/{test → @vcmap-show-case/window-tester}/emptyComponent.vue +8 -3
- package/plugins/@vcmap-show-case/window-tester/index.js +62 -0
- package/plugins/{test → @vcmap-show-case/window-tester}/myCustomHeader.vue +0 -0
- package/plugins/@vcmap-show-case/window-tester/package.json +5 -0
- package/plugins/{test → @vcmap-show-case/window-tester}/toolbox-data.js +9 -9
- package/plugins/{test/vcsContent.vue → @vcmap-show-case/window-tester/windowExampleContent.vue} +1 -5
- package/plugins/@vcmap-show-case/wizard-example/README.md +3 -0
- package/plugins/{wizardExample → @vcmap-show-case/wizard-example}/index.js +12 -6
- package/plugins/@vcmap-show-case/wizard-example/package.json +5 -0
- package/plugins/@vcmap-show-case/wizard-example/wizardExample.vue +95 -0
- package/plugins/package.json +2 -1
- package/src/actions/actionHelper.js +1 -3
- package/src/actions/stateRefAction.js +0 -10
- package/src/application/VcsApp.vue +42 -23
- package/src/application/VcsMap.vue +9 -0
- package/src/components/buttons/VcsActionButtonList.vue +1 -0
- package/src/components/form-inputs-controls/VcsCheckbox.vue +3 -1
- package/src/components/form-inputs-controls/VcsWizard.vue +17 -20
- package/src/components/form-inputs-controls/VcsWizardStep.vue +160 -0
- package/src/{icons → components/icons}/+all.js +0 -0
- package/src/{icons → components/icons}/2DAreaIcon.vue +0 -0
- package/src/{icons → components/icons}/2DDistanceIcon.vue +0 -0
- package/src/{icons → components/icons}/3DAreaIcon.vue +0 -0
- package/src/{icons → components/icons}/3DDistanceIcon.vue +0 -0
- package/src/{icons → components/icons}/3DHeightIcon.vue +0 -0
- package/src/{icons → components/icons}/AngleIcon.vue +0 -0
- package/src/{icons → components/icons}/AssociationsIcon.vue +0 -0
- package/src/{icons → components/icons}/AxisIcon.vue +0 -0
- package/src/{icons → components/icons}/BoundingBoxIcon.vue +0 -0
- package/src/{icons → components/icons}/CheckboxCheckedIcon.vue +0 -0
- package/src/{icons → components/icons}/CheckboxIcon.vue +0 -0
- package/src/{icons → components/icons}/CheckboxIndeterminateIcon.vue +0 -0
- package/src/{icons → components/icons}/CircleIcon.vue +0 -0
- package/src/{icons → components/icons}/ClippingHorizontalIcon.vue +0 -0
- package/src/{icons → components/icons}/ClippingIcon.vue +0 -0
- package/src/{icons → components/icons}/ClippingVerticalIcon.vue +0 -0
- package/src/{icons → components/icons}/ColorPickerIcon.vue +0 -0
- package/src/{icons → components/icons}/ColorSwatchIcon.vue +0 -0
- package/src/{icons → components/icons}/CommentIcon.vue +0 -0
- package/src/{icons → components/icons}/CompassIcon.vue +0 -0
- package/src/{icons → components/icons}/ComponentsIcon.vue +0 -0
- package/src/{icons → components/icons}/ConeIcon.vue +0 -0
- package/src/{icons → components/icons}/DimensionsHouseIcon.vue +0 -0
- package/src/{icons → components/icons}/EditIcon.vue +0 -0
- package/src/{icons → components/icons}/ElevationProfileIcon.vue +0 -0
- package/src/{icons → components/icons}/ExportAreaIcon.vue +0 -0
- package/src/{icons → components/icons}/ExportFlightIcon.vue +0 -0
- package/src/{icons → components/icons}/ExportIcon.vue +0 -0
- package/src/{icons → components/icons}/ExternalLinkIcon.vue +0 -0
- package/src/{icons → components/icons}/EyeIcon.vue +0 -0
- package/src/{icons → components/icons}/FastForwardIcon.vue +0 -0
- package/src/{icons → components/icons}/FilterIcon.vue +0 -0
- package/src/{icons → components/icons}/GlobalTerrainIcon.vue +0 -0
- package/src/{icons → components/icons}/GlobeNatureIcon.vue +0 -0
- package/src/{icons → components/icons}/GroundIcon.vue +0 -0
- package/src/{icons → components/icons}/HealthCareIndustriesIcon.vue +0 -0
- package/src/{icons → components/icons}/HelpIcon.vue +0 -0
- package/src/{icons → components/icons}/HideIcon.vue +0 -0
- package/src/{icons → components/icons}/HomePointIcon.vue +0 -0
- package/src/{icons → components/icons}/HospitalsIcon.vue +0 -0
- package/src/{icons → components/icons}/HouseIcon.vue +0 -0
- package/src/{icons → components/icons}/ImportIcon.vue +0 -0
- package/src/{icons → components/icons}/InfoIcon.vue +0 -0
- package/src/{icons → components/icons}/KebabIcon.vue +0 -0
- package/src/{icons → components/icons}/LabelIcon.vue +0 -0
- package/src/{icons → components/icons}/LayersIcon.vue +0 -0
- package/src/{icons → components/icons}/LegendIcon.vue +0 -0
- package/src/{icons → components/icons}/LineIcon.vue +0 -0
- package/src/{icons → components/icons}/LinkIcon.vue +0 -0
- package/src/{icons → components/icons}/LogoutIcon.vue +0 -0
- package/src/{icons → components/icons}/MapIcon.vue +0 -0
- package/src/{icons → components/icons}/MenuIcon.vue +0 -0
- package/src/{icons → components/icons}/MinusIcon.vue +0 -0
- package/src/{icons → components/icons}/ObjectAttributeIcon.vue +0 -0
- package/src/{icons → components/icons}/ObjectSelectIcon.vue +0 -0
- package/src/{icons → components/icons}/ObliqueViewIcon.vue +0 -0
- package/src/{icons → components/icons}/PdfIcon.vue +0 -0
- package/src/{icons → components/icons}/PedestrianIcon.vue +0 -0
- package/src/{icons → components/icons}/PenIcon.vue +0 -0
- package/src/{icons → components/icons}/PlayCircleIcon.vue +0 -0
- package/src/{icons → components/icons}/PlusIcon.vue +0 -0
- package/src/{icons → components/icons}/PoiIcon.vue +0 -0
- package/src/{icons → components/icons}/PointSelectIcon.vue +0 -0
- package/src/{icons → components/icons}/PolygonIcon.vue +0 -0
- package/src/{icons → components/icons}/PresentationModeIcon.vue +0 -0
- package/src/{icons → components/icons}/ProgressIcon.vue +0 -0
- package/src/{icons → components/icons}/QueryIcon.vue +0 -0
- package/src/{icons → components/icons}/RectangleIcon.vue +0 -0
- package/src/{icons → components/icons}/ReturnIcon.vue +0 -0
- package/src/{icons → components/icons}/RewindIcon.vue +0 -0
- package/src/{icons → components/icons}/RotateLeftIcon.vue +0 -0
- package/src/{icons → components/icons}/RotateRightIcon.vue +0 -0
- package/src/{icons → components/icons}/ScreenshotIcon.vue +0 -0
- package/src/{icons → components/icons}/SearchIcon.vue +0 -0
- package/src/{icons → components/icons}/ShadowIcon.vue +0 -0
- package/src/{icons → components/icons}/ShapesIcon.vue +0 -0
- package/src/{icons → components/icons}/ShareIcon.vue +0 -0
- package/src/{icons → components/icons}/SimpleCircleFilledIcon.vue +0 -0
- package/src/{icons → components/icons}/SimpleCircleHalfFilledIcon.vue +0 -0
- package/src/{icons → components/icons}/SimpleCircleOutlinedIcon.vue +0 -0
- package/src/{icons → components/icons}/SkipNextIcon.vue +0 -0
- package/src/{icons → components/icons}/SkipPreviousIcon.vue +0 -0
- package/src/{icons → components/icons}/SplitViewIcon.vue +0 -0
- package/src/{icons → components/icons}/TerrainBoxIcon.vue +0 -0
- package/src/{icons → components/icons}/TextStyleIcon.vue +0 -0
- package/src/{icons → components/icons}/ThreeDimensionsIcon.vue +0 -0
- package/src/{icons → components/icons}/ToolsIcon.vue +0 -0
- package/src/{icons → components/icons}/TouchIcon.vue +0 -0
- package/src/{icons → components/icons}/TrashCanIcon.vue +0 -0
- package/src/{icons → components/icons}/TriangleIcon.vue +0 -0
- package/src/{icons → components/icons}/TwoDimensionsIcon.vue +0 -0
- package/src/{icons → components/icons}/UploadIcon.vue +0 -0
- package/src/{icons → components/icons}/UserProfileIcon.vue +0 -0
- package/src/{icons → components/icons}/UserShareIcon.vue +0 -0
- package/src/{icons → components/icons}/VideoRecorderIcon.vue +0 -0
- package/src/{icons → components/icons}/ViewpointFlightIcon.vue +0 -0
- package/src/{icons → components/icons}/ViewpointIcon.vue +0 -0
- package/src/{icons → components/icons}/Viewshed360Icon.vue +0 -0
- package/src/{icons → components/icons}/ViewshedConeIcon.vue +0 -0
- package/src/{icons → components/icons}/ViewshedIcon.vue +0 -0
- package/src/{icons → components/icons}/WalkingIcon.vue +0 -0
- package/src/{icons → components/icons}/WallIcon.vue +0 -0
- package/src/{icons → components/icons}/WandIcon.vue +0 -0
- package/src/components/lists/VcsList.vue +21 -12
- package/src/components/lists/VcsTreeviewLeaf.vue +14 -2
- package/src/components/notification/VcsTooltip.vue +1 -1
- package/src/featureInfo/abstractFeatureInfoView.js +1 -1
- package/src/featureInfo/addressBalloonFeatureInfoView.js +1 -1
- package/src/featureInfo/balloonFeatureInfoView.js +1 -1
- package/src/featureInfo/balloonHelper.js +6 -6
- package/src/featureInfo/featureInfo.js +2 -2
- package/src/i18n/de.js +2 -6
- package/src/i18n/en.js +2 -6
- package/src/legend/legendHelper.js +4 -3
- package/src/legend/vcsLegend.vue +21 -2
- package/src/manager/window/WindowComponent.vue +42 -4
- package/src/manager/window/WindowComponentHeader.vue +1 -1
- package/src/manager/window/windowHelper.js +7 -11
- package/src/manager/window/windowManager.js +15 -11
- package/src/navigation/mapNavCompass.vue +13 -7
- package/src/navigation/mapNavigation.vue +66 -4
- package/src/navigation/orientationToolsButton.vue +1 -1
- package/src/navigation/overviewMap.js +26 -10
- package/src/navigation/vcsCompass.vue +4 -73
- package/src/setup.js +1 -1
- package/src/vuePlugins/vuetify.js +1 -1
- package/dist/assets/cesium/Workers/ArcType-c9b2b290.js +0 -25
- package/dist/assets/cesium/Workers/AttributeCompression-7b0f288d.js +0 -25
- package/dist/assets/cesium/Workers/AxisAlignedBoundingBox-d0c22774.js +0 -25
- package/dist/assets/cesium/Workers/BoundingRectangle-201b1a81.js +0 -25
- package/dist/assets/cesium/Workers/BoxGeometry-4985457c.js +0 -25
- package/dist/assets/cesium/Workers/Color-cc8c18b3.js +0 -25
- package/dist/assets/cesium/Workers/ComponentDatatype-0200bf8c.js +0 -25
- package/dist/assets/cesium/Workers/CoplanarPolygonGeometryLibrary-4345acdf.js +0 -25
- package/dist/assets/cesium/Workers/CorridorGeometryLibrary-850a6c35.js +0 -25
- package/dist/assets/cesium/Workers/CylinderGeometry-57a1051a.js +0 -25
- package/dist/assets/cesium/Workers/CylinderGeometryLibrary-62ce5a1f.js +0 -25
- package/dist/assets/cesium/Workers/EllipseGeometry-8627398f.js +0 -25
- package/dist/assets/cesium/Workers/EllipseGeometryLibrary-e5919563.js +0 -25
- package/dist/assets/cesium/Workers/EllipseOutlineGeometry-96fd4ae1.js +0 -25
- package/dist/assets/cesium/Workers/EllipsoidGeodesic-8bfefbff.js +0 -25
- package/dist/assets/cesium/Workers/EllipsoidGeometry-377329b9.js +0 -25
- package/dist/assets/cesium/Workers/EllipsoidOutlineGeometry-e6e16e49.js +0 -25
- package/dist/assets/cesium/Workers/EllipsoidRhumbLine-03528f73.js +0 -25
- package/dist/assets/cesium/Workers/EllipsoidTangentPlane-c080fd1b.js +0 -25
- package/dist/assets/cesium/Workers/EncodedCartesian3-ea0e408f.js +0 -25
- package/dist/assets/cesium/Workers/FrustumGeometry-a8b5d817.js +0 -25
- package/dist/assets/cesium/Workers/GeometryAttribute-8458a8fd.js +0 -25
- package/dist/assets/cesium/Workers/GeometryAttributes-ac0f8485.js +0 -25
- package/dist/assets/cesium/Workers/GeometryInstance-ee3aa3ba.js +0 -25
- package/dist/assets/cesium/Workers/GeometryOffsetAttribute-08ae0c50.js +0 -25
- package/dist/assets/cesium/Workers/GeometryPipeline-33ca229c.js +0 -25
- package/dist/assets/cesium/Workers/IndexDatatype-e713bfd2.js +0 -25
- package/dist/assets/cesium/Workers/IntersectionTests-eb4db8e0.js +0 -25
- package/dist/assets/cesium/Workers/Matrix2-eefef8eb.js +0 -25
- package/dist/assets/cesium/Workers/OrientedBoundingBox-5193f9a2.js +0 -25
- package/dist/assets/cesium/Workers/Plane-b0299683.js +0 -25
- package/dist/assets/cesium/Workers/PolygonGeometryLibrary-b61295f3.js +0 -25
- package/dist/assets/cesium/Workers/PolygonPipeline-eb527514.js +0 -25
- package/dist/assets/cesium/Workers/PolylinePipeline-0f23dd84.js +0 -25
- package/dist/assets/cesium/Workers/PolylineVolumeGeometryLibrary-2d903430.js +0 -25
- package/dist/assets/cesium/Workers/PrimitivePipeline-e2640413.js +0 -25
- package/dist/assets/cesium/Workers/RectangleGeometryLibrary-ae8bf8a5.js +0 -25
- package/dist/assets/cesium/Workers/RuntimeError-5baf5c66.js +0 -25
- package/dist/assets/cesium/Workers/TerrainEncoding-bc10ab54.js +0 -25
- package/dist/assets/cesium/Workers/Transforms-d2e5867e.js +0 -63
- package/dist/assets/cesium/Workers/VertexFormat-5ec0d9ff.js +0 -25
- package/dist/assets/cesium/Workers/WallGeometryLibrary-1a33e416.js +0 -25
- package/dist/assets/cesium/Workers/WebGLConstants-5b50ced1.js +0 -25
- package/dist/assets/cesium/Workers/WebMercatorProjection-cd2f30c2.js +0 -25
- package/dist/assets/cesium/Workers/_commonjsHelpers-bc29abbc.js +0 -25
- package/dist/assets/cesium/Workers/arrayRemoveDuplicates-f13aceb1.js +0 -25
- package/dist/assets/cesium/Workers/combine-7533016d.js +0 -25
- package/dist/assets/cesium/Workers/defaultValue-0c475b81.js +0 -25
- package/dist/assets/cesium/Workers/package.json +0 -1
- package/dist/assets/ui.08c48f.css +0 -1
- package/plugins/@vcmap/pluginExample/config.json +0 -6
- package/plugins/@vcmap/pluginExample/package.json +0 -7
- package/plugins/categoryTest/ItemEditor.vue +0 -13
- package/plugins/test/allIconsComponent.vue +0 -50
- package/plugins/test/index.js +0 -209
- package/plugins/wizardExample/wizardExample.vue +0 -77
- package/src/components/form-inputs-controls/VcsColorPicker.vue +0 -85
@@ -1,25 +1,1516 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
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
|
+
}));
|