@cesium/engine 10.1.0 → 11.1.0
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/Build/Workers/{chunk-EB7PNZTK.js → chunk-26GA3JAM.js} +6 -5
- package/Build/Workers/{chunk-RZLZWKFN.js → chunk-27HUZ7SA.js} +4 -4
- package/Build/Workers/{chunk-A5CODJ4M.js → chunk-2ZGOQXYU.js} +6 -6
- package/Build/Workers/{chunk-TF776XCO.js → chunk-3Q2L65QU.js} +7 -7
- package/Build/Workers/{chunk-NVOABL76.js → chunk-472HQ3EH.js} +5 -5
- package/Build/Workers/{chunk-QX5XS4LC.js → chunk-5ODQSF26.js} +2 -2
- package/Build/Workers/{chunk-4YSNMHZ4.js → chunk-5OOFQLKF.js} +6 -6
- package/Build/Workers/{chunk-OXALEQPI.js → chunk-5PTXS2GO.js} +49 -23
- package/Build/Workers/{chunk-T77JILCU.js → chunk-6CHGCNMW.js} +2 -2
- package/Build/Workers/{chunk-FEVVHITK.js → chunk-76BYBWHP.js} +4 -4
- package/Build/Workers/{chunk-65MZOUNU.js → chunk-7BMOHCPM.js} +13 -13
- package/Build/Workers/{chunk-VE7BFUIX.js → chunk-7JO7GPJN.js} +1 -1
- package/Build/Workers/{chunk-5BLJ5ZM6.js → chunk-7KTQP4VB.js} +5 -5
- package/Build/Workers/{chunk-G5V4GPZE.js → chunk-7O373FFS.js} +8 -34
- package/Build/Workers/{chunk-S3PI2KFM.js → chunk-AD63PIY6.js} +2 -2
- package/Build/Workers/{chunk-6D66DPRV.js → chunk-BHQJ2NT7.js} +6 -6
- package/Build/Workers/{chunk-I2RC4XVN.js → chunk-C6YYBQXW.js} +4 -4
- package/Build/Workers/{chunk-X2ZQ7RJR.js → chunk-CKY7HOHV.js} +9 -9
- package/Build/Workers/{chunk-TO2PVHKI.js → chunk-DHYHSFFJ.js} +2 -2
- package/Build/Workers/{chunk-R6B7UCQB.js → chunk-DI5NGJUP.js} +2 -2
- package/Build/Workers/{chunk-X23FRWHJ.js → chunk-E27BLMDD.js} +7 -9
- package/Build/Workers/{chunk-N4QEHO3U.js → chunk-E63IIM5T.js} +1 -1
- package/Build/Workers/{chunk-BY3E4ONI.js → chunk-E6V6SQZW.js} +6 -6
- package/Build/Workers/{chunk-LSSWVB2X.js → chunk-EJZTDTUH.js} +4 -4
- package/Build/Workers/{chunk-XLTOBCDI.js → chunk-FDOV2LBJ.js} +7 -7
- package/Build/Workers/{chunk-ACRTCBN5.js → chunk-FIGIZHAQ.js} +11 -11
- package/Build/Workers/{chunk-4RMIRG6T.js → chunk-GESF4OXQ.js} +2 -2
- package/Build/Workers/{chunk-PNFHVBSF.js → chunk-GGZJN2TI.js} +16 -15
- package/Build/Workers/{chunk-KV4EQHK4.js → chunk-GNBFYG7F.js} +83 -79
- package/Build/Workers/{chunk-FOZWUH4T.js → chunk-GWCFU2SA.js} +7 -7
- package/Build/Workers/{chunk-Q55ECN3Y.js → chunk-I2ITFFPX.js} +1 -1
- package/Build/Workers/{chunk-XQI7XZHX.js → chunk-IBLIYJZR.js} +6 -6
- package/Build/Workers/{chunk-D2U4RI64.js → chunk-JW4FOI6M.js} +7 -7
- package/Build/Workers/{chunk-2J3JKXCP.js → chunk-K4GQUNB5.js} +9 -5
- package/Build/Workers/{chunk-POSRARY7.js → chunk-M3GMB5OP.js} +10 -10
- package/Build/Workers/{chunk-OOK53QUQ.js → chunk-MXIZJAPH.js} +1 -1
- package/Build/Workers/{chunk-OWGTMVDB.js → chunk-N5KJGGCM.js} +18 -20
- package/Build/Workers/{chunk-J7MQUQJY.js → chunk-NGPPMXRM.js} +12 -7
- package/Build/Workers/{chunk-OOMCT7OL.js → chunk-O3E4OAOE.js} +13 -13
- package/Build/Workers/{chunk-C3Z23UUJ.js → chunk-PGRPDNHG.js} +19 -23
- package/Build/Workers/{chunk-4VFBBNQ3.js → chunk-PRGYLLJT.js} +1 -1
- package/Build/Workers/{chunk-XZZNKIEV.js → chunk-S6MRMMQU.js} +6 -6
- package/Build/Workers/{chunk-76BYYG7N.js → chunk-SMDOP47J.js} +10 -10
- package/Build/Workers/{chunk-ZU334IDQ.js → chunk-TGONEMZO.js} +11 -11
- package/Build/Workers/{chunk-VRZ46QZ5.js → chunk-TKVT5GQM.js} +13 -13
- package/Build/Workers/{chunk-FDCLACT5.js → chunk-U72QNFOJ.js} +15 -25
- package/Build/Workers/{chunk-F3NDOSTZ.js → chunk-VJZB3WAV.js} +7 -7
- package/Build/Workers/{chunk-GPJR7MPQ.js → chunk-VU2MNO7L.js} +7 -7
- package/Build/Workers/{chunk-R4OIEIPE.js → chunk-XY4BATBS.js} +4 -4
- package/Build/Workers/{chunk-T6LPN7RI.js → chunk-YFXQECWV.js} +5 -5
- package/Build/Workers/{chunk-UCIPJSZX.js → chunk-YSGTGQQO.js} +14 -14
- package/Build/Workers/{chunk-BGE4QVG7.js → chunk-YZ733KKS.js} +12 -12
- package/Build/Workers/combineGeometry.js +23 -25
- package/Build/Workers/createBoxGeometry.js +16 -16
- package/Build/Workers/createBoxOutlineGeometry.js +14 -14
- package/Build/Workers/createCircleGeometry.js +24 -24
- package/Build/Workers/createCircleOutlineGeometry.js +17 -17
- package/Build/Workers/createCoplanarPolygonGeometry.js +31 -31
- package/Build/Workers/createCoplanarPolygonOutlineGeometry.js +29 -29
- package/Build/Workers/createCorridorGeometry.js +27 -27
- package/Build/Workers/createCorridorOutlineGeometry.js +26 -26
- package/Build/Workers/createCylinderGeometry.js +18 -18
- package/Build/Workers/createCylinderOutlineGeometry.js +16 -16
- package/Build/Workers/createEllipseGeometry.js +24 -24
- package/Build/Workers/createEllipseOutlineGeometry.js +17 -17
- package/Build/Workers/createEllipsoidGeometry.js +17 -17
- package/Build/Workers/createEllipsoidOutlineGeometry.js +16 -16
- package/Build/Workers/createFrustumGeometry.js +16 -16
- package/Build/Workers/createFrustumOutlineGeometry.js +16 -16
- package/Build/Workers/createGeometry.js +25 -26
- package/Build/Workers/createGroundPolylineGeometry.js +20 -20
- package/Build/Workers/createPlaneGeometry.js +14 -14
- package/Build/Workers/createPlaneOutlineGeometry.js +13 -13
- package/Build/Workers/createPolygonGeometry.js +36 -40
- package/Build/Workers/createPolygonOutlineGeometry.js +40 -48
- package/Build/Workers/createPolylineGeometry.js +23 -23
- package/Build/Workers/createPolylineVolumeGeometry.js +32 -31
- package/Build/Workers/createPolylineVolumeOutlineGeometry.js +25 -25
- package/Build/Workers/createRectangleGeometry.js +28 -30
- package/Build/Workers/createRectangleOutlineGeometry.js +19 -19
- package/Build/Workers/createSimplePolylineGeometry.js +21 -21
- package/Build/Workers/createSphereGeometry.js +17 -17
- package/Build/Workers/createSphereOutlineGeometry.js +16 -16
- package/Build/Workers/createTaskProcessorWorker.js +3 -3
- package/Build/Workers/createVectorTileClampedPolylines.js +13 -13
- package/Build/Workers/createVectorTileGeometries.js +22 -22
- package/Build/Workers/createVectorTilePoints.js +12 -12
- package/Build/Workers/createVectorTilePolygons.js +20 -20
- package/Build/Workers/createVectorTilePolylines.js +13 -13
- package/Build/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +22 -26
- package/Build/Workers/createVerticesFromHeightmap.js +26 -26
- package/Build/Workers/createVerticesFromQuantizedTerrainMesh.js +42 -32
- package/Build/Workers/createWallGeometry.js +22 -22
- package/Build/Workers/createWallOutlineGeometry.js +21 -21
- package/Build/Workers/decodeDraco.js +11 -11
- package/Build/Workers/decodeGoogleEarthEnterprisePacket.js +28 -5
- package/Build/Workers/decodeI3S.js +10 -10
- package/Build/Workers/transcodeKTX2.js +19 -18
- package/Build/Workers/transferTypedArrayTest.js +1 -1
- package/Build/Workers/upsampleQuantizedTerrainMesh.js +20 -20
- package/Source/Core/ApproximateTerrainHeights.js +15 -15
- package/Source/Core/ArcGISTiledElevationTerrainProvider.js +33 -35
- package/Source/Core/AttributeCompression.js +12 -12
- package/Source/Core/AxisAlignedBoundingBox.js +2 -2
- package/Source/Core/BingMapsGeocoderService.js +1 -1
- package/Source/Core/BoundingRectangle.js +3 -3
- package/Source/Core/BoundingSphere.js +44 -44
- package/Source/Core/BoxGeometry.js +6 -6
- package/Source/Core/BoxOutlineGeometry.js +3 -3
- package/Source/Core/Cartesian2.js +7 -7
- package/Source/Core/Cartesian3.js +20 -20
- package/Source/Core/Cartesian4.js +8 -8
- package/Source/Core/Cartographic.js +6 -6
- package/Source/Core/CatmullRomSpline.js +6 -6
- package/Source/Core/CesiumTerrainProvider.js +66 -68
- package/Source/Core/Check.d.ts +3 -3
- package/Source/Core/Check.js +11 -11
- package/Source/Core/CircleGeometry.js +6 -6
- package/Source/Core/CircleOutlineGeometry.js +4 -4
- package/Source/Core/Clock.js +4 -4
- package/Source/Core/Color.js +11 -8
- package/Source/Core/ColorGeometryInstanceAttribute.js +1 -1
- package/Source/Core/ComponentDatatype.js +4 -4
- package/Source/Core/CompressedTextureBuffer.js +13 -2
- package/Source/Core/ConstantSpline.js +1 -1
- package/Source/Core/CoplanarPolygonGeometry.js +44 -41
- package/Source/Core/CoplanarPolygonGeometryLibrary.js +5 -5
- package/Source/Core/CoplanarPolygonOutlineGeometry.js +6 -6
- package/Source/Core/CorridorGeometry.js +77 -77
- package/Source/Core/CorridorGeometryLibrary.js +45 -45
- package/Source/Core/CorridorOutlineGeometry.js +16 -16
- package/Source/Core/CullingVolume.js +4 -4
- package/Source/Core/CustomHeightmapTerrainProvider.js +13 -13
- package/Source/Core/CylinderGeometry.js +8 -8
- package/Source/Core/CylinderGeometryLibrary.js +1 -1
- package/Source/Core/CylinderOutlineGeometry.js +4 -4
- package/Source/Core/DeveloperError.js +1 -1
- package/Source/Core/DistanceDisplayConditionGeometryInstanceAttribute.js +20 -21
- package/Source/Core/DoubleEndedPriorityQueue.js +2 -2
- package/Source/Core/EarthOrientationParameters.js +21 -25
- package/Source/Core/EarthOrientationParametersSample.js +1 -1
- package/Source/Core/EllipseGeometry.js +54 -55
- package/Source/Core/EllipseGeometryLibrary.js +12 -12
- package/Source/Core/EllipseOutlineGeometry.js +19 -19
- package/Source/Core/Ellipsoid.js +25 -33
- package/Source/Core/EllipsoidGeodesic.js +17 -16
- package/Source/Core/EllipsoidGeometry.js +9 -8
- package/Source/Core/EllipsoidOutlineGeometry.js +4 -4
- package/Source/Core/EllipsoidRhumbLine.js +33 -32
- package/Source/Core/EllipsoidTangentPlane.js +16 -16
- package/Source/Core/EllipsoidTerrainProvider.js +11 -10
- package/Source/Core/EllipsoidalOccluder.js +110 -130
- package/Source/Core/FeatureDetection.js +4 -4
- package/Source/Core/FrustumGeometry.js +14 -14
- package/Source/Core/FrustumOutlineGeometry.js +4 -4
- package/Source/Core/GeographicTilingScheme.js +6 -6
- package/Source/Core/Geometry.js +15 -17
- package/Source/Core/GeometryAttribute.js +4 -9
- package/Source/Core/GeometryAttributes.js +6 -6
- package/Source/Core/GeometryInstance.js +3 -4
- package/Source/Core/GeometryInstanceAttribute.js +1 -6
- package/Source/Core/GeometryPipeline.js +133 -137
- package/Source/Core/GoogleEarthEnterpriseMetadata.js +19 -20
- package/Source/Core/GoogleEarthEnterpriseTerrainData.js +25 -24
- package/Source/Core/GoogleEarthEnterpriseTerrainProvider.js +17 -21
- package/Source/Core/GoogleEarthEnterpriseTileInformation.js +2 -2
- package/Source/Core/GoogleMaps.js +1 -1
- package/Source/Core/GregorianDate.js +4 -4
- package/Source/Core/GroundPolylineGeometry.js +104 -104
- package/Source/Core/HeadingPitchRoll.js +7 -7
- package/Source/Core/HeightmapTerrainData.js +58 -54
- package/Source/Core/HeightmapTessellator.js +22 -23
- package/Source/Core/HermitePolynomialApproximation.js +8 -8
- package/Source/Core/HermiteSpline.js +11 -11
- package/Source/Core/HilbertOrder.js +1 -1
- package/Source/Core/Iau2006XysData.js +6 -6
- package/Source/Core/IauOrientationAxes.js +2 -2
- package/Source/Core/IauOrientationParameters.js +1 -1
- package/Source/Core/IndexDatatype.js +5 -5
- package/Source/Core/IntersectionTests.js +36 -78
- package/Source/Core/Intersections2D.js +3 -3
- package/Source/Core/Ion.js +1 -1
- package/Source/Core/IonGeocoderService.js +2 -2
- package/Source/Core/IonResource.js +5 -5
- package/Source/Core/Iso8601.js +3 -3
- package/Source/Core/JulianDate.js +23 -33
- package/Source/Core/KTX2Transcoder.js +11 -18
- package/Source/Core/LagrangePolynomialApproximation.js +1 -1
- package/Source/Core/LinearApproximation.js +4 -4
- package/Source/Core/LinearSpline.js +2 -2
- package/Source/Core/Math.js +4 -4
- package/Source/Core/Matrix2.js +3 -3
- package/Source/Core/Matrix3.js +16 -16
- package/Source/Core/Matrix4.js +31 -31
- package/Source/Core/MorphWeightSpline.js +2 -2
- package/Source/Core/NearFarScalar.js +1 -1
- package/Source/Core/Occluder.js +52 -56
- package/Source/Core/OpenCageGeocoderService.js +2 -2
- package/Source/Core/OrientedBoundingBox.js +52 -51
- package/Source/Core/OrthographicFrustum.js +11 -11
- package/Source/Core/OrthographicOffCenterFrustum.js +17 -17
- package/Source/Core/PeliasGeocoderService.js +1 -1
- package/Source/Core/PerspectiveFrustum.js +61 -55
- package/Source/Core/PerspectiveOffCenterFrustum.js +58 -59
- package/Source/Core/PinBuilder.js +1 -1
- package/Source/Core/PixelFormat.js +7 -21
- package/Source/Core/Plane.js +9 -9
- package/Source/Core/PlaneGeometry.js +1 -1
- package/Source/Core/PolygonGeometry.js +95 -94
- package/Source/Core/PolygonGeometryLibrary.js +49 -51
- package/Source/Core/PolygonOutlineGeometry.js +49 -51
- package/Source/Core/PolygonPipeline.js +31 -31
- package/Source/Core/PolylineGeometry.js +10 -10
- package/Source/Core/PolylinePipeline.js +25 -25
- package/Source/Core/PolylineVolumeGeometry.js +9 -9
- package/Source/Core/PolylineVolumeGeometryLibrary.js +51 -51
- package/Source/Core/PolylineVolumeOutlineGeometry.js +6 -6
- package/Source/Core/QuadraticRealPolynomial.js +1 -1
- package/Source/Core/QuantizedMeshTerrainData.js +28 -28
- package/Source/Core/QuarticRealPolynomial.js +1 -1
- package/Source/Core/Quaternion.js +19 -19
- package/Source/Core/QuaternionSpline.js +2 -2
- package/Source/Core/Rectangle.js +34 -13
- package/Source/Core/RectangleCollisionChecker.js +3 -3
- package/Source/Core/RectangleGeometry.js +55 -56
- package/Source/Core/RectangleGeometryLibrary.js +8 -8
- package/Source/Core/RectangleOutlineGeometry.js +20 -20
- package/Source/Core/RequestScheduler.js +6 -6
- package/Source/Core/Resource.js +24 -24
- package/Source/Core/S2Cell.js +16 -80
- package/Source/Core/ScreenSpaceEventHandler.js +54 -53
- package/Source/Core/Simon1994PlanetaryPositions.js +13 -13
- package/Source/Core/SimplePolylineGeometry.js +7 -7
- package/Source/Core/SphereGeometry.js +2 -2
- package/Source/Core/SphereOutlineGeometry.js +3 -3
- package/Source/Core/Spline.js +1 -1
- package/Source/Core/SteppedSpline.js +1 -1
- package/Source/Core/Stereographic.js +9 -9
- package/Source/Core/TaskProcessor.js +13 -13
- package/Source/Core/TerrainEncoding.js +33 -38
- package/Source/Core/TerrainMesh.js +1 -1
- package/Source/Core/TerrainProvider.js +12 -12
- package/Source/Core/TileAvailability.js +28 -28
- package/Source/Core/TileProviderError.js +5 -5
- package/Source/Core/TilingScheme.js +1 -1
- package/Source/Core/TimeInterval.js +4 -4
- package/Source/Core/TimeIntervalCollection.js +16 -15
- package/Source/Core/Tipsify.js +2 -2
- package/Source/Core/Transforms.js +52 -54
- package/Source/Core/TranslationRotationScale.js +1 -1
- package/Source/Core/TridiagonalSystemSolver.js +4 -4
- package/Source/Core/VRTheWorldTerrainProvider.js +28 -26
- package/Source/Core/VertexFormat.js +6 -6
- package/Source/Core/VerticalExaggeration.js +4 -4
- package/Source/Core/VideoSynchronizer.js +1 -1
- package/Source/Core/WallGeometry.js +18 -18
- package/Source/Core/WallGeometryLibrary.js +7 -7
- package/Source/Core/WallOutlineGeometry.js +8 -8
- package/Source/Core/WebMercatorProjection.js +5 -6
- package/Source/Core/WebMercatorTilingScheme.js +13 -13
- package/Source/Core/WireframeIndexGenerator.js +8 -8
- package/Source/Core/arrayRemoveDuplicates.js +1 -1
- package/Source/Core/buildModuleUrl.js +2 -2
- package/Source/Core/decodeGoogleEarthEnterpriseData.js +3 -3
- package/Source/Core/decodeVectorPolylinePositions.js +4 -4
- package/Source/Core/destroyObject.js +1 -1
- package/Source/Core/getJsonFromTypedArray.js +1 -1
- package/Source/Core/getMagic.js +1 -1
- package/Source/Core/loadImageFromTypedArray.js +2 -2
- package/Source/Core/loadKTX2.js +1 -1
- package/Source/Core/pointInsideTriangle.js +1 -1
- package/Source/Core/resizeImageToNextPowerOfTwo.js +1 -1
- package/Source/Core/sampleTerrain.js +7 -7
- package/Source/Core/sampleTerrainMostDetailed.js +7 -7
- package/Source/Core/scaleToGeodeticSurface.js +3 -3
- package/Source/Core/srgbToLinear.js +1 -1
- package/Source/Core/writeTextToCanvas.js +1 -1
- package/Source/DataSources/BillboardGraphics.js +13 -13
- package/Source/DataSources/BillboardVisualizer.js +24 -24
- package/Source/DataSources/BoxGeometryUpdater.js +33 -32
- package/Source/DataSources/BoxGraphics.js +3 -3
- package/Source/DataSources/CallbackPositionProperty.js +173 -0
- package/Source/DataSources/CallbackProperty.js +8 -2
- package/Source/DataSources/Cesium3DTilesetGraphics.js +1 -1
- package/Source/DataSources/Cesium3DTilesetVisualizer.js +6 -6
- package/Source/DataSources/CheckerboardMaterialProperty.js +9 -3
- package/Source/DataSources/ColorMaterialProperty.js +8 -2
- package/Source/DataSources/CompositeEntityCollection.js +14 -15
- package/Source/DataSources/CompositeMaterialProperty.js +10 -11
- package/Source/DataSources/CompositePositionProperty.js +11 -6
- package/Source/DataSources/CompositeProperty.js +7 -7
- package/Source/DataSources/ConstantPositionProperty.js +9 -3
- package/Source/DataSources/CorridorGeometryUpdater.js +61 -56
- package/Source/DataSources/CorridorGraphics.js +6 -6
- package/Source/DataSources/CylinderGeometryUpdater.js +42 -40
- package/Source/DataSources/CylinderGraphics.js +4 -4
- package/Source/DataSources/CzmlDataSource.js +365 -368
- package/Source/DataSources/DataSourceCollection.js +1 -1
- package/Source/DataSources/DataSourceDisplay.js +23 -23
- package/Source/DataSources/DynamicGeometryBatch.js +2 -2
- package/Source/DataSources/DynamicGeometryUpdater.js +14 -18
- package/Source/DataSources/EllipseGeometryUpdater.js +67 -63
- package/Source/DataSources/EllipseGraphics.js +7 -7
- package/Source/DataSources/EllipsoidGeometryUpdater.js +88 -86
- package/Source/DataSources/EllipsoidGraphics.js +5 -5
- package/Source/DataSources/Entity.js +14 -14
- package/Source/DataSources/EntityCluster.js +29 -27
- package/Source/DataSources/EntityCollection.js +7 -7
- package/Source/DataSources/EntityView.js +23 -23
- package/Source/DataSources/GeoJsonDataSource.js +25 -25
- package/Source/DataSources/GeometryUpdater.js +9 -10
- package/Source/DataSources/GeometryUpdaterSet.js +3 -3
- package/Source/DataSources/GeometryVisualizer.js +65 -71
- package/Source/DataSources/GpxDataSource.js +10 -10
- package/Source/DataSources/GridMaterialProperty.js +12 -6
- package/Source/DataSources/GroundGeometryUpdater.js +6 -6
- package/Source/DataSources/ImageMaterialProperty.js +10 -3
- package/Source/DataSources/KmlDataSource.js +212 -212
- package/Source/DataSources/LabelGraphics.js +14 -14
- package/Source/DataSources/LabelVisualizer.js +24 -24
- package/Source/DataSources/MaterialProperty.js +7 -1
- package/Source/DataSources/ModelGraphics.js +37 -17
- package/Source/DataSources/ModelVisualizer.js +41 -32
- package/Source/DataSources/NodeTransformationProperty.js +10 -4
- package/Source/DataSources/PathGraphics.js +2 -2
- package/Source/DataSources/PathVisualizer.js +99 -35
- package/Source/DataSources/PlaneGeometryUpdater.js +38 -37
- package/Source/DataSources/PlaneGraphics.js +2 -2
- package/Source/DataSources/PointGraphics.js +8 -8
- package/Source/DataSources/PointVisualizer.js +29 -29
- package/Source/DataSources/PolygonGeometryUpdater.js +68 -64
- package/Source/DataSources/PolygonGraphics.js +9 -9
- package/Source/DataSources/PolylineArrowMaterialProperty.js +8 -2
- package/Source/DataSources/PolylineDashMaterialProperty.js +11 -5
- package/Source/DataSources/PolylineGeometryUpdater.js +39 -44
- package/Source/DataSources/PolylineGlowMaterialProperty.js +10 -4
- package/Source/DataSources/PolylineGraphics.js +4 -4
- package/Source/DataSources/PolylineOutlineMaterialProperty.js +10 -4
- package/Source/DataSources/PolylineVisualizer.js +39 -43
- package/Source/DataSources/PolylineVolumeGeometryUpdater.js +70 -68
- package/Source/DataSources/PolylineVolumeGraphics.js +2 -2
- package/Source/DataSources/PositionProperty.js +5 -4
- package/Source/DataSources/PositionPropertyArray.js +10 -4
- package/Source/DataSources/Property.js +2 -2
- package/Source/DataSources/PropertyArray.js +6 -6
- package/Source/DataSources/PropertyBag.js +10 -9
- package/Source/DataSources/RectangleGeometryUpdater.js +68 -63
- package/Source/DataSources/RectangleGraphics.js +6 -6
- package/Source/DataSources/ReferenceProperty.js +13 -7
- package/Source/DataSources/Rotation.js +2 -2
- package/Source/DataSources/SampledPositionProperty.js +13 -7
- package/Source/DataSources/SampledProperty.js +22 -20
- package/Source/DataSources/ScaledPositionProperty.js +8 -2
- package/Source/DataSources/StaticGeometryColorBatch.js +41 -41
- package/Source/DataSources/StaticGeometryPerMaterialBatch.js +40 -40
- package/Source/DataSources/StaticGroundGeometryColorBatch.js +26 -27
- package/Source/DataSources/StaticGroundGeometryPerMaterialBatch.js +46 -44
- package/Source/DataSources/StaticGroundPolylinePerMaterialBatch.js +44 -43
- package/Source/DataSources/StaticOutlineGeometryBatch.js +28 -29
- package/Source/DataSources/StripeMaterialProperty.js +9 -3
- package/Source/DataSources/TerrainOffsetProperty.js +20 -11
- package/Source/DataSources/TimeIntervalCollectionPositionProperty.js +35 -31
- package/Source/DataSources/TimeIntervalCollectionProperty.js +6 -6
- package/Source/DataSources/VelocityOrientationProperty.js +9 -4
- package/Source/DataSources/VelocityVectorProperty.js +7 -9
- package/Source/DataSources/WallGeometryUpdater.js +25 -25
- package/Source/DataSources/WallGraphics.js +4 -4
- package/Source/DataSources/createPropertyDescriptor.js +3 -3
- package/Source/DataSources/exportKml.js +90 -86
- package/Source/DataSources/getElement.js +1 -1
- package/Source/DataSources/heightReferenceOnEntityPropertyChanged.js +4 -4
- package/Source/Renderer/AutomaticUniforms.js +3 -18
- package/Source/Renderer/Buffer.js +18 -18
- package/Source/Renderer/ClearCommand.js +1 -1
- package/Source/Renderer/ComputeEngine.js +1 -1
- package/Source/Renderer/Context.js +55 -40
- package/Source/Renderer/CubeMap.js +332 -354
- package/Source/Renderer/CubeMapFace.js +43 -65
- package/Source/Renderer/DrawCommand.js +50 -5
- package/Source/Renderer/Framebuffer.js +48 -49
- package/Source/Renderer/FramebufferManager.js +40 -34
- package/Source/Renderer/MultisampleFramebuffer.js +35 -14
- package/Source/Renderer/PixelDatatype.js +23 -0
- package/Source/Renderer/RenderState.js +36 -36
- package/Source/Renderer/Renderbuffer.js +3 -3
- package/Source/Renderer/Sampler.js +9 -15
- package/Source/Renderer/ShaderBuilder.js +8 -8
- package/Source/Renderer/ShaderCache.js +11 -15
- package/Source/Renderer/ShaderFunction.js +1 -1
- package/Source/Renderer/ShaderProgram.js +22 -15
- package/Source/Renderer/ShaderSource.js +40 -40
- package/Source/Renderer/Texture.js +455 -380
- package/Source/Renderer/UniformState.js +68 -80
- package/Source/Renderer/VertexArray.js +20 -20
- package/Source/Renderer/VertexArrayFacade.js +15 -16
- package/Source/Renderer/createUniform.js +1 -1
- package/Source/Renderer/createUniformArray.js +4 -4
- package/Source/Renderer/demodernizeShader.js +7 -5
- package/Source/Renderer/loadCubeMap.js +3 -8
- package/Source/Scene/ArcGisMapServerImageryProvider.js +39 -45
- package/Source/Scene/ArcGisMapService.js +4 -7
- package/Source/Scene/AutoExposure.js +4 -5
- package/Source/Scene/Axis.js +6 -6
- package/Source/Scene/B3dmParser.js +9 -9
- package/Source/Scene/BatchTable.js +7 -7
- package/Source/Scene/BatchTableHierarchy.js +62 -59
- package/Source/Scene/BatchTexture.js +2 -2
- package/Source/Scene/Billboard.js +45 -43
- package/Source/Scene/BillboardCollection.js +81 -83
- package/Source/Scene/BingMapsImageryProvider.js +13 -13
- package/Source/Scene/BoundingVolumeSemantics.js +10 -10
- package/Source/Scene/BoxEmitter.js +1 -1
- package/Source/Scene/BufferLoader.js +1 -1
- package/Source/Scene/Camera.js +161 -164
- package/Source/Scene/CameraEventAggregator.js +67 -23
- package/Source/Scene/CameraFlightPath.js +25 -25
- package/Source/Scene/Cesium3DTile.js +89 -95
- package/Source/Scene/Cesium3DTileBatchTable.js +61 -61
- package/Source/Scene/Cesium3DTileContentFactory.js +7 -7
- package/Source/Scene/Cesium3DTileFeature.js +1 -1
- package/Source/Scene/Cesium3DTileFeatureTable.js +8 -8
- package/Source/Scene/Cesium3DTileOptimizations.js +1 -1
- package/Source/Scene/Cesium3DTilePointFeature.js +11 -11
- package/Source/Scene/Cesium3DTileStyle.js +26 -24
- package/Source/Scene/Cesium3DTilesVoxelProvider.js +14 -20
- package/Source/Scene/Cesium3DTileset.js +81 -83
- package/Source/Scene/Cesium3DTilesetBaseTraversal.js +8 -16
- package/Source/Scene/Cesium3DTilesetCache.js +2 -2
- package/Source/Scene/Cesium3DTilesetHeatmap.js +5 -5
- package/Source/Scene/Cesium3DTilesetMetadata.js +2 -2
- package/Source/Scene/Cesium3DTilesetMostDetailedTraversal.js +2 -2
- package/Source/Scene/Cesium3DTilesetSkipTraversal.js +8 -12
- package/Source/Scene/Cesium3DTilesetStatistics.js +1 -1
- package/Source/Scene/Cesium3DTilesetTraversal.js +8 -10
- package/Source/Scene/ClassificationPrimitive.js +70 -69
- package/Source/Scene/ClippingPlaneCollection.js +39 -41
- package/Source/Scene/ClippingPolygon.js +8 -8
- package/Source/Scene/ClippingPolygonCollection.js +62 -63
- package/Source/Scene/CloudCollection.js +3 -10
- package/Source/Scene/Composite3DTileContent.js +6 -6
- package/Source/Scene/ConditionsExpression.js +5 -5
- package/Source/Scene/ContentMetadata.js +4 -4
- package/Source/Scene/CreditDisplay.js +8 -8
- package/Source/Scene/CumulusCloud.js +4 -4
- package/Source/Scene/DebugAppearance.js +2 -2
- package/Source/Scene/DebugCameraPrimitive.js +2 -2
- package/Source/Scene/DebugInspector.js +3 -3
- package/Source/Scene/DebugModelMatrixPrimitive.js +4 -4
- package/Source/Scene/DepthPlane.js +7 -7
- package/Source/Scene/DerivedCommand.js +422 -238
- package/Source/Scene/DiscardMissingTileImagePolicy.js +1 -1
- package/Source/Scene/DracoLoader.js +3 -3
- package/Source/Scene/EllipsoidPrimitive.js +7 -7
- package/Source/Scene/EllipsoidSurfaceAppearance.js +3 -3
- package/Source/Scene/Empty3DTileContent.js +1 -1
- package/Source/Scene/Expression.js +91 -91
- package/Source/Scene/Fog.js +8 -41
- package/Source/Scene/FrameRateMonitor.js +22 -22
- package/Source/Scene/FrameState.js +31 -0
- package/Source/Scene/Geometry3DTileContent.js +20 -20
- package/Source/Scene/GetFeatureInfoFormat.js +15 -14
- package/Source/Scene/Globe.js +33 -28
- package/Source/Scene/GlobeDepth.js +95 -66
- package/Source/Scene/GlobeSurfaceShaderSet.js +41 -34
- package/Source/Scene/GlobeSurfaceTile.js +33 -33
- package/Source/Scene/GlobeSurfaceTileProvider.js +132 -127
- package/Source/Scene/GlobeTranslucency.js +4 -4
- package/Source/Scene/GlobeTranslucencyFramebuffer.js +9 -9
- package/Source/Scene/GlobeTranslucencyState.js +53 -55
- package/Source/Scene/GltfBufferViewLoader.js +2 -2
- package/Source/Scene/GltfIndexBufferLoader.js +5 -5
- package/Source/Scene/GltfJsonLoader.js +2 -2
- package/Source/Scene/GltfLoader.js +177 -100
- package/Source/Scene/GltfStructuralMetadataLoader.js +9 -8
- package/Source/Scene/GltfTextureLoader.js +5 -5
- package/Source/Scene/GltfVertexBufferLoader.js +12 -13
- package/Source/Scene/GoogleEarthEnterpriseImageryProvider.js +9 -9
- package/Source/Scene/GoogleEarthEnterpriseMapsProvider.js +9 -9
- package/Source/Scene/GridImageryProvider.js +2 -2
- package/Source/Scene/GroundPolylinePrimitive.js +38 -39
- package/Source/Scene/GroundPrimitive.js +47 -45
- package/Source/Scene/GroupMetadata.js +4 -4
- package/Source/Scene/I3SDataProvider.js +12 -12
- package/Source/Scene/I3SDecoder.js +7 -8
- package/Source/Scene/I3SField.js +8 -8
- package/Source/Scene/I3SGeometry.js +14 -14
- package/Source/Scene/I3SLayer.js +26 -20
- package/Source/Scene/I3SNode.js +17 -17
- package/Source/Scene/I3SSublayer.js +4 -4
- package/Source/Scene/I3SSymbology.js +8 -8
- package/Source/Scene/I3dmParser.js +9 -9
- package/Source/Scene/ImageBasedLighting.js +58 -56
- package/Source/Scene/Imagery.js +3 -3
- package/Source/Scene/ImageryLayer.js +64 -66
- package/Source/Scene/ImageryLayerCollection.js +13 -15
- package/Source/Scene/ImageryLayerFeatureInfo.js +19 -20
- package/Source/Scene/ImageryProvider.js +1 -1
- package/Source/Scene/Implicit3DTileContent.js +34 -37
- package/Source/Scene/ImplicitAvailabilityBitstream.js +2 -2
- package/Source/Scene/ImplicitMetadataView.js +2 -2
- package/Source/Scene/ImplicitSubtree.js +29 -30
- package/Source/Scene/ImplicitSubtreeCache.js +1 -1
- package/Source/Scene/ImplicitSubtreeMetadata.js +5 -5
- package/Source/Scene/ImplicitTileCoordinates.js +11 -11
- package/Source/Scene/ImplicitTileset.js +2 -2
- package/Source/Scene/InvertClassification.js +7 -7
- package/Source/Scene/IonImageryProvider.js +6 -6
- package/Source/Scene/JobScheduler.js +4 -4
- package/Source/Scene/Label.js +31 -31
- package/Source/Scene/LabelCollection.js +17 -15
- package/Source/Scene/MapboxImageryProvider.js +3 -3
- package/Source/Scene/MapboxStyleImageryProvider.js +4 -4
- package/Source/Scene/Material.js +50 -29
- package/Source/Scene/MaterialAppearance.js +4 -4
- package/Source/Scene/Megatexture.js +21 -24
- package/Source/Scene/MetadataClassProperty.js +11 -11
- package/Source/Scene/MetadataComponentType.js +1 -1
- package/Source/Scene/MetadataEntity.js +8 -8
- package/Source/Scene/MetadataEnum.js +1 -1
- package/Source/Scene/MetadataPicking.js +305 -0
- package/Source/Scene/MetadataSchemaLoader.js +1 -1
- package/Source/Scene/MetadataTable.js +2 -2
- package/Source/Scene/MetadataTableProperty.js +22 -22
- package/Source/Scene/Model/AlphaPipelineStage.js +2 -2
- package/Source/Scene/Model/AtmospherePipelineStage.js +3 -3
- package/Source/Scene/Model/B3dmLoader.js +8 -8
- package/Source/Scene/Model/BatchTexturePipelineStage.js +2 -2
- package/Source/Scene/Model/CPUStylingPipelineStage.js +4 -4
- package/Source/Scene/Model/ClassificationModelDrawCommand.js +8 -8
- package/Source/Scene/Model/ClassificationPipelineStage.js +5 -5
- package/Source/Scene/Model/CustomShader.js +9 -9
- package/Source/Scene/Model/CustomShaderPipelineStage.js +37 -38
- package/Source/Scene/Model/DequantizationPipelineStage.js +5 -5
- package/Source/Scene/Model/Extensions/Gpm/AnchorPointDirect.js +61 -0
- package/Source/Scene/Model/Extensions/Gpm/AnchorPointIndirect.js +77 -0
- package/Source/Scene/Model/Extensions/Gpm/CorrelationGroup.js +81 -0
- package/Source/Scene/Model/Extensions/Gpm/GltfGpmLoader.js +248 -0
- package/Source/Scene/Model/Extensions/Gpm/GltfGpmLocal.js +179 -0
- package/Source/Scene/Model/Extensions/Gpm/GltfMeshPrimitiveGpmLoader.js +548 -0
- package/Source/Scene/Model/Extensions/Gpm/MeshPrimitiveGpmLocal.js +28 -0
- package/Source/Scene/Model/Extensions/Gpm/PpeMetadata.js +79 -0
- package/Source/Scene/Model/Extensions/Gpm/PpeSource.js +75 -0
- package/Source/Scene/Model/Extensions/Gpm/PpeTexture.js +127 -0
- package/Source/Scene/Model/Extensions/Gpm/Spdcf.js +103 -0
- package/Source/Scene/Model/Extensions/Gpm/StorageType.js +30 -0
- package/Source/Scene/Model/FeatureIdPipelineStage.js +40 -40
- package/Source/Scene/Model/GeoJsonLoader.js +17 -17
- package/Source/Scene/Model/GeometryPipelineStage.js +23 -24
- package/Source/Scene/Model/I3dmLoader.js +36 -36
- package/Source/Scene/Model/ImageBasedLightingPipelineStage.js +22 -30
- package/Source/Scene/Model/InstancingPipelineStage.js +86 -86
- package/Source/Scene/Model/LightingPipelineStage.js +4 -4
- package/Source/Scene/Model/MaterialPipelineStage.js +78 -93
- package/Source/Scene/Model/MetadataPickingPipelineStage.js +96 -0
- package/Source/Scene/Model/MetadataPipelineStage.js +39 -47
- package/Source/Scene/Model/Model.js +134 -54
- package/Source/Scene/Model/Model3DTileContent.js +32 -13
- package/Source/Scene/Model/ModelAnimationChannel.js +2 -2
- package/Source/Scene/Model/ModelAnimationCollection.js +9 -9
- package/Source/Scene/Model/ModelArticulation.js +2 -2
- package/Source/Scene/Model/ModelArticulationStage.js +4 -4
- package/Source/Scene/Model/ModelClippingPlanesPipelineStage.js +11 -11
- package/Source/Scene/Model/ModelClippingPolygonsPipelineStage.js +6 -6
- package/Source/Scene/Model/ModelColorPipelineStage.js +12 -13
- package/Source/Scene/Model/ModelDrawCommand.js +5 -5
- package/Source/Scene/Model/{buildDrawCommand.js → ModelDrawCommands.js} +85 -28
- package/Source/Scene/Model/ModelFeatureTable.js +5 -5
- package/Source/Scene/Model/ModelMatrixUpdateStage.js +24 -12
- package/Source/Scene/Model/ModelRenderResources.js +1 -1
- package/Source/Scene/Model/ModelRuntimeNode.js +15 -15
- package/Source/Scene/Model/ModelRuntimePrimitive.js +8 -5
- package/Source/Scene/Model/ModelSceneGraph.js +42 -43
- package/Source/Scene/Model/ModelSilhouettePipelineStage.js +4 -4
- package/Source/Scene/Model/ModelSkin.js +4 -4
- package/Source/Scene/Model/ModelSplitterPipelineStage.js +8 -9
- package/Source/Scene/Model/ModelUtility.js +5 -5
- package/Source/Scene/Model/MorphTargetsPipelineStage.js +18 -18
- package/Source/Scene/Model/NodeRenderResources.js +1 -1
- package/Source/Scene/Model/NodeStatisticsPipelineStage.js +1 -1
- package/Source/Scene/Model/PickingPipelineStage.js +5 -5
- package/Source/Scene/Model/PntsLoader.js +7 -7
- package/Source/Scene/Model/PointCloudStylingPipelineStage.js +22 -23
- package/Source/Scene/Model/PrimitiveOutlineGenerator.js +6 -6
- package/Source/Scene/Model/PrimitiveOutlinePipelineStage.js +7 -7
- package/Source/Scene/Model/PrimitiveRenderResources.js +3 -3
- package/Source/Scene/Model/PrimitiveStatisticsPipelineStage.js +1 -1
- package/Source/Scene/Model/SceneMode2DPipelineStage.js +23 -23
- package/Source/Scene/Model/SelectedFeatureIdPipelineStage.js +10 -14
- package/Source/Scene/Model/SkinningPipelineStage.js +5 -5
- package/Source/Scene/Model/StyleCommandsNeeded.js +1 -1
- package/Source/Scene/Model/TextureManager.js +2 -2
- package/Source/Scene/Model/TextureUniform.js +3 -3
- package/Source/Scene/Model/TilesetPipelineStage.js +2 -2
- package/Source/Scene/Model/VerticalExaggerationPipelineStage.js +4 -4
- package/Source/Scene/Model/WireframePipelineStage.js +7 -7
- package/Source/Scene/Model/pickModel.js +26 -26
- package/Source/Scene/ModelComponents.js +13 -4
- package/Source/Scene/Moon.js +6 -5
- package/Source/Scene/Multiple3DTileContent.js +15 -14
- package/Source/Scene/OIT.js +48 -97
- package/Source/Scene/OpenStreetMapImageryProvider.js +8 -7
- package/Source/Scene/OrderedGroundPrimitiveCollection.js +2 -2
- package/Source/Scene/Particle.js +3 -3
- package/Source/Scene/ParticleEmitter.js +1 -1
- package/Source/Scene/ParticleSystem.js +32 -32
- package/Source/Scene/PerInstanceColorAppearance.js +1 -1
- package/Source/Scene/PickDepth.js +16 -4
- package/Source/Scene/PickDepthFramebuffer.js +1 -1
- package/Source/Scene/PickFramebuffer.js +24 -12
- package/Source/Scene/PickedMetadataInfo.js +39 -0
- package/Source/Scene/Picking.js +270 -120
- package/Source/Scene/PntsParser.js +28 -28
- package/Source/Scene/PointCloud.js +39 -38
- package/Source/Scene/PointCloudEyeDomeLighting.js +6 -6
- package/Source/Scene/PointCloudShading.js +3 -3
- package/Source/Scene/PointPrimitive.js +31 -28
- package/Source/Scene/PointPrimitiveCollection.js +34 -33
- package/Source/Scene/Polyline.js +9 -9
- package/Source/Scene/PolylineCollection.js +55 -57
- package/Source/Scene/PolylineColorAppearance.js +3 -3
- package/Source/Scene/PolylineMaterialAppearance.js +3 -3
- package/Source/Scene/PostProcessStage.js +95 -115
- package/Source/Scene/PostProcessStageCollection.js +73 -49
- package/Source/Scene/PostProcessStageComposite.js +2 -2
- package/Source/Scene/PostProcessStageLibrary.js +30 -4
- package/Source/Scene/PostProcessStageTextureCache.js +10 -10
- package/Source/Scene/Primitive.js +93 -93
- package/Source/Scene/PrimitiveCollection.js +1 -1
- package/Source/Scene/PrimitiveLoadPlan.js +1 -1
- package/Source/Scene/PrimitivePipeline.js +30 -30
- package/Source/Scene/PropertyTable.js +5 -5
- package/Source/Scene/PropertyTextureProperty.js +36 -7
- package/Source/Scene/QuadtreePrimitive.js +56 -58
- package/Source/Scene/QuadtreeTile.js +4 -4
- package/Source/Scene/QuadtreeTileProvider.js +1 -1
- package/Source/Scene/ResourceCache.js +7 -7
- package/Source/Scene/ResourceCacheKey.js +15 -15
- package/Source/Scene/Scene.js +897 -677
- package/Source/Scene/SceneFramebuffer.js +2 -2
- package/Source/Scene/SceneTransforms.js +30 -92
- package/Source/Scene/SceneTransitioner.js +47 -47
- package/Source/Scene/ScreenSpaceCameraController.js +171 -157
- package/Source/Scene/SensorVolumePortionToDisplay.js +1 -1
- package/Source/Scene/ShadowMap.js +71 -72
- package/Source/Scene/ShadowMapShader.js +9 -9
- package/Source/Scene/ShadowVolumeAppearance.js +39 -39
- package/Source/Scene/SingleTileImageryProvider.js +3 -3
- package/Source/Scene/SkyAtmosphere.js +8 -8
- package/Source/Scene/SkyBox.js +17 -24
- package/Source/Scene/SpatialNode.js +13 -13
- package/Source/Scene/SpecularEnvironmentCubeMap.js +240 -0
- package/Source/Scene/SphereEmitter.js +1 -1
- package/Source/Scene/StructuralMetadata.js +1 -1
- package/Source/Scene/StyleExpression.js +1 -1
- package/Source/Scene/Sun.js +11 -7
- package/Source/Scene/SunPostProcess.js +6 -6
- package/Source/Scene/TerrainFillMesh.js +157 -156
- package/Source/Scene/TextureAtlas.js +11 -11
- package/Source/Scene/TileBoundingRegion.js +31 -31
- package/Source/Scene/TileBoundingS2Cell.js +37 -40
- package/Source/Scene/TileBoundingSphere.js +2 -2
- package/Source/Scene/TileCoordinatesImageryProvider.js +3 -3
- package/Source/Scene/TileImagery.js +7 -11
- package/Source/Scene/TileMapServiceImageryProvider.js +26 -25
- package/Source/Scene/TileMetadata.js +4 -4
- package/Source/Scene/TileOrientedBoundingBox.js +6 -6
- package/Source/Scene/Tileset3DTileContent.js +1 -1
- package/Source/Scene/TilesetMetadata.js +4 -4
- package/Source/Scene/TimeDynamicImagery.js +3 -3
- package/Source/Scene/TimeDynamicPointCloud.js +9 -9
- package/Source/Scene/Tonemapper.js +35 -23
- package/Source/Scene/TranslucentTileClassification.js +48 -58
- package/Source/Scene/TweenCollection.js +9 -9
- package/Source/Scene/UrlTemplateImageryProvider.js +23 -23
- package/Source/Scene/Vector3DTileClampedPolylines.js +21 -21
- package/Source/Scene/Vector3DTileContent.js +38 -39
- package/Source/Scene/Vector3DTileGeometry.js +11 -8
- package/Source/Scene/Vector3DTilePoints.js +18 -22
- package/Source/Scene/Vector3DTilePolygons.js +6 -6
- package/Source/Scene/Vector3DTilePolylines.js +8 -8
- package/Source/Scene/Vector3DTilePrimitive.js +30 -31
- package/Source/Scene/View.js +111 -80
- package/Source/Scene/VoxelBoxShape.js +34 -34
- package/Source/Scene/VoxelCell.js +7 -7
- package/Source/Scene/VoxelContent.js +1 -1
- package/Source/Scene/VoxelCylinderShape.js +48 -48
- package/Source/Scene/VoxelEllipsoidShape.js +83 -97
- package/Source/Scene/VoxelPrimitive.js +80 -109
- package/Source/Scene/VoxelRenderResources.js +13 -16
- package/Source/Scene/VoxelTraversal.js +41 -41
- package/Source/Scene/WebMapServiceImageryProvider.js +12 -12
- package/Source/Scene/WebMapTileServiceImageryProvider.js +8 -8
- package/Source/Scene/buildVoxelDrawCommands.js +10 -14
- package/Source/Scene/computeFlyToLocationForRectangle.js +7 -5
- package/Source/Scene/createBillboardPointCallback.js +2 -2
- package/Source/Scene/createElevationBandMaterial.js +8 -8
- package/Source/Scene/createGooglePhotorealistic3DTileset.js +1 -1
- package/Source/Scene/createOsmBuildingsAsync.js +1 -1
- package/Source/Scene/createTangentSpaceDebugPrimitive.js +7 -7
- package/Source/Scene/findContentMetadata.js +2 -2
- package/Source/Scene/findTileMetadata.js +2 -2
- package/Source/Scene/getBinaryAccessor.js +1 -1
- package/Source/Scene/getClipAndStyleCode.js +1 -1
- package/Source/Scene/getClippingFunction.js +1 -1
- package/Source/Scene/getMetadataClassProperty.js +43 -0
- package/Source/Scene/parseBatchTable.js +21 -24
- package/Source/Scene/parseFeatureMetadataLegacy.js +3 -3
- package/Source/Scene/parseStructuralMetadata.js +3 -3
- package/Source/Scene/processVoxelProperties.js +28 -33
- package/Source/Shaders/Builtin/CzmBuiltins.js +2 -2
- package/Source/Shaders/Builtin/Functions/packDepth.glsl +2 -2
- package/Source/Shaders/Builtin/Functions/packDepth.js +2 -2
- package/Source/Shaders/Builtin/Functions/pbrLighting.glsl +2 -2
- package/Source/Shaders/Builtin/Functions/pbrLighting.js +2 -2
- package/Source/Shaders/Builtin/Functions/pbrNeutralTonemapping.glsl +23 -0
- package/Source/Shaders/Builtin/Functions/pbrNeutralTonemapping.js +25 -0
- package/Source/Shaders/Builtin/Functions/textureCube.glsl +21 -2
- package/Source/Shaders/Builtin/Functions/textureCube.js +21 -2
- package/Source/Shaders/Builtin/Functions/unpackDepth.glsl +3 -3
- package/Source/Shaders/Builtin/Functions/unpackDepth.js +3 -3
- package/Source/Shaders/Builtin/Functions/windowToEyeCoordinates.glsl +1 -1
- package/Source/Shaders/Builtin/Functions/windowToEyeCoordinates.js +1 -1
- package/Source/Shaders/Builtin/Functions/writeLogDepth.glsl +2 -2
- package/Source/Shaders/Builtin/Functions/writeLogDepth.js +2 -2
- package/Source/Shaders/Builtin/Structs/materialInput.glsl +2 -0
- package/Source/Shaders/Builtin/Structs/materialInput.js +2 -0
- package/Source/Shaders/DepthPlaneVS.glsl +1 -1
- package/Source/Shaders/DepthPlaneVS.js +1 -1
- package/Source/Shaders/GlobeFS.glsl +10 -4
- package/Source/Shaders/GlobeFS.js +10 -4
- package/Source/Shaders/Materials/WaterMaskMaterial.glsl +15 -0
- package/Source/Shaders/Materials/WaterMaskMaterial.js +17 -0
- package/Source/Shaders/Model/AtmosphereStageFS.glsl +1 -1
- package/Source/Shaders/Model/AtmosphereStageFS.js +1 -1
- package/Source/Shaders/Model/ImageBasedLightingStageFS.glsl +40 -29
- package/Source/Shaders/Model/ImageBasedLightingStageFS.js +40 -29
- package/Source/Shaders/Model/LightingStageFS.glsl +2 -2
- package/Source/Shaders/Model/LightingStageFS.js +2 -2
- package/Source/Shaders/Model/ModelFS.glsl +26 -0
- package/Source/Shaders/Model/ModelFS.js +26 -0
- package/Source/Shaders/PostProcessStages/AcesTonemappingStage.glsl +4 -0
- package/Source/Shaders/PostProcessStages/AcesTonemappingStage.js +4 -0
- package/Source/Shaders/PostProcessStages/AmbientOcclusionGenerate.glsl +59 -59
- package/Source/Shaders/PostProcessStages/AmbientOcclusionGenerate.js +60 -60
- package/Source/Shaders/PostProcessStages/FilmicTonemapping.glsl +4 -0
- package/Source/Shaders/PostProcessStages/FilmicTonemapping.js +4 -0
- package/Source/Shaders/PostProcessStages/ModifiedReinhardTonemapping.glsl +4 -0
- package/Source/Shaders/PostProcessStages/ModifiedReinhardTonemapping.js +4 -0
- package/Source/Shaders/PostProcessStages/PbrNeutralTonemapping.glsl +25 -0
- package/Source/Shaders/PostProcessStages/PbrNeutralTonemapping.js +27 -0
- package/Source/Shaders/PostProcessStages/ReinhardTonemapping.glsl +4 -0
- package/Source/Shaders/PostProcessStages/ReinhardTonemapping.js +4 -0
- package/Source/Shaders/SkyAtmosphereFS.glsl +1 -1
- package/Source/Shaders/SkyAtmosphereFS.js +1 -1
- package/Source/Widget/CesiumWidget.js +10 -9
- package/Source/Workers/combineGeometry.js +3 -4
- package/Source/Workers/createCircleGeometry.js +2 -2
- package/Source/Workers/createCircleOutlineGeometry.js +2 -2
- package/Source/Workers/createCoplanarPolygonOutlineGeometry.js +1 -1
- package/Source/Workers/createCorridorOutlineGeometry.js +2 -2
- package/Source/Workers/createEllipsoidOutlineGeometry.js +1 -1
- package/Source/Workers/createGeometry.js +4 -5
- package/Source/Workers/createGroundPolylineGeometry.js +1 -1
- package/Source/Workers/createPolylineVolumeGeometry.js +2 -2
- package/Source/Workers/createPolylineVolumeOutlineGeometry.js +4 -4
- package/Source/Workers/createRectangleOutlineGeometry.js +1 -1
- package/Source/Workers/createSimplePolylineGeometry.js +2 -2
- package/Source/Workers/createTaskProcessorWorker.js +1 -1
- package/Source/Workers/createVectorTileClampedPolylines.js +30 -30
- package/Source/Workers/createVectorTileGeometries.js +18 -18
- package/Source/Workers/createVectorTilePoints.js +3 -3
- package/Source/Workers/createVectorTilePolygons.js +11 -11
- package/Source/Workers/createVectorTilePolylines.js +7 -7
- package/Source/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +29 -30
- package/Source/Workers/createVerticesFromQuantizedTerrainMesh.js +60 -60
- package/Source/Workers/decodeDraco.js +23 -23
- package/Source/Workers/decodeGoogleEarthEnterprisePacket.js +3 -3
- package/Source/Workers/decodeI3S.js +53 -53
- package/Source/Workers/transcodeKTX2.js +9 -9
- package/Source/Workers/transferTypedArrayTest.js +1 -1
- package/Source/Workers/upsampleQuantizedTerrainMesh.js +37 -36
- package/index.d.ts +620 -136
- package/index.js +221 -205
- package/package.json +3 -3
- package/Build/Workers/chunk-2GEAGYUY.js +0 -1477
- package/Build/Workers/chunk-3WUV74WM.js +0 -1800
- package/Build/Workers/chunk-4MSUJ4I7.js +0 -456
- package/Build/Workers/chunk-5KWHSZYL.js +0 -834
- package/Build/Workers/chunk-5O6JWQ4E.js +0 -398
- package/Build/Workers/chunk-6OFDHMHR.js +0 -1258
- package/Build/Workers/chunk-AA4GZKOT.js +0 -75
- package/Build/Workers/chunk-B75IEX2S.js +0 -390
- package/Build/Workers/chunk-BAVI3ZS2.js +0 -39
- package/Build/Workers/chunk-BBDZYSZB.js +0 -287
- package/Build/Workers/chunk-C45MU4GZ.js +0 -220
- package/Build/Workers/chunk-CF7P7K7E.js +0 -684
- package/Build/Workers/chunk-D4K27X2M.js +0 -305
- package/Build/Workers/chunk-DKVHRNFY.js +0 -100
- package/Build/Workers/chunk-ELI4BUOT.js +0 -963
- package/Build/Workers/chunk-FQPSOOPH.js +0 -258
- package/Build/Workers/chunk-GNHZH7HP.js +0 -37
- package/Build/Workers/chunk-GWT64LKY.js +0 -171
- package/Build/Workers/chunk-HGEEOMSC.js +0 -157
- package/Build/Workers/chunk-IUROUBPA.js +0 -300
- package/Build/Workers/chunk-JNLWLSTP.js +0 -476
- package/Build/Workers/chunk-JYQNWIQQ.js +0 -44
- package/Build/Workers/chunk-KUN2ZA5X.js +0 -138
- package/Build/Workers/chunk-LXQ5QAEJ.js +0 -196
- package/Build/Workers/chunk-MBZH7YZ7.js +0 -945
- package/Build/Workers/chunk-MKXWJTFQ.js +0 -781
- package/Build/Workers/chunk-MMV6TO3P.js +0 -101
- package/Build/Workers/chunk-MSKXMXJI.js +0 -500
- package/Build/Workers/chunk-OAPA2RTG.js +0 -239
- package/Build/Workers/chunk-OE4MCOC7.js +0 -421
- package/Build/Workers/chunk-OJF4RTJG.js +0 -634
- package/Build/Workers/chunk-OXSI7N4C.js +0 -768
- package/Build/Workers/chunk-PYHLO636.js +0 -2857
- package/Build/Workers/chunk-QD4KM3GO.js +0 -138
- package/Build/Workers/chunk-QMLTCCYG.js +0 -55
- package/Build/Workers/chunk-QYQIVZBU.js +0 -117
- package/Build/Workers/chunk-R3TKLC6E.js +0 -1075
- package/Build/Workers/chunk-R4ZEWO4I.js +0 -122
- package/Build/Workers/chunk-RCK55EDX.js +0 -691
- package/Build/Workers/chunk-RHBWXX7C.js +0 -629
- package/Build/Workers/chunk-SAPFXU5X.js +0 -102
- package/Build/Workers/chunk-TBBFDFCS.js +0 -368
- package/Build/Workers/chunk-TGY6H6N6.js +0 -163
- package/Build/Workers/chunk-UOEUCKKU.js +0 -59
- package/Build/Workers/chunk-VFBNELXB.js +0 -353
- package/Build/Workers/chunk-VYWUFRRR.js +0 -1052
- package/Build/Workers/chunk-WVSELU6O.js +0 -2716
- package/Build/Workers/chunk-X43SJLQL.js +0 -10364
- package/Build/Workers/chunk-XUOJCLOH.js +0 -511
- package/Build/Workers/chunk-YLYBLJ3Y.js +0 -73
- package/Build/Workers/chunk-ZEE2EIFD.js +0 -430
- package/Build/Workers/chunk-ZIKGV7EL.js +0 -58
- package/Source/Scene/OctahedralProjectedCubeMap.js +0 -444
- package/Source/Shaders/Builtin/Functions/sampleOctahedralProjection.glsl +0 -78
- package/Source/Shaders/Builtin/Functions/sampleOctahedralProjection.js +0 -80
- package/Source/Shaders/OctahedralProjectionAtlasFS.glsl +0 -89
- package/Source/Shaders/OctahedralProjectionAtlasFS.js +0 -91
- package/Source/Shaders/OctahedralProjectionFS.glsl +0 -14
- package/Source/Shaders/OctahedralProjectionFS.js +0 -16
- package/Source/Shaders/OctahedralProjectionVS.glsl +0 -10
- package/Source/Shaders/OctahedralProjectionVS.js +0 -12
|
@@ -15,6 +15,30 @@ import TextureMagnificationFilter from "./TextureMagnificationFilter.js";
|
|
|
15
15
|
import TextureMinificationFilter from "./TextureMinificationFilter.js";
|
|
16
16
|
|
|
17
17
|
/**
|
|
18
|
+
* @typedef {object} Texture.ConstructorOptions
|
|
19
|
+
*
|
|
20
|
+
* @property {Context} context
|
|
21
|
+
* @property {object} [source] The source for texel values to be loaded into the texture.
|
|
22
|
+
* @property {PixelFormat} [pixelFormat=PixelFormat.RGBA] The format of each pixel, i.e., the number of components it has and what they represent.
|
|
23
|
+
* @property {PixelDatatype} [pixelDatatype=PixelDatatype.UNSIGNED_BYTE] The data type of each pixel.
|
|
24
|
+
* @property {boolean} [flipY=true] If true, the source values will be read as if the y-axis is inverted (y=0 at the top).
|
|
25
|
+
* @property {boolean} [skipColorSpaceConversion=false] If true, color space conversions will be skipped when reading the texel values.
|
|
26
|
+
* @property {Sampler} [sampler] Information about how to sample the cubemap texture.
|
|
27
|
+
* @property {number} [width] The pixel width of the texture. If not supplied, must be available from the source.
|
|
28
|
+
* @property {number} [height] The pixel height of the texture. If not supplied, must be available from the source.
|
|
29
|
+
* @property {boolean} [preMultiplyAlpha] If true, the alpha channel will be multiplied into the other channels.
|
|
30
|
+
*
|
|
31
|
+
* @private
|
|
32
|
+
*/
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* A wrapper for a {@link https://developer.mozilla.org/en-US/docs/Web/API/WebGLTexture|WebGLTexture}
|
|
36
|
+
* to abstract away the verbose GL calls associated with setting up a texture.
|
|
37
|
+
*
|
|
38
|
+
* @alias Texture
|
|
39
|
+
* @constructor
|
|
40
|
+
*
|
|
41
|
+
* @param {Texture.ConstructorOptions} options
|
|
18
42
|
* @private
|
|
19
43
|
*/
|
|
20
44
|
function Texture(options) {
|
|
@@ -24,29 +48,38 @@ function Texture(options) {
|
|
|
24
48
|
Check.defined("options.context", options.context);
|
|
25
49
|
//>>includeEnd('debug');
|
|
26
50
|
|
|
27
|
-
const
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
51
|
+
const {
|
|
52
|
+
context,
|
|
53
|
+
source,
|
|
54
|
+
pixelFormat = PixelFormat.RGBA,
|
|
55
|
+
pixelDatatype = PixelDatatype.UNSIGNED_BYTE,
|
|
56
|
+
flipY = true,
|
|
57
|
+
skipColorSpaceConversion = false,
|
|
58
|
+
sampler = new Sampler(),
|
|
59
|
+
} = options;
|
|
60
|
+
|
|
61
|
+
let { width, height } = options;
|
|
32
62
|
if (defined(source)) {
|
|
63
|
+
// Make sure we are using the element's intrinsic width and height where available
|
|
33
64
|
if (!defined(width)) {
|
|
34
|
-
width =
|
|
65
|
+
width = source.videoWidth ?? source.naturalWidth ?? source.width;
|
|
35
66
|
}
|
|
36
67
|
if (!defined(height)) {
|
|
37
|
-
height =
|
|
68
|
+
height = source.videoHeight ?? source.naturalHeight ?? source.height;
|
|
38
69
|
}
|
|
39
70
|
}
|
|
40
71
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
72
|
+
// Use premultiplied alpha for opaque textures should perform better on Chrome:
|
|
73
|
+
// http://media.tojicode.com/webglCamp4/#20
|
|
74
|
+
const preMultiplyAlpha =
|
|
75
|
+
options.preMultiplyAlpha ||
|
|
76
|
+
pixelFormat === PixelFormat.RGB ||
|
|
77
|
+
pixelFormat === PixelFormat.LUMINANCE;
|
|
78
|
+
|
|
46
79
|
const internalFormat = PixelFormat.toInternalFormat(
|
|
47
80
|
pixelFormat,
|
|
48
81
|
pixelDatatype,
|
|
49
|
-
context
|
|
82
|
+
context,
|
|
50
83
|
);
|
|
51
84
|
|
|
52
85
|
const isCompressed = PixelFormat.isCompressedFormat(internalFormat);
|
|
@@ -54,7 +87,7 @@ function Texture(options) {
|
|
|
54
87
|
//>>includeStart('debug', pragmas.debug);
|
|
55
88
|
if (!defined(width) || !defined(height)) {
|
|
56
89
|
throw new DeveloperError(
|
|
57
|
-
"options requires a source field to create an initialized texture or width and height fields to create a blank texture."
|
|
90
|
+
"options requires a source field to create an initialized texture or width and height fields to create a blank texture.",
|
|
58
91
|
);
|
|
59
92
|
}
|
|
60
93
|
|
|
@@ -62,7 +95,7 @@ function Texture(options) {
|
|
|
62
95
|
|
|
63
96
|
if (width > ContextLimits.maximumTextureSize) {
|
|
64
97
|
throw new DeveloperError(
|
|
65
|
-
`Width must be less than or equal to the maximum texture size (${ContextLimits.maximumTextureSize}). Check maximumTextureSize
|
|
98
|
+
`Width must be less than or equal to the maximum texture size (${ContextLimits.maximumTextureSize}). Check maximumTextureSize.`,
|
|
66
99
|
);
|
|
67
100
|
}
|
|
68
101
|
|
|
@@ -70,7 +103,7 @@ function Texture(options) {
|
|
|
70
103
|
|
|
71
104
|
if (height > ContextLimits.maximumTextureSize) {
|
|
72
105
|
throw new DeveloperError(
|
|
73
|
-
`Height must be less than or equal to the maximum texture size (${ContextLimits.maximumTextureSize}). Check maximumTextureSize
|
|
106
|
+
`Height must be less than or equal to the maximum texture size (${ContextLimits.maximumTextureSize}). Check maximumTextureSize.`,
|
|
74
107
|
);
|
|
75
108
|
}
|
|
76
109
|
|
|
@@ -88,7 +121,7 @@ function Texture(options) {
|
|
|
88
121
|
pixelDatatype !== PixelDatatype.UNSIGNED_INT
|
|
89
122
|
) {
|
|
90
123
|
throw new DeveloperError(
|
|
91
|
-
"When options.pixelFormat is DEPTH_COMPONENT, options.pixelDatatype must be UNSIGNED_SHORT or UNSIGNED_INT."
|
|
124
|
+
"When options.pixelFormat is DEPTH_COMPONENT, options.pixelDatatype must be UNSIGNED_SHORT or UNSIGNED_INT.",
|
|
92
125
|
);
|
|
93
126
|
}
|
|
94
127
|
|
|
@@ -97,13 +130,13 @@ function Texture(options) {
|
|
|
97
130
|
pixelDatatype !== PixelDatatype.UNSIGNED_INT_24_8
|
|
98
131
|
) {
|
|
99
132
|
throw new DeveloperError(
|
|
100
|
-
"When options.pixelFormat is DEPTH_STENCIL, options.pixelDatatype must be UNSIGNED_INT_24_8."
|
|
133
|
+
"When options.pixelFormat is DEPTH_STENCIL, options.pixelDatatype must be UNSIGNED_INT_24_8.",
|
|
101
134
|
);
|
|
102
135
|
}
|
|
103
136
|
|
|
104
137
|
if (pixelDatatype === PixelDatatype.FLOAT && !context.floatingPointTexture) {
|
|
105
138
|
throw new DeveloperError(
|
|
106
|
-
"When options.pixelDatatype is FLOAT, this WebGL implementation must support the OES_texture_float extension. Check context.floatingPointTexture."
|
|
139
|
+
"When options.pixelDatatype is FLOAT, this WebGL implementation must support the OES_texture_float extension. Check context.floatingPointTexture.",
|
|
107
140
|
);
|
|
108
141
|
}
|
|
109
142
|
|
|
@@ -112,20 +145,20 @@ function Texture(options) {
|
|
|
112
145
|
!context.halfFloatingPointTexture
|
|
113
146
|
) {
|
|
114
147
|
throw new DeveloperError(
|
|
115
|
-
"When options.pixelDatatype is HALF_FLOAT, this WebGL implementation must support the OES_texture_half_float extension. Check context.halfFloatingPointTexture."
|
|
148
|
+
"When options.pixelDatatype is HALF_FLOAT, this WebGL implementation must support the OES_texture_half_float extension. Check context.halfFloatingPointTexture.",
|
|
116
149
|
);
|
|
117
150
|
}
|
|
118
151
|
|
|
119
152
|
if (PixelFormat.isDepthFormat(pixelFormat)) {
|
|
120
153
|
if (defined(source)) {
|
|
121
154
|
throw new DeveloperError(
|
|
122
|
-
"When options.pixelFormat is DEPTH_COMPONENT or DEPTH_STENCIL, source cannot be provided."
|
|
155
|
+
"When options.pixelFormat is DEPTH_COMPONENT or DEPTH_STENCIL, source cannot be provided.",
|
|
123
156
|
);
|
|
124
157
|
}
|
|
125
158
|
|
|
126
159
|
if (!context.depthTexture) {
|
|
127
160
|
throw new DeveloperError(
|
|
128
|
-
"When options.pixelFormat is DEPTH_COMPONENT or DEPTH_STENCIL, this WebGL implementation must support WEBGL_depth_texture. Check context.depthTexture."
|
|
161
|
+
"When options.pixelFormat is DEPTH_COMPONENT or DEPTH_STENCIL, this WebGL implementation must support WEBGL_depth_texture. Check context.depthTexture.",
|
|
129
162
|
);
|
|
130
163
|
}
|
|
131
164
|
}
|
|
@@ -133,33 +166,33 @@ function Texture(options) {
|
|
|
133
166
|
if (isCompressed) {
|
|
134
167
|
if (!defined(source) || !defined(source.arrayBufferView)) {
|
|
135
168
|
throw new DeveloperError(
|
|
136
|
-
"When options.pixelFormat is compressed, options.source.arrayBufferView must be defined."
|
|
169
|
+
"When options.pixelFormat is compressed, options.source.arrayBufferView must be defined.",
|
|
137
170
|
);
|
|
138
171
|
}
|
|
139
172
|
|
|
140
173
|
if (PixelFormat.isDXTFormat(internalFormat) && !context.s3tc) {
|
|
141
174
|
throw new DeveloperError(
|
|
142
|
-
"When options.pixelFormat is S3TC compressed, this WebGL implementation must support the WEBGL_compressed_texture_s3tc extension. Check context.s3tc."
|
|
175
|
+
"When options.pixelFormat is S3TC compressed, this WebGL implementation must support the WEBGL_compressed_texture_s3tc extension. Check context.s3tc.",
|
|
143
176
|
);
|
|
144
177
|
} else if (PixelFormat.isPVRTCFormat(internalFormat) && !context.pvrtc) {
|
|
145
178
|
throw new DeveloperError(
|
|
146
|
-
"When options.pixelFormat is PVRTC compressed, this WebGL implementation must support the WEBGL_compressed_texture_pvrtc extension. Check context.pvrtc."
|
|
179
|
+
"When options.pixelFormat is PVRTC compressed, this WebGL implementation must support the WEBGL_compressed_texture_pvrtc extension. Check context.pvrtc.",
|
|
147
180
|
);
|
|
148
181
|
} else if (PixelFormat.isASTCFormat(internalFormat) && !context.astc) {
|
|
149
182
|
throw new DeveloperError(
|
|
150
|
-
"When options.pixelFormat is ASTC compressed, this WebGL implementation must support the WEBGL_compressed_texture_astc extension. Check context.astc."
|
|
183
|
+
"When options.pixelFormat is ASTC compressed, this WebGL implementation must support the WEBGL_compressed_texture_astc extension. Check context.astc.",
|
|
151
184
|
);
|
|
152
185
|
} else if (PixelFormat.isETC2Format(internalFormat) && !context.etc) {
|
|
153
186
|
throw new DeveloperError(
|
|
154
|
-
"When options.pixelFormat is ETC2 compressed, this WebGL implementation must support the WEBGL_compressed_texture_etc extension. Check context.etc."
|
|
187
|
+
"When options.pixelFormat is ETC2 compressed, this WebGL implementation must support the WEBGL_compressed_texture_etc extension. Check context.etc.",
|
|
155
188
|
);
|
|
156
189
|
} else if (PixelFormat.isETC1Format(internalFormat) && !context.etc1) {
|
|
157
190
|
throw new DeveloperError(
|
|
158
|
-
"When options.pixelFormat is ETC1 compressed, this WebGL implementation must support the WEBGL_compressed_texture_etc1 extension. Check context.etc1."
|
|
191
|
+
"When options.pixelFormat is ETC1 compressed, this WebGL implementation must support the WEBGL_compressed_texture_etc1 extension. Check context.etc1.",
|
|
159
192
|
);
|
|
160
193
|
} else if (PixelFormat.isBC7Format(internalFormat) && !context.bc7) {
|
|
161
194
|
throw new DeveloperError(
|
|
162
|
-
"When options.pixelFormat is BC7 compressed, this WebGL implementation must support the EXT_texture_compression_bptc extension. Check context.bc7."
|
|
195
|
+
"When options.pixelFormat is BC7 compressed, this WebGL implementation must support the EXT_texture_compression_bptc extension. Check context.bc7.",
|
|
163
196
|
);
|
|
164
197
|
}
|
|
165
198
|
|
|
@@ -167,235 +200,288 @@ function Texture(options) {
|
|
|
167
200
|
PixelFormat.compressedTextureSizeInBytes(
|
|
168
201
|
internalFormat,
|
|
169
202
|
width,
|
|
170
|
-
height
|
|
203
|
+
height,
|
|
171
204
|
) !== source.arrayBufferView.byteLength
|
|
172
205
|
) {
|
|
173
206
|
throw new DeveloperError(
|
|
174
|
-
"The byte length of the array buffer is invalid for the compressed texture with the given width and height."
|
|
207
|
+
"The byte length of the array buffer is invalid for the compressed texture with the given width and height.",
|
|
175
208
|
);
|
|
176
209
|
}
|
|
177
210
|
}
|
|
178
211
|
//>>includeEnd('debug');
|
|
179
212
|
|
|
180
|
-
// Use premultiplied alpha for opaque textures should perform better on Chrome:
|
|
181
|
-
// http://media.tojicode.com/webglCamp4/#20
|
|
182
|
-
const preMultiplyAlpha =
|
|
183
|
-
options.preMultiplyAlpha ||
|
|
184
|
-
pixelFormat === PixelFormat.RGB ||
|
|
185
|
-
pixelFormat === PixelFormat.LUMINANCE;
|
|
186
|
-
const flipY = defaultValue(options.flipY, true);
|
|
187
|
-
const skipColorSpaceConversion = defaultValue(
|
|
188
|
-
options.skipColorSpaceConversion,
|
|
189
|
-
false
|
|
190
|
-
);
|
|
191
|
-
|
|
192
|
-
let initialized = true;
|
|
193
|
-
|
|
194
213
|
const gl = context._gl;
|
|
195
|
-
const textureTarget = gl.TEXTURE_2D;
|
|
196
|
-
const texture = gl.createTexture();
|
|
197
214
|
|
|
198
|
-
|
|
199
|
-
|
|
215
|
+
const sizeInBytes = isCompressed
|
|
216
|
+
? PixelFormat.compressedTextureSizeInBytes(pixelFormat, width, height)
|
|
217
|
+
: PixelFormat.textureSizeInBytes(pixelFormat, pixelDatatype, width, height);
|
|
200
218
|
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
219
|
+
this._id = createGuid();
|
|
220
|
+
this._context = context;
|
|
221
|
+
this._textureFilterAnisotropic = context._textureFilterAnisotropic;
|
|
222
|
+
this._textureTarget = gl.TEXTURE_2D;
|
|
223
|
+
this._texture = gl.createTexture();
|
|
224
|
+
this._internalFormat = internalFormat;
|
|
225
|
+
this._pixelFormat = pixelFormat;
|
|
226
|
+
this._pixelDatatype = pixelDatatype;
|
|
227
|
+
this._width = width;
|
|
228
|
+
this._height = height;
|
|
229
|
+
this._dimensions = new Cartesian2(width, height);
|
|
230
|
+
this._hasMipmap = false;
|
|
231
|
+
this._sizeInBytes = sizeInBytes;
|
|
232
|
+
this._preMultiplyAlpha = preMultiplyAlpha;
|
|
233
|
+
this._flipY = flipY;
|
|
234
|
+
this._initialized = false;
|
|
235
|
+
this._sampler = undefined;
|
|
209
236
|
|
|
210
|
-
|
|
237
|
+
this._sampler = sampler;
|
|
238
|
+
setupSampler(this, sampler);
|
|
211
239
|
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
} else {
|
|
215
|
-
gl.pixelStorei(
|
|
216
|
-
gl.UNPACK_COLORSPACE_CONVERSION_WEBGL,
|
|
217
|
-
gl.BROWSER_DEFAULT_WEBGL
|
|
218
|
-
);
|
|
219
|
-
}
|
|
240
|
+
gl.activeTexture(gl.TEXTURE0);
|
|
241
|
+
gl.bindTexture(this._textureTarget, this._texture);
|
|
220
242
|
|
|
221
243
|
if (defined(source)) {
|
|
244
|
+
if (skipColorSpaceConversion) {
|
|
245
|
+
gl.pixelStorei(gl.UNPACK_COLORSPACE_CONVERSION_WEBGL, gl.NONE);
|
|
246
|
+
} else {
|
|
247
|
+
gl.pixelStorei(
|
|
248
|
+
gl.UNPACK_COLORSPACE_CONVERSION_WEBGL,
|
|
249
|
+
gl.BROWSER_DEFAULT_WEBGL,
|
|
250
|
+
);
|
|
251
|
+
}
|
|
222
252
|
if (defined(source.arrayBufferView)) {
|
|
223
|
-
|
|
224
|
-
gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, false);
|
|
225
|
-
|
|
226
|
-
// Source: typed array
|
|
227
|
-
let arrayBufferView = source.arrayBufferView;
|
|
228
|
-
let i, mipWidth, mipHeight;
|
|
253
|
+
const isCompressed = PixelFormat.isCompressedFormat(internalFormat);
|
|
229
254
|
if (isCompressed) {
|
|
230
|
-
|
|
231
|
-
textureTarget,
|
|
232
|
-
0,
|
|
233
|
-
internalFormat,
|
|
234
|
-
width,
|
|
235
|
-
height,
|
|
236
|
-
0,
|
|
237
|
-
arrayBufferView
|
|
238
|
-
);
|
|
239
|
-
if (defined(source.mipLevels)) {
|
|
240
|
-
mipWidth = width;
|
|
241
|
-
mipHeight = height;
|
|
242
|
-
for (i = 0; i < source.mipLevels.length; ++i) {
|
|
243
|
-
mipWidth = Math.floor(mipWidth / 2) | 0;
|
|
244
|
-
if (mipWidth < 1) {
|
|
245
|
-
mipWidth = 1;
|
|
246
|
-
}
|
|
247
|
-
mipHeight = Math.floor(mipHeight / 2) | 0;
|
|
248
|
-
if (mipHeight < 1) {
|
|
249
|
-
mipHeight = 1;
|
|
250
|
-
}
|
|
251
|
-
gl.compressedTexImage2D(
|
|
252
|
-
textureTarget,
|
|
253
|
-
i + 1,
|
|
254
|
-
internalFormat,
|
|
255
|
-
mipWidth,
|
|
256
|
-
mipHeight,
|
|
257
|
-
0,
|
|
258
|
-
source.mipLevels[i]
|
|
259
|
-
);
|
|
260
|
-
}
|
|
261
|
-
}
|
|
255
|
+
loadCompressedBufferSource(this, source);
|
|
262
256
|
} else {
|
|
263
|
-
|
|
264
|
-
arrayBufferView = PixelFormat.flipY(
|
|
265
|
-
arrayBufferView,
|
|
266
|
-
pixelFormat,
|
|
267
|
-
pixelDatatype,
|
|
268
|
-
width,
|
|
269
|
-
height
|
|
270
|
-
);
|
|
271
|
-
}
|
|
272
|
-
gl.texImage2D(
|
|
273
|
-
textureTarget,
|
|
274
|
-
0,
|
|
275
|
-
internalFormat,
|
|
276
|
-
width,
|
|
277
|
-
height,
|
|
278
|
-
0,
|
|
279
|
-
pixelFormat,
|
|
280
|
-
PixelDatatype.toWebGLConstant(pixelDatatype, context),
|
|
281
|
-
arrayBufferView
|
|
282
|
-
);
|
|
283
|
-
|
|
284
|
-
if (defined(source.mipLevels)) {
|
|
285
|
-
mipWidth = width;
|
|
286
|
-
mipHeight = height;
|
|
287
|
-
for (i = 0; i < source.mipLevels.length; ++i) {
|
|
288
|
-
mipWidth = Math.floor(mipWidth / 2) | 0;
|
|
289
|
-
if (mipWidth < 1) {
|
|
290
|
-
mipWidth = 1;
|
|
291
|
-
}
|
|
292
|
-
mipHeight = Math.floor(mipHeight / 2) | 0;
|
|
293
|
-
if (mipHeight < 1) {
|
|
294
|
-
mipHeight = 1;
|
|
295
|
-
}
|
|
296
|
-
gl.texImage2D(
|
|
297
|
-
textureTarget,
|
|
298
|
-
i + 1,
|
|
299
|
-
internalFormat,
|
|
300
|
-
mipWidth,
|
|
301
|
-
mipHeight,
|
|
302
|
-
0,
|
|
303
|
-
pixelFormat,
|
|
304
|
-
PixelDatatype.toWebGLConstant(pixelDatatype, context),
|
|
305
|
-
source.mipLevels[i]
|
|
306
|
-
);
|
|
307
|
-
}
|
|
308
|
-
}
|
|
257
|
+
loadBufferSource(this, source);
|
|
309
258
|
}
|
|
310
259
|
} else if (defined(source.framebuffer)) {
|
|
311
|
-
|
|
312
|
-
|
|
260
|
+
loadFramebufferSource(this, source);
|
|
261
|
+
} else {
|
|
262
|
+
loadImageSource(this, source);
|
|
263
|
+
}
|
|
264
|
+
this._initialized = true;
|
|
265
|
+
} else {
|
|
266
|
+
loadNull(this);
|
|
267
|
+
}
|
|
313
268
|
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
269
|
+
gl.bindTexture(this._textureTarget, null);
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
/**
|
|
273
|
+
* Load compressed texel data from a buffer into a texture.
|
|
274
|
+
*
|
|
275
|
+
* @param {Texture} texture The texture to which texel values will be loaded.
|
|
276
|
+
* @param {object} source The source for texel values to be loaded into the texture.
|
|
277
|
+
*
|
|
278
|
+
* @private
|
|
279
|
+
*/
|
|
280
|
+
function loadCompressedBufferSource(texture, source) {
|
|
281
|
+
const context = texture._context;
|
|
282
|
+
const gl = context._gl;
|
|
283
|
+
const textureTarget = texture._textureTarget;
|
|
284
|
+
const internalFormat = texture._internalFormat;
|
|
285
|
+
|
|
286
|
+
const { width, height } = texture;
|
|
287
|
+
|
|
288
|
+
gl.pixelStorei(gl.UNPACK_ALIGNMENT, 4);
|
|
289
|
+
gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, false);
|
|
290
|
+
gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, false);
|
|
291
|
+
|
|
292
|
+
gl.compressedTexImage2D(
|
|
293
|
+
textureTarget,
|
|
294
|
+
0,
|
|
295
|
+
internalFormat,
|
|
296
|
+
width,
|
|
297
|
+
height,
|
|
298
|
+
0,
|
|
299
|
+
source.arrayBufferView,
|
|
300
|
+
);
|
|
318
301
|
|
|
319
|
-
|
|
302
|
+
if (defined(source.mipLevels)) {
|
|
303
|
+
let mipWidth = width;
|
|
304
|
+
let mipHeight = height;
|
|
305
|
+
for (let i = 0; i < source.mipLevels.length; ++i) {
|
|
306
|
+
mipWidth = nextMipSize(mipWidth);
|
|
307
|
+
mipHeight = nextMipSize(mipHeight);
|
|
308
|
+
gl.compressedTexImage2D(
|
|
320
309
|
textureTarget,
|
|
321
|
-
|
|
310
|
+
i + 1,
|
|
322
311
|
internalFormat,
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
0
|
|
312
|
+
mipWidth,
|
|
313
|
+
mipHeight,
|
|
314
|
+
0,
|
|
315
|
+
source.mipLevels[i],
|
|
328
316
|
);
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
}
|
|
329
320
|
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
321
|
+
/**
|
|
322
|
+
* Load texel data from a buffer into a texture.
|
|
323
|
+
*
|
|
324
|
+
* @param {Texture} texture The texture to which texel values will be loaded.
|
|
325
|
+
* @param {object} source The source for texel values to be loaded into the texture.
|
|
326
|
+
*
|
|
327
|
+
* @private
|
|
328
|
+
*/
|
|
329
|
+
function loadBufferSource(texture, source) {
|
|
330
|
+
const context = texture._context;
|
|
331
|
+
const gl = context._gl;
|
|
332
|
+
const textureTarget = texture._textureTarget;
|
|
333
|
+
const internalFormat = texture._internalFormat;
|
|
334
|
+
|
|
335
|
+
const { width, height, pixelFormat, pixelDatatype, flipY } = texture;
|
|
337
336
|
|
|
338
|
-
|
|
337
|
+
const unpackAlignment = PixelFormat.alignmentInBytes(
|
|
338
|
+
pixelFormat,
|
|
339
|
+
pixelDatatype,
|
|
340
|
+
width,
|
|
341
|
+
);
|
|
342
|
+
gl.pixelStorei(gl.UNPACK_ALIGNMENT, unpackAlignment);
|
|
343
|
+
gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, false);
|
|
344
|
+
gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, false);
|
|
345
|
+
|
|
346
|
+
let arrayBufferView = source.arrayBufferView;
|
|
347
|
+
if (flipY) {
|
|
348
|
+
arrayBufferView = PixelFormat.flipY(
|
|
349
|
+
arrayBufferView,
|
|
350
|
+
pixelFormat,
|
|
351
|
+
pixelDatatype,
|
|
352
|
+
width,
|
|
353
|
+
height,
|
|
354
|
+
);
|
|
355
|
+
}
|
|
356
|
+
gl.texImage2D(
|
|
357
|
+
textureTarget,
|
|
358
|
+
0,
|
|
359
|
+
internalFormat,
|
|
360
|
+
width,
|
|
361
|
+
height,
|
|
362
|
+
0,
|
|
363
|
+
pixelFormat,
|
|
364
|
+
PixelDatatype.toWebGLConstant(pixelDatatype, context),
|
|
365
|
+
arrayBufferView,
|
|
366
|
+
);
|
|
367
|
+
|
|
368
|
+
if (defined(source.mipLevels)) {
|
|
369
|
+
let mipWidth = width;
|
|
370
|
+
let mipHeight = height;
|
|
371
|
+
for (let i = 0; i < source.mipLevels.length; ++i) {
|
|
372
|
+
mipWidth = nextMipSize(mipWidth);
|
|
373
|
+
mipHeight = nextMipSize(mipHeight);
|
|
339
374
|
gl.texImage2D(
|
|
340
375
|
textureTarget,
|
|
341
|
-
|
|
376
|
+
i + 1,
|
|
342
377
|
internalFormat,
|
|
378
|
+
mipWidth,
|
|
379
|
+
mipHeight,
|
|
380
|
+
0,
|
|
343
381
|
pixelFormat,
|
|
344
382
|
PixelDatatype.toWebGLConstant(pixelDatatype, context),
|
|
345
|
-
source
|
|
383
|
+
source.mipLevels[i],
|
|
346
384
|
);
|
|
347
385
|
}
|
|
348
|
-
} else {
|
|
349
|
-
gl.texImage2D(
|
|
350
|
-
textureTarget,
|
|
351
|
-
0,
|
|
352
|
-
internalFormat,
|
|
353
|
-
width,
|
|
354
|
-
height,
|
|
355
|
-
0,
|
|
356
|
-
pixelFormat,
|
|
357
|
-
PixelDatatype.toWebGLConstant(pixelDatatype, context),
|
|
358
|
-
null
|
|
359
|
-
);
|
|
360
|
-
initialized = false;
|
|
361
386
|
}
|
|
362
|
-
|
|
387
|
+
}
|
|
363
388
|
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
389
|
+
/**
|
|
390
|
+
* Load texel data from a framebuffer into a texture.
|
|
391
|
+
*
|
|
392
|
+
* @param {Texture} texture The texture to which texel values will be loaded.
|
|
393
|
+
* @param {object} source The source for texel values to be loaded into the texture.
|
|
394
|
+
*
|
|
395
|
+
* @private
|
|
396
|
+
*/
|
|
397
|
+
function loadFramebufferSource(texture, source) {
|
|
398
|
+
const context = texture._context;
|
|
399
|
+
const gl = context._gl;
|
|
400
|
+
|
|
401
|
+
gl.pixelStorei(gl.UNPACK_ALIGNMENT, 4);
|
|
402
|
+
gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, false);
|
|
403
|
+
gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, false);
|
|
404
|
+
|
|
405
|
+
if (source.framebuffer !== context.defaultFramebuffer) {
|
|
406
|
+
source.framebuffer._bind();
|
|
378
407
|
}
|
|
379
408
|
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
409
|
+
gl.copyTexImage2D(
|
|
410
|
+
texture._textureTarget,
|
|
411
|
+
0,
|
|
412
|
+
texture._internalFormat,
|
|
413
|
+
source.xOffset,
|
|
414
|
+
source.yOffset,
|
|
415
|
+
texture.width,
|
|
416
|
+
texture.height,
|
|
417
|
+
0,
|
|
418
|
+
);
|
|
419
|
+
|
|
420
|
+
if (source.framebuffer !== context.defaultFramebuffer) {
|
|
421
|
+
source.framebuffer._unBind();
|
|
422
|
+
}
|
|
423
|
+
}
|
|
424
|
+
|
|
425
|
+
/**
|
|
426
|
+
* Load texel data from an Image into a texture.
|
|
427
|
+
*
|
|
428
|
+
* @param {Texture} texture The texture to which texel values will be loaded.
|
|
429
|
+
* @param {ImageData|HTMLImageElement|HTMLCanvasElement|HTMLVideoElement} source The source for texel values to be loaded into the texture.
|
|
430
|
+
*
|
|
431
|
+
* @private
|
|
432
|
+
*/
|
|
433
|
+
function loadImageSource(texture, source) {
|
|
434
|
+
const context = texture._context;
|
|
435
|
+
const gl = context._gl;
|
|
436
|
+
|
|
437
|
+
gl.pixelStorei(gl.UNPACK_ALIGNMENT, 4);
|
|
438
|
+
gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, texture.preMultiplyAlpha);
|
|
439
|
+
gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, texture.flipY);
|
|
440
|
+
|
|
441
|
+
gl.texImage2D(
|
|
442
|
+
texture._textureTarget,
|
|
443
|
+
0,
|
|
444
|
+
texture._internalFormat,
|
|
445
|
+
texture.pixelFormat,
|
|
446
|
+
PixelDatatype.toWebGLConstant(texture.pixelDatatype, context),
|
|
447
|
+
source,
|
|
448
|
+
);
|
|
449
|
+
}
|
|
450
|
+
|
|
451
|
+
/**
|
|
452
|
+
* Compute a dimension of the image for the next mip level.
|
|
453
|
+
*
|
|
454
|
+
* @param {number} currentSize The size of the current mip level.
|
|
455
|
+
* @returns {number} The size of the next mip level.
|
|
456
|
+
*
|
|
457
|
+
* @private
|
|
458
|
+
*/
|
|
459
|
+
function nextMipSize(currentSize) {
|
|
460
|
+
const nextSize = Math.floor(currentSize / 2) | 0;
|
|
461
|
+
return Math.max(nextSize, 1);
|
|
462
|
+
}
|
|
463
|
+
|
|
464
|
+
/**
|
|
465
|
+
* Allocate a texture in GPU memory, without providing any image data.
|
|
466
|
+
*
|
|
467
|
+
* @param {Texture} texture The texture to be initialized with null values.
|
|
468
|
+
*
|
|
469
|
+
* @private
|
|
470
|
+
*/
|
|
471
|
+
function loadNull(texture) {
|
|
472
|
+
const context = texture._context;
|
|
397
473
|
|
|
398
|
-
|
|
474
|
+
context._gl.texImage2D(
|
|
475
|
+
texture._textureTarget,
|
|
476
|
+
0,
|
|
477
|
+
texture._internalFormat,
|
|
478
|
+
texture._width,
|
|
479
|
+
texture._height,
|
|
480
|
+
0,
|
|
481
|
+
texture._pixelFormat,
|
|
482
|
+
PixelDatatype.toWebGLConstant(texture._pixelDatatype, context),
|
|
483
|
+
null,
|
|
484
|
+
);
|
|
399
485
|
}
|
|
400
486
|
|
|
401
487
|
/**
|
|
@@ -449,13 +535,14 @@ Texture.fromFramebuffer = function (options) {
|
|
|
449
535
|
|
|
450
536
|
const context = options.context;
|
|
451
537
|
const gl = context._gl;
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
538
|
+
const {
|
|
539
|
+
pixelFormat = PixelFormat.RGB,
|
|
540
|
+
framebufferXOffset = 0,
|
|
541
|
+
framebufferYOffset = 0,
|
|
542
|
+
width = gl.drawingBufferWidth,
|
|
543
|
+
height = gl.drawingBufferHeight,
|
|
544
|
+
framebuffer,
|
|
545
|
+
} = options;
|
|
459
546
|
|
|
460
547
|
//>>includeStart('debug', pragmas.debug);
|
|
461
548
|
if (!PixelFormat.validate(pixelFormat)) {
|
|
@@ -466,28 +553,28 @@ Texture.fromFramebuffer = function (options) {
|
|
|
466
553
|
PixelFormat.isCompressedFormat(pixelFormat)
|
|
467
554
|
) {
|
|
468
555
|
throw new DeveloperError(
|
|
469
|
-
"pixelFormat cannot be DEPTH_COMPONENT, DEPTH_STENCIL or a compressed format."
|
|
556
|
+
"pixelFormat cannot be DEPTH_COMPONENT, DEPTH_STENCIL or a compressed format.",
|
|
470
557
|
);
|
|
471
558
|
}
|
|
472
|
-
Check.defined("options.context",
|
|
559
|
+
Check.defined("options.context", context);
|
|
473
560
|
Check.typeOf.number.greaterThanOrEquals(
|
|
474
561
|
"framebufferXOffset",
|
|
475
562
|
framebufferXOffset,
|
|
476
|
-
0
|
|
563
|
+
0,
|
|
477
564
|
);
|
|
478
565
|
Check.typeOf.number.greaterThanOrEquals(
|
|
479
566
|
"framebufferYOffset",
|
|
480
567
|
framebufferYOffset,
|
|
481
|
-
0
|
|
568
|
+
0,
|
|
482
569
|
);
|
|
483
570
|
if (framebufferXOffset + width > gl.drawingBufferWidth) {
|
|
484
571
|
throw new DeveloperError(
|
|
485
|
-
"framebufferXOffset + width must be less than or equal to drawingBufferWidth"
|
|
572
|
+
"framebufferXOffset + width must be less than or equal to drawingBufferWidth",
|
|
486
573
|
);
|
|
487
574
|
}
|
|
488
575
|
if (framebufferYOffset + height > gl.drawingBufferHeight) {
|
|
489
576
|
throw new DeveloperError(
|
|
490
|
-
"framebufferYOffset + height must be less than or equal to drawingBufferHeight."
|
|
577
|
+
"framebufferYOffset + height must be less than or equal to drawingBufferHeight.",
|
|
491
578
|
);
|
|
492
579
|
}
|
|
493
580
|
//>>includeEnd('debug');
|
|
@@ -538,60 +625,7 @@ Object.defineProperties(Texture.prototype, {
|
|
|
538
625
|
return this._sampler;
|
|
539
626
|
},
|
|
540
627
|
set: function (sampler) {
|
|
541
|
-
|
|
542
|
-
let magnificationFilter = sampler.magnificationFilter;
|
|
543
|
-
const context = this._context;
|
|
544
|
-
const pixelFormat = this._pixelFormat;
|
|
545
|
-
const pixelDatatype = this._pixelDatatype;
|
|
546
|
-
|
|
547
|
-
const mipmap =
|
|
548
|
-
minificationFilter ===
|
|
549
|
-
TextureMinificationFilter.NEAREST_MIPMAP_NEAREST ||
|
|
550
|
-
minificationFilter ===
|
|
551
|
-
TextureMinificationFilter.NEAREST_MIPMAP_LINEAR ||
|
|
552
|
-
minificationFilter ===
|
|
553
|
-
TextureMinificationFilter.LINEAR_MIPMAP_NEAREST ||
|
|
554
|
-
minificationFilter === TextureMinificationFilter.LINEAR_MIPMAP_LINEAR;
|
|
555
|
-
|
|
556
|
-
// float textures only support nearest filtering unless the linear extensions are supported, so override the sampler's settings
|
|
557
|
-
if (
|
|
558
|
-
(pixelDatatype === PixelDatatype.FLOAT &&
|
|
559
|
-
!context.textureFloatLinear) ||
|
|
560
|
-
(pixelDatatype === PixelDatatype.HALF_FLOAT &&
|
|
561
|
-
!context.textureHalfFloatLinear)
|
|
562
|
-
) {
|
|
563
|
-
minificationFilter = mipmap
|
|
564
|
-
? TextureMinificationFilter.NEAREST_MIPMAP_NEAREST
|
|
565
|
-
: TextureMinificationFilter.NEAREST;
|
|
566
|
-
magnificationFilter = TextureMagnificationFilter.NEAREST;
|
|
567
|
-
}
|
|
568
|
-
|
|
569
|
-
// WebGL 2 depth texture only support nearest filtering. See section 3.8.13 OpenGL ES 3 spec
|
|
570
|
-
if (context.webgl2) {
|
|
571
|
-
if (PixelFormat.isDepthFormat(pixelFormat)) {
|
|
572
|
-
minificationFilter = TextureMinificationFilter.NEAREST;
|
|
573
|
-
magnificationFilter = TextureMagnificationFilter.NEAREST;
|
|
574
|
-
}
|
|
575
|
-
}
|
|
576
|
-
|
|
577
|
-
const gl = context._gl;
|
|
578
|
-
const target = this._textureTarget;
|
|
579
|
-
|
|
580
|
-
gl.activeTexture(gl.TEXTURE0);
|
|
581
|
-
gl.bindTexture(target, this._texture);
|
|
582
|
-
gl.texParameteri(target, gl.TEXTURE_MIN_FILTER, minificationFilter);
|
|
583
|
-
gl.texParameteri(target, gl.TEXTURE_MAG_FILTER, magnificationFilter);
|
|
584
|
-
gl.texParameteri(target, gl.TEXTURE_WRAP_S, sampler.wrapS);
|
|
585
|
-
gl.texParameteri(target, gl.TEXTURE_WRAP_T, sampler.wrapT);
|
|
586
|
-
if (defined(this._textureFilterAnisotropic)) {
|
|
587
|
-
gl.texParameteri(
|
|
588
|
-
target,
|
|
589
|
-
this._textureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT,
|
|
590
|
-
sampler.maximumAnisotropy
|
|
591
|
-
);
|
|
592
|
-
}
|
|
593
|
-
gl.bindTexture(target, null);
|
|
594
|
-
|
|
628
|
+
setupSampler(this, sampler);
|
|
595
629
|
this._sampler = sampler;
|
|
596
630
|
},
|
|
597
631
|
},
|
|
@@ -645,6 +679,66 @@ Object.defineProperties(Texture.prototype, {
|
|
|
645
679
|
},
|
|
646
680
|
});
|
|
647
681
|
|
|
682
|
+
/**
|
|
683
|
+
* Set up a sampler for use with a texture
|
|
684
|
+
* @param {Texture} texture The texture to be sampled by this sampler
|
|
685
|
+
* @param {Sampler} sampler Information about how to sample the texture
|
|
686
|
+
* @private
|
|
687
|
+
*/
|
|
688
|
+
function setupSampler(texture, sampler) {
|
|
689
|
+
let { minificationFilter, magnificationFilter } = sampler;
|
|
690
|
+
|
|
691
|
+
const mipmap = [
|
|
692
|
+
TextureMinificationFilter.NEAREST_MIPMAP_NEAREST,
|
|
693
|
+
TextureMinificationFilter.NEAREST_MIPMAP_LINEAR,
|
|
694
|
+
TextureMinificationFilter.LINEAR_MIPMAP_NEAREST,
|
|
695
|
+
TextureMinificationFilter.LINEAR_MIPMAP_LINEAR,
|
|
696
|
+
].includes(minificationFilter);
|
|
697
|
+
|
|
698
|
+
const context = texture._context;
|
|
699
|
+
const pixelFormat = texture._pixelFormat;
|
|
700
|
+
const pixelDatatype = texture._pixelDatatype;
|
|
701
|
+
|
|
702
|
+
// float textures only support nearest filtering unless the linear extensions are supported
|
|
703
|
+
if (
|
|
704
|
+
(pixelDatatype === PixelDatatype.FLOAT && !context.textureFloatLinear) ||
|
|
705
|
+
(pixelDatatype === PixelDatatype.HALF_FLOAT &&
|
|
706
|
+
!context.textureHalfFloatLinear)
|
|
707
|
+
) {
|
|
708
|
+
// override the sampler's settings
|
|
709
|
+
minificationFilter = mipmap
|
|
710
|
+
? TextureMinificationFilter.NEAREST_MIPMAP_NEAREST
|
|
711
|
+
: TextureMinificationFilter.NEAREST;
|
|
712
|
+
magnificationFilter = TextureMagnificationFilter.NEAREST;
|
|
713
|
+
}
|
|
714
|
+
|
|
715
|
+
// WebGL 2 depth texture only support nearest filtering. See section 3.8.13 OpenGL ES 3 spec
|
|
716
|
+
if (context.webgl2) {
|
|
717
|
+
if (PixelFormat.isDepthFormat(pixelFormat)) {
|
|
718
|
+
minificationFilter = TextureMinificationFilter.NEAREST;
|
|
719
|
+
magnificationFilter = TextureMagnificationFilter.NEAREST;
|
|
720
|
+
}
|
|
721
|
+
}
|
|
722
|
+
|
|
723
|
+
const gl = context._gl;
|
|
724
|
+
const target = texture._textureTarget;
|
|
725
|
+
|
|
726
|
+
gl.activeTexture(gl.TEXTURE0);
|
|
727
|
+
gl.bindTexture(target, texture._texture);
|
|
728
|
+
gl.texParameteri(target, gl.TEXTURE_MIN_FILTER, minificationFilter);
|
|
729
|
+
gl.texParameteri(target, gl.TEXTURE_MAG_FILTER, magnificationFilter);
|
|
730
|
+
gl.texParameteri(target, gl.TEXTURE_WRAP_S, sampler.wrapS);
|
|
731
|
+
gl.texParameteri(target, gl.TEXTURE_WRAP_T, sampler.wrapT);
|
|
732
|
+
if (defined(texture._textureFilterAnisotropic)) {
|
|
733
|
+
gl.texParameteri(
|
|
734
|
+
target,
|
|
735
|
+
texture._textureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT,
|
|
736
|
+
sampler.maximumAnisotropy,
|
|
737
|
+
);
|
|
738
|
+
}
|
|
739
|
+
gl.bindTexture(target, null);
|
|
740
|
+
}
|
|
741
|
+
|
|
648
742
|
/**
|
|
649
743
|
* Copy new image data into this texture, from a source {@link ImageData}, {@link HTMLImageElement}, {@link HTMLCanvasElement}, or {@link HTMLVideoElement}.
|
|
650
744
|
* or an object with width, height, and arrayBufferView properties.
|
|
@@ -677,37 +771,39 @@ Texture.prototype.copyFrom = function (options) {
|
|
|
677
771
|
Check.defined("options", options);
|
|
678
772
|
//>>includeEnd('debug');
|
|
679
773
|
|
|
680
|
-
const
|
|
681
|
-
|
|
774
|
+
const {
|
|
775
|
+
xOffset = 0,
|
|
776
|
+
yOffset = 0,
|
|
777
|
+
source,
|
|
778
|
+
skipColorSpaceConversion = false,
|
|
779
|
+
} = options;
|
|
682
780
|
|
|
683
781
|
//>>includeStart('debug', pragmas.debug);
|
|
684
|
-
Check.defined("options.source",
|
|
782
|
+
Check.defined("options.source", source);
|
|
685
783
|
if (PixelFormat.isDepthFormat(this._pixelFormat)) {
|
|
686
784
|
throw new DeveloperError(
|
|
687
|
-
"Cannot call copyFrom when the texture pixel format is DEPTH_COMPONENT or DEPTH_STENCIL."
|
|
785
|
+
"Cannot call copyFrom when the texture pixel format is DEPTH_COMPONENT or DEPTH_STENCIL.",
|
|
688
786
|
);
|
|
689
787
|
}
|
|
690
788
|
if (PixelFormat.isCompressedFormat(this._pixelFormat)) {
|
|
691
789
|
throw new DeveloperError(
|
|
692
|
-
"Cannot call copyFrom with a compressed texture pixel format."
|
|
790
|
+
"Cannot call copyFrom with a compressed texture pixel format.",
|
|
693
791
|
);
|
|
694
792
|
}
|
|
695
793
|
Check.typeOf.number.greaterThanOrEquals("xOffset", xOffset, 0);
|
|
696
794
|
Check.typeOf.number.greaterThanOrEquals("yOffset", yOffset, 0);
|
|
697
795
|
Check.typeOf.number.lessThanOrEquals(
|
|
698
796
|
"xOffset + options.source.width",
|
|
699
|
-
xOffset +
|
|
700
|
-
this._width
|
|
797
|
+
xOffset + source.width,
|
|
798
|
+
this._width,
|
|
701
799
|
);
|
|
702
800
|
Check.typeOf.number.lessThanOrEquals(
|
|
703
801
|
"yOffset + options.source.height",
|
|
704
|
-
yOffset +
|
|
705
|
-
this._height
|
|
802
|
+
yOffset + source.height,
|
|
803
|
+
this._height,
|
|
706
804
|
);
|
|
707
805
|
//>>includeEnd('debug');
|
|
708
806
|
|
|
709
|
-
const source = options.source;
|
|
710
|
-
|
|
711
807
|
const context = this._context;
|
|
712
808
|
const gl = context._gl;
|
|
713
809
|
const target = this._textureTarget;
|
|
@@ -715,9 +811,17 @@ Texture.prototype.copyFrom = function (options) {
|
|
|
715
811
|
gl.activeTexture(gl.TEXTURE0);
|
|
716
812
|
gl.bindTexture(target, this._texture);
|
|
717
813
|
|
|
718
|
-
|
|
719
|
-
const
|
|
720
|
-
|
|
814
|
+
let { width, height } = source;
|
|
815
|
+
const arrayBufferView = source.arrayBufferView;
|
|
816
|
+
|
|
817
|
+
// Make sure we are using the element's intrinsic width and height where available
|
|
818
|
+
if (defined(source.videoWidth) && defined(source.videoHeight)) {
|
|
819
|
+
width = source.videoWidth;
|
|
820
|
+
height = source.videoHeight;
|
|
821
|
+
} else if (defined(source.naturalWidth) && defined(source.naturalHeight)) {
|
|
822
|
+
width = source.naturalWidth;
|
|
823
|
+
height = source.naturalHeight;
|
|
824
|
+
}
|
|
721
825
|
|
|
722
826
|
const textureWidth = this._width;
|
|
723
827
|
const textureHeight = this._height;
|
|
@@ -727,20 +831,15 @@ Texture.prototype.copyFrom = function (options) {
|
|
|
727
831
|
|
|
728
832
|
const preMultiplyAlpha = this._preMultiplyAlpha;
|
|
729
833
|
const flipY = this._flipY;
|
|
730
|
-
const skipColorSpaceConversion = defaultValue(
|
|
731
|
-
options.skipColorSpaceConversion,
|
|
732
|
-
false
|
|
733
|
-
);
|
|
734
834
|
|
|
735
835
|
let unpackAlignment = 4;
|
|
736
836
|
if (defined(arrayBufferView)) {
|
|
737
837
|
unpackAlignment = PixelFormat.alignmentInBytes(
|
|
738
838
|
pixelFormat,
|
|
739
839
|
pixelDatatype,
|
|
740
|
-
width
|
|
840
|
+
width,
|
|
741
841
|
);
|
|
742
842
|
}
|
|
743
|
-
|
|
744
843
|
gl.pixelStorei(gl.UNPACK_ALIGNMENT, unpackAlignment);
|
|
745
844
|
|
|
746
845
|
if (skipColorSpaceConversion) {
|
|
@@ -748,12 +847,13 @@ Texture.prototype.copyFrom = function (options) {
|
|
|
748
847
|
} else {
|
|
749
848
|
gl.pixelStorei(
|
|
750
849
|
gl.UNPACK_COLORSPACE_CONVERSION_WEBGL,
|
|
751
|
-
gl.BROWSER_DEFAULT_WEBGL
|
|
850
|
+
gl.BROWSER_DEFAULT_WEBGL,
|
|
752
851
|
);
|
|
753
852
|
}
|
|
754
853
|
|
|
755
854
|
let uploaded = false;
|
|
756
855
|
if (!this._initialized) {
|
|
856
|
+
let pixels;
|
|
757
857
|
if (
|
|
758
858
|
xOffset === 0 &&
|
|
759
859
|
yOffset === 0 &&
|
|
@@ -764,108 +864,83 @@ Texture.prototype.copyFrom = function (options) {
|
|
|
764
864
|
if (defined(arrayBufferView)) {
|
|
765
865
|
gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, false);
|
|
766
866
|
gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, false);
|
|
767
|
-
|
|
768
867
|
if (flipY) {
|
|
769
|
-
|
|
868
|
+
pixels = PixelFormat.flipY(
|
|
770
869
|
arrayBufferView,
|
|
771
870
|
pixelFormat,
|
|
772
871
|
pixelDatatype,
|
|
773
872
|
textureWidth,
|
|
774
|
-
textureHeight
|
|
873
|
+
textureHeight,
|
|
775
874
|
);
|
|
875
|
+
} else {
|
|
876
|
+
pixels = arrayBufferView;
|
|
776
877
|
}
|
|
777
|
-
gl.texImage2D(
|
|
778
|
-
target,
|
|
779
|
-
0,
|
|
780
|
-
internalFormat,
|
|
781
|
-
textureWidth,
|
|
782
|
-
textureHeight,
|
|
783
|
-
0,
|
|
784
|
-
pixelFormat,
|
|
785
|
-
PixelDatatype.toWebGLConstant(pixelDatatype, context),
|
|
786
|
-
arrayBufferView
|
|
787
|
-
);
|
|
788
878
|
} else {
|
|
789
879
|
// Only valid for DOM-Element uploads
|
|
790
880
|
gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, preMultiplyAlpha);
|
|
791
881
|
gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, flipY);
|
|
792
|
-
|
|
793
|
-
gl.texImage2D(
|
|
794
|
-
target,
|
|
795
|
-
0,
|
|
796
|
-
internalFormat,
|
|
797
|
-
pixelFormat,
|
|
798
|
-
PixelDatatype.toWebGLConstant(pixelDatatype, context),
|
|
799
|
-
source
|
|
800
|
-
);
|
|
882
|
+
pixels = source;
|
|
801
883
|
}
|
|
802
884
|
uploaded = true;
|
|
803
885
|
} else {
|
|
804
886
|
gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, false);
|
|
805
887
|
gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, false);
|
|
806
|
-
|
|
807
888
|
// initialize the entire texture to zero
|
|
808
|
-
|
|
889
|
+
pixels = PixelFormat.createTypedArray(
|
|
809
890
|
pixelFormat,
|
|
810
891
|
pixelDatatype,
|
|
811
892
|
textureWidth,
|
|
812
|
-
textureHeight
|
|
813
|
-
);
|
|
814
|
-
gl.texImage2D(
|
|
815
|
-
target,
|
|
816
|
-
0,
|
|
817
|
-
internalFormat,
|
|
818
|
-
textureWidth,
|
|
819
893
|
textureHeight,
|
|
820
|
-
0,
|
|
821
|
-
pixelFormat,
|
|
822
|
-
PixelDatatype.toWebGLConstant(pixelDatatype, context),
|
|
823
|
-
bufferView
|
|
824
894
|
);
|
|
825
895
|
}
|
|
896
|
+
gl.texImage2D(
|
|
897
|
+
target,
|
|
898
|
+
0,
|
|
899
|
+
internalFormat,
|
|
900
|
+
textureWidth,
|
|
901
|
+
textureHeight,
|
|
902
|
+
0,
|
|
903
|
+
pixelFormat,
|
|
904
|
+
PixelDatatype.toWebGLConstant(pixelDatatype, context),
|
|
905
|
+
pixels,
|
|
906
|
+
);
|
|
826
907
|
this._initialized = true;
|
|
827
908
|
}
|
|
828
909
|
|
|
829
910
|
if (!uploaded) {
|
|
911
|
+
let pixels;
|
|
830
912
|
if (defined(arrayBufferView)) {
|
|
831
913
|
gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, false);
|
|
832
914
|
gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, false);
|
|
833
915
|
|
|
834
916
|
if (flipY) {
|
|
835
|
-
|
|
917
|
+
pixels = PixelFormat.flipY(
|
|
836
918
|
arrayBufferView,
|
|
837
919
|
pixelFormat,
|
|
838
920
|
pixelDatatype,
|
|
839
921
|
width,
|
|
840
|
-
height
|
|
922
|
+
height,
|
|
841
923
|
);
|
|
924
|
+
} else {
|
|
925
|
+
pixels = arrayBufferView;
|
|
842
926
|
}
|
|
843
|
-
gl.texSubImage2D(
|
|
844
|
-
target,
|
|
845
|
-
0,
|
|
846
|
-
xOffset,
|
|
847
|
-
yOffset,
|
|
848
|
-
width,
|
|
849
|
-
height,
|
|
850
|
-
pixelFormat,
|
|
851
|
-
PixelDatatype.toWebGLConstant(pixelDatatype, context),
|
|
852
|
-
arrayBufferView
|
|
853
|
-
);
|
|
854
927
|
} else {
|
|
855
928
|
// Only valid for DOM-Element uploads
|
|
856
929
|
gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, preMultiplyAlpha);
|
|
857
930
|
gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, flipY);
|
|
858
|
-
|
|
859
|
-
gl.texSubImage2D(
|
|
860
|
-
target,
|
|
861
|
-
0,
|
|
862
|
-
xOffset,
|
|
863
|
-
yOffset,
|
|
864
|
-
pixelFormat,
|
|
865
|
-
PixelDatatype.toWebGLConstant(pixelDatatype, context),
|
|
866
|
-
source
|
|
867
|
-
);
|
|
931
|
+
pixels = source;
|
|
868
932
|
}
|
|
933
|
+
gl.texSubImage2D(
|
|
934
|
+
target,
|
|
935
|
+
0,
|
|
936
|
+
xOffset,
|
|
937
|
+
yOffset,
|
|
938
|
+
width,
|
|
939
|
+
height,
|
|
940
|
+
pixelFormat,
|
|
941
|
+
PixelDatatype.toWebGLConstant(pixelDatatype, context),
|
|
942
|
+
pixels,
|
|
943
|
+
);
|
|
869
944
|
}
|
|
870
945
|
|
|
871
946
|
gl.bindTexture(target, null);
|
|
@@ -897,7 +972,7 @@ Texture.prototype.copyFromFramebuffer = function (
|
|
|
897
972
|
framebufferXOffset,
|
|
898
973
|
framebufferYOffset,
|
|
899
974
|
width,
|
|
900
|
-
height
|
|
975
|
+
height,
|
|
901
976
|
) {
|
|
902
977
|
xOffset = defaultValue(xOffset, 0);
|
|
903
978
|
yOffset = defaultValue(yOffset, 0);
|
|
@@ -909,22 +984,22 @@ Texture.prototype.copyFromFramebuffer = function (
|
|
|
909
984
|
//>>includeStart('debug', pragmas.debug);
|
|
910
985
|
if (PixelFormat.isDepthFormat(this._pixelFormat)) {
|
|
911
986
|
throw new DeveloperError(
|
|
912
|
-
"Cannot call copyFromFramebuffer when the texture pixel format is DEPTH_COMPONENT or DEPTH_STENCIL."
|
|
987
|
+
"Cannot call copyFromFramebuffer when the texture pixel format is DEPTH_COMPONENT or DEPTH_STENCIL.",
|
|
913
988
|
);
|
|
914
989
|
}
|
|
915
990
|
if (this._pixelDatatype === PixelDatatype.FLOAT) {
|
|
916
991
|
throw new DeveloperError(
|
|
917
|
-
"Cannot call copyFromFramebuffer when the texture pixel data type is FLOAT."
|
|
992
|
+
"Cannot call copyFromFramebuffer when the texture pixel data type is FLOAT.",
|
|
918
993
|
);
|
|
919
994
|
}
|
|
920
995
|
if (this._pixelDatatype === PixelDatatype.HALF_FLOAT) {
|
|
921
996
|
throw new DeveloperError(
|
|
922
|
-
"Cannot call copyFromFramebuffer when the texture pixel data type is HALF_FLOAT."
|
|
997
|
+
"Cannot call copyFromFramebuffer when the texture pixel data type is HALF_FLOAT.",
|
|
923
998
|
);
|
|
924
999
|
}
|
|
925
1000
|
if (PixelFormat.isCompressedFormat(this._pixelFormat)) {
|
|
926
1001
|
throw new DeveloperError(
|
|
927
|
-
"Cannot call copyFrom with a compressed texture pixel format."
|
|
1002
|
+
"Cannot call copyFrom with a compressed texture pixel format.",
|
|
928
1003
|
);
|
|
929
1004
|
}
|
|
930
1005
|
|
|
@@ -933,22 +1008,22 @@ Texture.prototype.copyFromFramebuffer = function (
|
|
|
933
1008
|
Check.typeOf.number.greaterThanOrEquals(
|
|
934
1009
|
"framebufferXOffset",
|
|
935
1010
|
framebufferXOffset,
|
|
936
|
-
0
|
|
1011
|
+
0,
|
|
937
1012
|
);
|
|
938
1013
|
Check.typeOf.number.greaterThanOrEquals(
|
|
939
1014
|
"framebufferYOffset",
|
|
940
1015
|
framebufferYOffset,
|
|
941
|
-
0
|
|
1016
|
+
0,
|
|
942
1017
|
);
|
|
943
1018
|
Check.typeOf.number.lessThanOrEquals(
|
|
944
1019
|
"xOffset + width",
|
|
945
1020
|
xOffset + width,
|
|
946
|
-
this._width
|
|
1021
|
+
this._width,
|
|
947
1022
|
);
|
|
948
1023
|
Check.typeOf.number.lessThanOrEquals(
|
|
949
1024
|
"yOffset + height",
|
|
950
1025
|
yOffset + height,
|
|
951
|
-
this._height
|
|
1026
|
+
this._height,
|
|
952
1027
|
);
|
|
953
1028
|
//>>includeEnd('debug');
|
|
954
1029
|
|
|
@@ -965,7 +1040,7 @@ Texture.prototype.copyFromFramebuffer = function (
|
|
|
965
1040
|
framebufferXOffset,
|
|
966
1041
|
framebufferYOffset,
|
|
967
1042
|
width,
|
|
968
|
-
height
|
|
1043
|
+
height,
|
|
969
1044
|
);
|
|
970
1045
|
gl.bindTexture(target, null);
|
|
971
1046
|
this._initialized = true;
|
|
@@ -987,23 +1062,23 @@ Texture.prototype.generateMipmap = function (hint) {
|
|
|
987
1062
|
//>>includeStart('debug', pragmas.debug);
|
|
988
1063
|
if (PixelFormat.isDepthFormat(this._pixelFormat)) {
|
|
989
1064
|
throw new DeveloperError(
|
|
990
|
-
"Cannot call generateMipmap when the texture pixel format is DEPTH_COMPONENT or DEPTH_STENCIL."
|
|
1065
|
+
"Cannot call generateMipmap when the texture pixel format is DEPTH_COMPONENT or DEPTH_STENCIL.",
|
|
991
1066
|
);
|
|
992
1067
|
}
|
|
993
1068
|
if (PixelFormat.isCompressedFormat(this._pixelFormat)) {
|
|
994
1069
|
throw new DeveloperError(
|
|
995
|
-
"Cannot call generateMipmap with a compressed pixel format."
|
|
1070
|
+
"Cannot call generateMipmap with a compressed pixel format.",
|
|
996
1071
|
);
|
|
997
1072
|
}
|
|
998
1073
|
if (!this._context.webgl2) {
|
|
999
1074
|
if (this._width > 1 && !CesiumMath.isPowerOfTwo(this._width)) {
|
|
1000
1075
|
throw new DeveloperError(
|
|
1001
|
-
"width must be a power of two to call generateMipmap() in a WebGL1 context."
|
|
1076
|
+
"width must be a power of two to call generateMipmap() in a WebGL1 context.",
|
|
1002
1077
|
);
|
|
1003
1078
|
}
|
|
1004
1079
|
if (this._height > 1 && !CesiumMath.isPowerOfTwo(this._height)) {
|
|
1005
1080
|
throw new DeveloperError(
|
|
1006
|
-
"height must be a power of two to call generateMipmap() in a WebGL1 context."
|
|
1081
|
+
"height must be a power of two to call generateMipmap() in a WebGL1 context.",
|
|
1007
1082
|
);
|
|
1008
1083
|
}
|
|
1009
1084
|
}
|