diff --git a/CHANGES.md b/CHANGES.md index a066c4bad50..bdc923cfa71 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,5 +1,13 @@ # Change Log +## 1.137 + +### @cesium/engine + +#### Deprecated :hourglass_flowing_sand: + +- Beginning in CesiumJS 1.140, billboards and labels will require device support for WebGL 2, or WebGL 1 with ANGLE_instanced_arrays and MAX_VERTEX_TEXTURE_IMAGE_UNITS > 0. For more information or to share feedback, please see [#13053](https://github.com/CesiumGS/cesium/issues/13053). [#13067](https://github.com/CesiumGS/cesium/issues/13067) + ## 1.136 - 2025-12-01 ### @cesium/engine diff --git a/packages/engine/Source/Scene/BillboardCollection.js b/packages/engine/Source/Scene/BillboardCollection.js index 38b13c8ebeb..ebceccc471c 100644 --- a/packages/engine/Source/Scene/BillboardCollection.js +++ b/packages/engine/Source/Scene/BillboardCollection.js @@ -35,6 +35,7 @@ import TextureAtlas from "../Renderer/TextureAtlas.js"; import VerticalOrigin from "./VerticalOrigin.js"; import Ellipsoid from "../Core/Ellipsoid.js"; import WebGLConstants from "../Core/WebGLConstants.js"; +import deprecationWarning from "../Core/deprecationWarning.js"; const SHOW_INDEX = Billboard.SHOW_INDEX; const POSITION_INDEX = Billboard.POSITION_INDEX; @@ -1784,6 +1785,19 @@ BillboardCollection.prototype.update = function (frameState) { } const context = frameState.context; + + if ( + !context.instancedArrays || + !(ContextLimits.maximumVertexTextureImageUnits > 0) + ) { + deprecationWarning( + "Billboard-unsupported-ANGLE_instanced_arrays", + "Beginning in CesiumJS 1.140, billboards and labels will require device support for WebGL 2, " + + "or WebGL 1 with ANGLE_instanced_arrays and MAX_VERTEX_TEXTURE_IMAGE_UNITS > 0. For more " + + "information or to share feedback, see: https://github.com/CesiumGS/cesium/issues/13053", + ); + } + this._instanced = context.instancedArrays; attributeLocations = this._instanced ? attributeLocationsInstanced