@arcgis/core 6.0.0-next.33 → 6.0.0-next.34
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/applications/Urban/meshUtils.d.ts +1 -0
- package/applications/Urban/meshUtils.js +1 -1
- package/assets/esri/core/workers/RemoteClient.js +1 -1
- package/assets/esri/core/workers/chunks/{f3dc0bc0e00635855a7a.js → 03daf6f235c6edef6268.js} +1 -1
- package/assets/esri/core/workers/chunks/04a1d08c3b5b1dc7628f.js +1 -0
- package/assets/esri/core/workers/chunks/{1eaf8bfdd3765a90ccc2.js → 0523f893870a1546d7d9.js} +1 -1
- package/assets/esri/core/workers/chunks/{72d20d3957d612f86431.js → 0a508e25ec05363e1f04.js} +1 -1
- package/assets/esri/core/workers/chunks/{84038dd85005fea413eb.js → 139e753d95cfc9470e74.js} +1 -1
- package/assets/esri/core/workers/chunks/15950c2fb173b62ee0ec.js +1 -0
- package/assets/esri/core/workers/chunks/{418addce122dbb8897b4.js → 1a614bac5db42c6263f8.js} +1 -1
- package/assets/esri/core/workers/chunks/{58c3ae6030def2ed5f31.js → 1b17f5f720f6cf3f6d73.js} +1 -1
- package/assets/esri/core/workers/chunks/{f9dc38761b314d33890f.js → 1f51567f47c2e2fc8a23.js} +1 -1
- package/assets/esri/core/workers/chunks/2211ff0a1f1ae8100231.js +1 -0
- package/assets/esri/core/workers/chunks/24ada9511b074dc5ae27.js +1 -0
- package/assets/esri/core/workers/chunks/29c610ce1c81ebb84a6b.js +1 -0
- package/assets/esri/core/workers/chunks/2b4dd42920d37b1ff0a9.js +2 -0
- package/assets/esri/core/workers/chunks/2c8ca43563c4f3e94535.js +1 -0
- package/assets/esri/core/workers/chunks/{55a9eaeb152a3abada67.js → 311e4969f19df63451dd.js} +1 -1
- package/assets/esri/core/workers/chunks/{8da2a10318f49d0dc73a.js → 31ef7b7074b3e3829763.js} +1 -1
- package/assets/esri/core/workers/chunks/{360c944c610efa2051fc.js → 379db67f78161ebd5468.js} +2 -2
- package/assets/esri/core/workers/chunks/{b8fd7c3b36981261378b.js → 38df7b1d58c4bcf693d0.js} +1 -1
- package/assets/esri/core/workers/chunks/{be55771758e4bcef0976.js → 3e406043a374ee17475b.js} +1 -1
- package/assets/esri/core/workers/chunks/46c290108a90518ef695.js +1 -0
- package/assets/esri/core/workers/chunks/{a596779eaeec7310671d.js → 478a89317a12e9b4d146.js} +1 -1
- package/assets/esri/core/workers/chunks/{fcc3902d6d9eda6f09f5.js → 48b8b57f559a53c6c513.js} +1 -1
- package/assets/esri/core/workers/chunks/4f3e0d583cfa9d1d6727.js +2 -0
- package/assets/esri/core/workers/chunks/507ecc3692e6d0700958.js +1 -0
- package/assets/esri/core/workers/chunks/{bd46a04a9ee4ea9e6ef1.js → 5864bce1498a13ee5b7e.js} +2 -2
- package/assets/esri/core/workers/chunks/{f4d91d470ca5fea0bd26.js → 5bd1414220e42cb8ebcf.js} +1 -1
- package/assets/esri/core/workers/chunks/5c3aa8386705c5e40358.js +1 -0
- package/assets/esri/core/workers/chunks/{176d75e76318bfc25a53.js → 60c8eedd06080edab3e3.js} +1 -1
- package/assets/esri/core/workers/chunks/661847f1b7044f21600f.js +1 -0
- package/assets/esri/core/workers/chunks/{1a8d8274df292d65f82e.js → 676c8c0329d68f9f3ac4.js} +1 -1
- package/assets/esri/core/workers/chunks/{29cc6b1705418b1be5d7.js → 687deb918eb48a963c8f.js} +1 -1
- package/assets/esri/core/workers/chunks/{0694c7bcfe71692e2ccf.js → 723df53cfa0189837d01.js} +1 -1
- package/assets/esri/core/workers/chunks/7582654a0fc70910731c.js +1 -0
- package/assets/esri/core/workers/chunks/{1ee4df0fd61440cb5f02.js → 7810586c35dfe1437516.js} +1 -1
- package/assets/esri/core/workers/chunks/8517d96fc8ba7b21d845.js +2 -0
- package/assets/esri/core/workers/chunks/90360c0bd053d3e3fd77.js +1 -0
- package/assets/esri/core/workers/chunks/9c3de54513bf8619271c.js +1 -0
- package/assets/esri/core/workers/chunks/{0e445ec3523de9f2dfa2.js → a107f16cd004626b5018.js} +1 -1
- package/assets/esri/core/workers/chunks/{e3b212f8af448ec29eef.js → a1e8209d00809c9520a0.js} +1 -1
- package/assets/esri/core/workers/chunks/{46453ebfee17b5421d9d.js → bf62be00f3040f91aaee.js} +1 -1
- package/assets/esri/core/workers/chunks/{89dc49e784f7ba3b93ea.js → c034c30e577d620b8e28.js} +1 -1
- package/assets/esri/core/workers/chunks/c5bf19da62a3d31009fe.js +2 -0
- package/assets/esri/core/workers/chunks/{2226c20c38e20713bcb5.js.LICENSE.txt → c5bf19da62a3d31009fe.js.LICENSE.txt} +1 -1
- package/assets/esri/core/workers/chunks/{6bb191b19ce43a27f205.js → caad4f475d6eb01c2850.js} +1 -1
- package/assets/esri/core/workers/chunks/cd55cad81accf51d2989.js +1 -0
- package/assets/esri/core/workers/chunks/db1f7b2562de495b3401.js +2 -0
- package/assets/esri/core/workers/chunks/e0a37d3bcb9a944e53dd.js +1 -0
- package/assets/esri/core/workers/chunks/{fe6dcb21570395e46ce8.js → e0a7a75709121a26f255.js} +1 -1
- package/assets/esri/core/workers/chunks/{096b2bf1c0d69d27f20c.js → e8e54faf947a582b4cf7.js} +1 -1
- package/assets/esri/core/workers/chunks/{636e9c4ac1f9ae98f9d1.js → ea81f9d71b0842a4be26.js} +1 -1
- package/assets/esri/core/workers/chunks/{164c8eeefa8232b2b191.js → eaa0e906b46ae4c84d72.js} +2 -2
- package/assets/esri/core/workers/chunks/{a504a5e06cb89a620799.js → ec8b7476eac4718eb0ac.js} +1 -1
- package/chunks/GlobalIllumination.glsl.js +55 -46
- package/chunks/GlobalIlluminationBlur.glsl.js +13 -9
- package/chunks/RibbonLine.glsl.js +90 -88
- package/config.js +1 -1
- package/core/has.js +1 -1
- package/core/workers.d.ts +1 -0
- package/geometry/support/MeshLocalVertexSpace.d.ts +3 -3
- package/geometry/support/aaBoundingRect.js +1 -1
- package/geometry/support/meshUtils/convertMeshVertexSpace.js +1 -1
- package/geometry/support/meshUtils/vertexSpaceConversion.js +1 -1
- package/identity/IdentityManagerBase.js +1 -1
- package/kernel.d.ts +3 -3
- package/kernel.js +1 -1
- package/layers/VoxelWasmPerSceneView.js +1 -1
- package/layers/WFSLayer.d.ts +8 -4
- package/layers/graphics/sources/WFSSource.js +1 -1
- package/layers/graphics/sources/geojson/geojson.js +1 -1
- package/layers/mixins/ArcGISMapService.d.ts +17 -0
- package/layers/mixins/ArcGISMapService.js +1 -1
- package/layers/ogc/wfsUtils.d.ts +7 -2
- package/layers/ogc/wfsUtils.js +1 -1
- package/layers/ogc/xmlUtils.js +1 -1
- package/package.json +4 -4
- package/rest/route.d.ts +1 -1
- package/rest/support/AreasAndLengthsParameters.d.ts +1 -1
- package/rest/support/LengthsParameters.d.ts +1 -1
- package/symbols/TextSymbol.d.ts +0 -1
- package/views/2d/layers/imagery/BaseImageryTileSubView2D.js +1 -1
- package/views/3d/FocusAreasView.js +1 -1
- package/views/3d/analysis/AreaMeasurement/support/AreaMeasurementVisualization.js +1 -1
- package/views/3d/analysis/DirectLineMeasurement/DirectLineMeasurementVisualization.js +1 -1
- package/views/3d/analysis/ElevationProfile/ElevationProfileLineSceneComputation.js +1 -1
- package/views/3d/analysis/LineOfSight/LineOfSightController.js +1 -1
- package/views/3d/layers/graphics/ElevationAligners.js +1 -1
- package/views/3d/layers/graphics/Graphics3DCore.js +1 -1
- package/views/3d/layers/graphics/Graphics3DMeshFillSymbolLayer.js +1 -1
- package/views/3d/layers/graphics/Graphics3DMeshObject3DGraphicLayer.js +1 -1
- package/views/3d/layers/graphics/Graphics3DSymbol.js +1 -1
- package/views/3d/layers/graphics/Graphics3DWaterSymbolLayer.js +1 -1
- package/views/3d/layers/graphics/Graphics3DWebStyleSymbol.js +1 -1
- package/views/3d/layers/graphics/MeshFastUpdateProcessor.js +1 -1
- package/views/3d/layers/graphics/polygonUtils.js +1 -1
- package/views/3d/state/ScreenSizePerspective.js +1 -1
- package/views/3d/state/ViewStateManager.js +1 -1
- package/views/3d/state/helpers/SceneIntersectionHelper.js +1 -1
- package/views/3d/support/RenderCoordsHelper.js +1 -1
- package/views/3d/terrain/TerrainRenderer.js +1 -1
- package/views/3d/terrain/TerrainSurface.js +1 -1
- package/views/3d/terrain/TileRenderer.js +1 -1
- package/views/3d/webgl-engine/lib/ManagedTexture.js +1 -1
- package/views/3d/webgl-engine/lib/NavigationDepthCache.js +1 -1
- package/views/3d/webgl-engine/lib/Renderer.js +1 -1
- package/views/3d/webgl-engine/lib/RibbonLineVertexInfo.js +1 -1
- package/views/3d/webgl-engine/materials/RibbonLineMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/WaterMaterial.js +1 -1
- package/views/SceneView.js +1 -1
- package/views/webgl/BufferObject.js +1 -1
- package/views/webgl/FramebufferObject.js +1 -1
- package/widgets/ElevationProfile/ElevationProfileLineView.js +1 -1
- package/widgets/HistogramRangeSlider.d.ts +1 -1
- package/assets/esri/core/workers/chunks/0cc7fba402a93e6d2455.js +0 -2
- package/assets/esri/core/workers/chunks/131185d26343a997495e.js +0 -1
- package/assets/esri/core/workers/chunks/1a3f71c4d97c36050030.js +0 -1
- package/assets/esri/core/workers/chunks/2226c20c38e20713bcb5.js +0 -2
- package/assets/esri/core/workers/chunks/2981e904ab62f3ed80d0.js +0 -2
- package/assets/esri/core/workers/chunks/32cc59e126df8c96a0cf.js +0 -2
- package/assets/esri/core/workers/chunks/5bb6c255bdc8aa9ba23e.js +0 -1
- package/assets/esri/core/workers/chunks/654f5441227579d2b6b4.js +0 -1
- package/assets/esri/core/workers/chunks/7084dd6e10c6c1393e92.js +0 -1
- package/assets/esri/core/workers/chunks/7566321c6a2913f2852b.js +0 -1
- package/assets/esri/core/workers/chunks/7b5cd150a4d0139850be.js +0 -1
- package/assets/esri/core/workers/chunks/7cc9d7a88b64e25fce14.js +0 -1
- package/assets/esri/core/workers/chunks/844eedda8f749972f707.js +0 -2
- package/assets/esri/core/workers/chunks/87177e0f82e8a6ae3189.js +0 -1
- package/assets/esri/core/workers/chunks/9976eaa81085c0d17e14.js +0 -1
- package/assets/esri/core/workers/chunks/a2196a49f89d57a0a1c7.js +0 -1
- package/assets/esri/core/workers/chunks/aba259a70bee68d2edb7.js +0 -1
- package/assets/esri/core/workers/chunks/b9cb92858a576eb6aa06.js +0 -1
- package/assets/esri/core/workers/chunks/c33a9635c294c8774977.js +0 -1
- package/assets/esri/core/workers/chunks/f39c700f3db7db52b522.js +0 -1
- /package/assets/esri/core/workers/chunks/{844eedda8f749972f707.js.LICENSE.txt → 2b4dd42920d37b1ff0a9.js.LICENSE.txt} +0 -0
- /package/assets/esri/core/workers/chunks/{32cc59e126df8c96a0cf.js.LICENSE.txt → 4f3e0d583cfa9d1d6727.js.LICENSE.txt} +0 -0
- /package/assets/esri/core/workers/chunks/{bd46a04a9ee4ea9e6ef1.js.LICENSE.txt → 5864bce1498a13ee5b7e.js.LICENSE.txt} +0 -0
- /package/assets/esri/core/workers/chunks/{0cc7fba402a93e6d2455.js.LICENSE.txt → 8517d96fc8ba7b21d845.js.LICENSE.txt} +0 -0
- /package/assets/esri/core/workers/chunks/{2981e904ab62f3ed80d0.js.LICENSE.txt → db1f7b2562de495b3401.js.LICENSE.txt} +0 -0
- /package/assets/esri/core/workers/chunks/{164c8eeefa8232b2b191.js.LICENSE.txt → eaa0e906b46ae4c84d72.js.LICENSE.txt} +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
-
import{isArrayLike as e}from"../../core/arrayUtils.js";import has from"../../core/has.js";import t from"../../core/Logger.js";import{createAbortError as n}from"../../core/promiseUtils.js";import{Milliseconds as r}from"../../core/time.js";import{isUint8Array as i,isUint16Array as a,isUint32Array as o}from"../../core/typedArrayUtil.js";import{checkWebGLError as s}from"./checkWebGLError.js";import{ResourceType as c,DataType as l}from"./enums.js";const u=()=>t.getLogger(`esri.views.webgl.BufferObject`),d=null,f=!!has(`esri-tests-disable-gpu-memory-measurements`);class p{static createIndex(e,t,n){return new p(e,34963,t,n)}static createUniform(e,t,n){return new p(e,35345,t,n)}static createPixelPack(e,t=35041,n){let r=new p(e,35051,t);return n&&r.setSize(n),r}static createPixelUnpack(e,t=35040,n){return new p(e,35052,t,n)}static createTransformFeedback(e,t=35044,n){let r=new p(e,35982,t);return r.setSize(n),r}constructor(e,t,n,r){this._context=e,this.bufferType=t,this.usage=n,this._glName=null,this._sizeBytes=-1,this._indexType=void 0,e.instanceCounter.increment(c.BufferObject,this),this._glName=this._context.gl.createBuffer(),s(this._context.gl),r&&this.setData(r)}get glName(){return this._glName}get size(){if(this.bufferType===34963)switch(this._indexType){case l.UNSIGNED_INT:return this._sizeBytes/4;case l.UNSIGNED_SHORT:return this._sizeBytes/2;case l.UNSIGNED_BYTE:case void 0:case null:break;default:this._indexType}return this._sizeBytes}get indexType(){return this._indexType}get sizeBytes(){return this._sizeBytes}get usedMemory(){return f?0:this.sizeBytes}get _isVAOAware(){return this.bufferType===34963||this.bufferType===34962}dispose(){this._context?.gl?(this._glName&&=(this._context.gl.deleteBuffer(this._glName),null),this._context.instanceCounter.decrement(c.BufferObject,this),this._context=null):this._glName&&u().warn(`Leaked WebGL buffer object`)}setSize(e,t=null){if(this.bufferType===34963&&t!=null)switch(this._indexType=t,t){case l.UNSIGNED_SHORT:e*=2;break;case l.UNSIGNED_INT:e*=4;break;case l.UNSIGNED_BYTE:}this._setBufferData(e)}setData(e){if(!e)return;let t=e.byteLength;this.bufferType===34963&&(i(e)?this._indexType=l.UNSIGNED_BYTE:a(e)?this._indexType=l.UNSIGNED_SHORT:o(e)&&(this._indexType=l.UNSIGNED_INT)),this._setBufferData(t,e)}setIndexType(e){this.bufferType===34963&&(this._indexType=e)}_setBufferData(e,t=null){this._sizeBytes=e;let n=this._context.getBoundVAO();this._isVAOAware&&this._context.bindVAO(null),this._context.bindBuffer(this);let r=this._context.gl;t==null?r.bufferData(this.bufferType,e,this.usage):r.bufferData(this.bufferType,t,this.usage),s(r),this._isVAOAware&&this._context.bindVAO(n)}setSubData(e,t,n,r){if(!e)return;let i=this._context.getBoundVAO();this._isVAOAware&&this._context.bindVAO(null),this._context.bindBuffer(this);let{gl:a}=this._context;a.bufferSubData(this.bufferType,t*e.BYTES_PER_ELEMENT,e,n,r-n),s(a),this._isVAOAware&&this._context.bindVAO(i)}getSubData(e,t=0,n,r){if(n<0||r<0)return;let i=m(e)?e.BYTES_PER_ELEMENT:1;if(i*((n??0)+(r??0))>e.byteLength)return;t+i*(r??0)>this.usedMemory&&u().warn(`Potential problem getting subdata: requested data exceeds buffer size!`);let a=this._context.gl
|
|
2
|
+
import{isArrayLike as e}from"../../core/arrayUtils.js";import has from"../../core/has.js";import t from"../../core/Logger.js";import{createAbortError as n}from"../../core/promiseUtils.js";import{Milliseconds as r}from"../../core/time.js";import{isUint8Array as i,isUint16Array as a,isUint32Array as o}from"../../core/typedArrayUtil.js";import{checkWebGLError as s}from"./checkWebGLError.js";import{ResourceType as c,DataType as l}from"./enums.js";const u=()=>t.getLogger(`esri.views.webgl.BufferObject`),d=null,f=!!has(`esri-tests-disable-gpu-memory-measurements`);class p{static createIndex(e,t,n){return new p(e,34963,t,n)}static createUniform(e,t,n){return new p(e,35345,t,n)}static createPixelPack(e,t=35041,n){let r=new p(e,35051,t);return n&&r.setSize(n),r}static createPixelUnpack(e,t=35040,n){return new p(e,35052,t,n)}static createTransformFeedback(e,t=35044,n){let r=new p(e,35982,t);return r.setSize(n),r}constructor(e,t,n,r){this._context=e,this.bufferType=t,this.usage=n,this._glName=null,this._sizeBytes=-1,this._indexType=void 0,e.instanceCounter.increment(c.BufferObject,this),this._glName=this._context.gl.createBuffer(),s(this._context.gl),r&&this.setData(r)}get glName(){return this._glName}get size(){if(this.bufferType===34963)switch(this._indexType){case l.UNSIGNED_INT:return this._sizeBytes/4;case l.UNSIGNED_SHORT:return this._sizeBytes/2;case l.UNSIGNED_BYTE:case void 0:case null:break;default:this._indexType}return this._sizeBytes}get indexType(){return this._indexType}get sizeBytes(){return this._sizeBytes}get usedMemory(){return f?0:this.sizeBytes}get _isVAOAware(){return this.bufferType===34963||this.bufferType===34962}dispose(){this._context?.gl?(this._glName&&=(this._context.gl.deleteBuffer(this._glName),null),this._context.instanceCounter.decrement(c.BufferObject,this),this._context=null):this._glName&&u().warn(`Leaked WebGL buffer object`)}setSize(e,t=null){if(this.bufferType===34963&&t!=null)switch(this._indexType=t,t){case l.UNSIGNED_SHORT:e*=2;break;case l.UNSIGNED_INT:e*=4;break;case l.UNSIGNED_BYTE:}this._setBufferData(e)}setData(e){if(!e)return;let t=e.byteLength;this.bufferType===34963&&(i(e)?this._indexType=l.UNSIGNED_BYTE:a(e)?this._indexType=l.UNSIGNED_SHORT:o(e)&&(this._indexType=l.UNSIGNED_INT)),this._setBufferData(t,e)}setIndexType(e){this.bufferType===34963&&(this._indexType=e)}_setBufferData(e,t=null){this._sizeBytes=e;let n=this._context.getBoundVAO();this._isVAOAware&&this._context.bindVAO(null),this._context.bindBuffer(this);let r=this._context.gl;t==null?r.bufferData(this.bufferType,e,this.usage):r.bufferData(this.bufferType,t,this.usage),s(r),this._isVAOAware&&this._context.bindVAO(n)}setSubData(e,t,n,r){if(!e)return;let i=this._context.getBoundVAO();this._isVAOAware&&this._context.bindVAO(null),this._context.bindBuffer(this);let{gl:a}=this._context;a.bufferSubData(this.bufferType,t*e.BYTES_PER_ELEMENT,e,n,r-n),s(a),this._isVAOAware&&this._context.bindVAO(i)}getSubData(e,t=0,n,r){if(n<0||r<0)return;let i=m(e)?e.BYTES_PER_ELEMENT:1;if(i*((n??0)+(r??0))>e.byteLength)return;t+i*(r??0)>this.usedMemory&&u().warn(`Potential problem getting subdata: requested data exceeds buffer size!`);let a=this._context.gl,o=this.bufferType===35982?35982:36662;this._context.bindBuffer(this,o);try{a.getBufferSubData(o,t,e,n,r)}finally{this._context.unbindBuffer(o)}}async getSubDataAsync(e,t=0,i,a,o){if(await this._context.clientWaitAsync(r(10),o),!this._context||!this._glName)throw n();this.getSubData(e,t,i,a)}}function m(t){return e(t)}export{p as BufferObject,d as tracer};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
-
import e from"../../core/Logger.js";import{disposeMaybe as t}from"../../core/maybe.js";import{BufferObject as n}from"./BufferObject.js";import{webglDebugEnabled as r}from"./checkWebGLError.js";import{ResourceType as i,ColorAttachment0 as a,PixelType as o,StencilAttachment as s,SizedDepthStencilFormat as c,DepthStencilAttachment as l,SizedDepthFormat as u,DepthAttachment as d}from"./enums.js";import{Renderbuffer as f}from"./Renderbuffer.js";import p from"./Texture.js";const m=()=>e.getLogger(`esri.views.webgl.FramebufferObject`);class h{constructor(e,t,n){if(this._context=e,this._level=0,this._glName=null,this._colorAttachments=new Map,this._depthStencilBuffer=null,this._depthStencilTexture=null,e.instanceCounter.increment(i.FramebufferObject,this),t!=null){let n=C(e,t);n!=null&&(this._colorAttachments.set(a,n),_(n)?this._validateTextureDescriptor(n.descriptor):this._validateRenderbufferDescriptor(n.descriptor)),this._validateColorAttachmentPoint(a)}if(n!=null){if(y(n))this._depthStencilTexture=_(n)?n:new p(e,n),this._validateTextureDescriptor(this._depthStencilTexture.descriptor);else{let t=v(n)?n:new f(e,n);this._depthStencilBuffer=t,this._validateRenderbufferDescriptor(t.descriptor)}}}get glName(){return this._glName}get colorTexture(){let e=this._colorAttachments.get(a);return _(e)?e:null}get depthStencil(){return this._depthStencilTexture||this._depthStencilBuffer}get depthStencilTexture(){return this._depthStencilTexture}get width(){return(this._colorAttachments.get(a)??this._depthStencilTexture??this._depthStencilBuffer)?.descriptor?.width??0}get height(){return(this._colorAttachments.get(a)??this._depthStencilTexture??this._depthStencilBuffer)?.descriptor?.height??0}get usedMemory(){return this._colorAttachments.values().reduce((e,t)=>e+t.usedMemory,this.depthStencil?.usedMemory??0)}get level(){return this._level}set level(e){this._level!==e&&(this._level=e,this._glName&&this._context.temporaryBindFramebuffer(this,()=>this._initializeAttachments()))}static{this._MAX_COLOR_ATTACHMENTS=-1}getColorTexture(e){let t=this._colorAttachments.get(e);return!t||!_(t)?null:t}get colorAttachments(){return Array.from(this._colorAttachments.keys())}attachColorTexture(e,t=a){if(!e)return;this._validateColorAttachmentPoint(t);let{descriptor:n}=e;this._validateTextureDescriptor(n),this.detachColorTexture(t)?.dispose(),this._colorAttachments.set(t,e),this._glName&&(this._context.bindFramebuffer(this),this._framebufferTexture2D(e.glName,t))}detachColorTexture(e=a){let t=this._colorAttachments.get(e);if(!t)return;let n=_(t);return this._glName&&this._context.temporaryBindFramebuffer(this,()=>{if(n)this._framebufferTexture2D(null,e);else{let t=this._context.gl;t.framebufferRenderbuffer(t.FRAMEBUFFER,e,t.RENDERBUFFER,null)}}),this._colorAttachments.delete(e),n?t:void 0}detachColorTextures(...e){if(e.length!==0){if(this._glName){let t=this._context.gl;this._context.temporaryBindFramebuffer(this,()=>{e.forEach(e=>{_(this._colorAttachments.get(e))?this._framebufferTexture2D(null,e):t.framebufferRenderbuffer(t.FRAMEBUFFER,e,t.RENDERBUFFER,null)})})}e.forEach(e=>this._colorAttachments.delete(e))}}setColorTextureTarget(e,t=a,n=0){let r=this._colorAttachments.get(t);r&&(e===35866?this._framebufferTextureLayer(r.glName,t,36160,n):this._framebufferTexture2D(r.glName,t,e,36160))}attachDepthStencil(e){if(e)switch(e.type){case 1:return this._attachDepthStencilTexture(e);case 2:return this._attachDepthStencilBuffer(e)}}_attachDepthStencilTexture(e){if(e==null)return;let{descriptor:t}=e,{pixelFormat:n,dataType:r}=t;n!==34041&&n!==6402?console.error(`Depth/Stencil texture must have a pixel type of DEPTH_STENCIL!`):n===34041&&r!==o.UNSIGNED_INT_24_8?console.error(`Depth/Stencil texture must have data type of UNSIGNED_INT_24_8!`):n===6402&&r!==o.UNSIGNED_INT&&r!==o.UNSIGNED_SHORT?console.error(`Depth texture must have data type of UNSIGNED_INT or UNSIGNED_SHORT!`):(this._validateTextureDescriptor(t),this._disposeDepthStencilAttachments(),this._glName&&(this._context.bindFramebuffer(this),this._framebufferTexture2D(e.glName,E(n))),this._depthStencilTexture?.dispose(),this._depthStencilTexture=e)}detachDepthStencilTexture(){let e=this._depthStencilTexture;return e&&this._glName&&this._context.temporaryBindFramebuffer(this,()=>{this._framebufferTexture2D(null,E(e.descriptor.pixelFormat))}),this._depthStencilTexture=null,e}_attachDepthStencilBuffer(e){if(e==null)return;let t=e.descriptor;if(this._validateRenderbufferDescriptor(t),this._disposeDepthStencilAttachments(),this._glName){this._context.bindFramebuffer(this);let{gl:n}=this._context,r=this._getGLAttachmentPoint(t);n.framebufferRenderbuffer(36160,r,n.RENDERBUFFER,e.glName)}this._depthStencilBuffer=e}detachDepthStencilBuffer(){let e=this._depthStencilBuffer;if(e&&this._glName){let{_context:t}=this,n=t.boundFramebuffer;t.bindFramebuffer(this);let{gl:r}=t,i=this._getGLAttachmentPoint(e.descriptor);r.framebufferRenderbuffer(36160,i,r.RENDERBUFFER,null),t.bindFramebuffer(n)}return this._depthStencilBuffer=null,e}invalidateAttachments(e){let{_context:t}=this;t.temporaryBindFramebuffer(this,()=>t.gl.invalidateFramebuffer(36160,e),!0)}copyToTexture(e,t,n,r,i,a,o){(e<0||t<0||i<0||a<0)&&console.error(`Offsets cannot be negative!`),(n<=0||r<=0)&&console.error(`Copy width and height must be greater than zero!`);let s=o.descriptor;o.descriptor.target!==3553&&console.error(`Texture target must be TEXTURE_2D!`),(s?.width==null||s?.height==null||e+n>this.width||t+r>this.height||i+n>s.width||a+r>s.height)&&console.error(`Bad dimensions, the current input values will attempt to read or copy out of bounds!`);let c=this._context,l=c.bindTexture(o,p.TEXTURE_UNIT_FOR_UPDATES);c.setActiveTexture(p.TEXTURE_UNIT_FOR_UPDATES),c.bindFramebuffer(this),c.gl.copyTexSubImage2D(3553,0,i,a,e,t,n,r),c.bindTexture(l,p.TEXTURE_UNIT_FOR_UPDATES)}readPixels(e,t,n,r,i,a,o){(n<=0||r<=0)&&console.error(`Copy width and height must be greater than zero!`),o||console.error(`Target memory is not initialized!`),this._context.bindFramebuffer(this),this._context.gl.readPixels(e,t,n,r,i,a,o)}async readPixelsAsync(e,t,r,i,a,o,s,c){let{gl:l}=this._context,u=n.createPixelPack(this._context,35041,s.byteLength);this._context.bindBuffer(u);let d=this._context.boundFramebuffer;this._context.bindFramebuffer(this),l.readPixels(e,t,r,i,a,o,0),this._context.unbindBuffer(35051),this._context.bindFramebuffer(d);try{await u.getSubDataAsync(s,void 0,void 0,void 0,c)}finally{u.dispose()}}resize(e,t){if(this.width===e&&this.height===t)return;let n={width:e,height:t};if(w(n,this._context.parameters.maxTextureSize),this._colorAttachments.forEach(e=>e.resize(n.width,n.height)),this._depthStencilTexture?.resize(n.width,n.height),this._glName&&(w(n,this._context.parameters.maxRenderbufferSize),this._depthStencilBuffer?.resize(n.width,n.height),r())){let{gl:e}=this._context;e.checkFramebufferStatus(36160)!==e.FRAMEBUFFER_COMPLETE&&console.error(`Framebuffer is incomplete!`)}}initializeAndBind(e=36160){let{gl:t}=this._context;this._glName?t.bindFramebuffer(e,this._glName):(this._glName&&t.deleteFramebuffer(this._glName),this._glName=t.createFramebuffer(),t.bindFramebuffer(e,this._glName),this._initializeAttachments(e))}_initializeAttachments(e=36160){let{gl:t}=this._context;if(this._colorAttachments.forEach((t,n)=>{if(_(t)){let r=T(t);r===35866?this._framebufferTextureLayer(t.glName,n,e):this._framebufferTexture2D(t.glName,n,r,e)}else if(v(t)){let r=this._context.gl;r.framebufferRenderbuffer(e,n,r.RENDERBUFFER,t.glName)}}),this._depthStencilBuffer){let n=this._getGLAttachmentPoint(this._depthStencilBuffer.descriptor);t.framebufferRenderbuffer(e,n,t.RENDERBUFFER,this._depthStencilBuffer.glName)}else if(this._depthStencilTexture){let t=E(this._depthStencilTexture.descriptor.pixelFormat);this._framebufferTexture2D(this._depthStencilTexture.glName,t,T(this._depthStencilTexture),e)}r()&&t.checkFramebufferStatus(e)!==t.FRAMEBUFFER_COMPLETE&&console.error(`Framebuffer is incomplete!`)}_framebufferTexture2D(e,t=a,n=3553,r=36160){this._context.gl.framebufferTexture2D(r,t,n,e,this._level)}_framebufferTextureLayer(e,t=a,n=36160,r=0){this._context.gl.framebufferTextureLayer(n,t,e,this._level,r)}_disposeDepthStencilAttachments(){let e=this._context.gl;if(this._depthStencilBuffer){if(this._glName){this._context.bindFramebuffer(this);let t=this._getGLAttachmentPoint(this._depthStencilBuffer.descriptor);e.framebufferRenderbuffer(36160,t,e.RENDERBUFFER,null)}this._depthStencilBuffer=t(this._depthStencilBuffer)}this._depthStencilTexture&&=(this._glName&&(this._context.bindFramebuffer(this),this._framebufferTexture2D(null,E(this._depthStencilTexture.descriptor.pixelFormat))),t(this._depthStencilTexture))}_validateTextureDescriptor(e){e.target!==3553&&e.target!==34067&&e.target!==35866&&console.error(`Texture type must be TEXTURE_2D, TEXTURE_2D_ARRAY or TEXTURE_CUBE_MAP!`),w(e,this._context.parameters.maxTextureSize),this._validateBufferDimensions(e)}_validateRenderbufferDescriptor(e){w(e,this._context.parameters.maxRenderbufferSize),this._validateBufferDimensions(e)}_validateBufferDimensions(e){e.width<=0&&(e.width=this.width),e.height<=0&&(e.height=this.height),this.width>0&&this.height>0&&(this.width!==e.width||this.height!==e.height)&&console.error(`Attachment size must match framebuffer size!`)}_getGLAttachmentPoint(e){switch(e.internalFormat){case u.DEPTH_COMPONENT16:case u.DEPTH_COMPONENT24:case u.DEPTH_COMPONENT32F:return d;case c.DEPTH24_STENCIL8:case c.DEPTH32F_STENCIL8:return l;case 36168:return s;default:return a}}_validateColorAttachmentPoint(t){if(h._MAX_COLOR_ATTACHMENTS===-1){let{gl:e}=this._context;h._MAX_COLOR_ATTACHMENTS=e.getParameter(e.MAX_COLOR_ATTACHMENTS)}let n=t-a;n+1>h._MAX_COLOR_ATTACHMENTS&&e.getLogger(`esri.views.webgl.FrameBufferObject`).error(`esri.FrameBufferObject`,`illegal attachment point for color attachment: ${n+1}. Implementation supports up to ${h._MAX_COLOR_ATTACHMENTS} color attachments`)}}class g extends h{constructor(e,t,n){super(e,t,n)}dispose(){let{_colorAttachments:e,_glName:t,_context:n}=this;if(n.instanceCounter.decrement(i.FramebufferObject,this),e.size===0&&!this._depthStencilBuffer&&!this._depthStencilTexture&&!t)return;let r=n.boundFramebuffer,a=Array.from(e.values());this.detachColorTextures(...e.keys()),a.forEach(e=>e.dispose()),this.detachDepthStencilBuffer()?.dispose(),this.detachDepthStencilTexture()?.dispose(),n.gl.deleteFramebuffer(this._glName),this._glName=null,n.bindFramebuffer(r===this?null:r)}}function _(e){return S(e)===1}function v(e){return S(e)===2}function y(e){return _(e)||b(e)}function b(e){return S(e)===0}function x(e){return S(e)===3||e!=null&&`samples`in e}function S(e){return e!=null&&`type`in e?e.type:null}function C(e,t){return _(t)||v(t)?t:b(t)?new p(e,t):x(t)?new f(e,t):null}function w(e,t){let n=Math.max(e.width,e.height);if(n>t){m().warnOnce(`Resizing FBO attachment size ${e.width}x${e.height} to device limit ${t}`);let r=t/n;return e.width=Math.round(e.width*r),e.height=Math.round(e.height*r),!1}return!0}function T(e){return e.descriptor.target===34067?34069:e.descriptor.target===35866?35866:3553}function E(e){return e===6402?d:l}export{g as DisposableFramebufferObject,h as FramebufferObject,w as ensureAttachmentMaxSize};
|
|
2
|
+
import e from"../../core/Logger.js";import{disposeMaybe as t}from"../../core/maybe.js";import{BufferObject as n}from"./BufferObject.js";import{webglDebugEnabled as r}from"./checkWebGLError.js";import{ResourceType as i,ColorAttachment0 as a,PixelType as o,StencilAttachment as s,SizedDepthStencilFormat as c,DepthStencilAttachment as l,SizedDepthFormat as u,DepthAttachment as d}from"./enums.js";import{Renderbuffer as f}from"./Renderbuffer.js";import p from"./Texture.js";const m=()=>e.getLogger(`esri.views.webgl.FramebufferObject`);class h{constructor(e,t,n){if(this._context=e,this._level=0,this._glName=null,this._colorAttachments=new Map,this._depthStencilBuffer=null,this._depthStencilTexture=null,e.instanceCounter.increment(i.FramebufferObject,this),t!=null){let n=C(e,t);n!=null&&(this._colorAttachments.set(a,n),_(n)?this._validateTextureDescriptor(n.descriptor):this._validateRenderbufferDescriptor(n.descriptor)),this._validateColorAttachmentPoint(a)}if(n!=null){if(y(n))this._depthStencilTexture=_(n)?n:new p(e,n),this._validateTextureDescriptor(this._depthStencilTexture.descriptor);else{let t=v(n)?n:new f(e,n);this._depthStencilBuffer=t,this._validateRenderbufferDescriptor(t.descriptor)}}}get glName(){return this._glName}get colorTexture(){let e=this._colorAttachments.get(a);return _(e)?e:null}get depthStencil(){return this._depthStencilTexture||this._depthStencilBuffer}get depthStencilTexture(){return this._depthStencilTexture}get width(){return(this._colorAttachments.get(a)??this._depthStencilTexture??this._depthStencilBuffer)?.descriptor?.width??0}get height(){return(this._colorAttachments.get(a)??this._depthStencilTexture??this._depthStencilBuffer)?.descriptor?.height??0}get usedMemory(){return this._colorAttachments.values().reduce((e,t)=>e+t.usedMemory,this.depthStencil?.usedMemory??0)}get level(){return this._level}set level(e){this._level!==e&&(this._level=e,this._glName&&this._context.temporaryBindFramebuffer(this,()=>this._initializeAttachments()))}static{this._MAX_COLOR_ATTACHMENTS=-1}getColorTexture(e){let t=this._colorAttachments.get(e);return!t||!_(t)?null:t}get colorAttachments(){return Array.from(this._colorAttachments.keys())}attachColorTexture(e,t=a){if(!e)return;this._validateColorAttachmentPoint(t);let{descriptor:n}=e;this._validateTextureDescriptor(n),this.detachColorTexture(t)?.dispose(),this._colorAttachments.set(t,e),this._glName&&(this._context.bindFramebuffer(this),this._framebufferTexture2D(e.glName,t))}detachColorTexture(e=a){let t=this._colorAttachments.get(e);if(!t)return;let n=_(t);return this._glName&&this._context.temporaryBindFramebuffer(this,()=>{if(n)this._framebufferTexture2D(null,e);else{let t=this._context.gl;t.framebufferRenderbuffer(t.FRAMEBUFFER,e,t.RENDERBUFFER,null)}}),this._colorAttachments.delete(e),n?t:void 0}detachColorTextures(...e){if(e.length!==0){if(this._glName){let t=this._context.gl;this._context.temporaryBindFramebuffer(this,()=>{e.forEach(e=>{_(this._colorAttachments.get(e))?this._framebufferTexture2D(null,e):t.framebufferRenderbuffer(t.FRAMEBUFFER,e,t.RENDERBUFFER,null)})})}e.forEach(e=>this._colorAttachments.delete(e))}}setColorTextureTarget(e,t=a,n=0){let r=this._colorAttachments.get(t);r&&(e===35866?this._framebufferTextureLayer(r.glName,t,36160,n):this._framebufferTexture2D(r.glName,t,e,36160))}attachDepthStencil(e){if(e)switch(e.type){case 1:return this._attachDepthStencilTexture(e);case 2:return this._attachDepthStencilBuffer(e)}}_attachDepthStencilTexture(e){if(e==null)return;let{descriptor:t}=e,{pixelFormat:n,dataType:r}=t;n!==34041&&n!==6402?console.error(`Depth/Stencil texture must have a pixel type of DEPTH_STENCIL!`):n===34041&&r!==o.UNSIGNED_INT_24_8?console.error(`Depth/Stencil texture must have data type of UNSIGNED_INT_24_8!`):n===6402&&r!==o.UNSIGNED_INT&&r!==o.UNSIGNED_SHORT?console.error(`Depth texture must have data type of UNSIGNED_INT or UNSIGNED_SHORT!`):(this._validateTextureDescriptor(t),this._disposeDepthStencilAttachments(),this._glName&&(this._context.bindFramebuffer(this),this._framebufferTexture2D(e.glName,E(n))),this._depthStencilTexture?.dispose(),this._depthStencilTexture=e)}detachDepthStencilTexture(){let e=this._depthStencilTexture;return e&&this._glName&&this._context.temporaryBindFramebuffer(this,()=>{this._framebufferTexture2D(null,E(e.descriptor.pixelFormat))}),this._depthStencilTexture=null,e}_attachDepthStencilBuffer(e){if(e==null)return;let t=e.descriptor;if(this._validateRenderbufferDescriptor(t),this._disposeDepthStencilAttachments(),this._glName){this._context.bindFramebuffer(this);let{gl:n}=this._context,r=this._getGLAttachmentPoint(t);n.framebufferRenderbuffer(36160,r,n.RENDERBUFFER,e.glName)}this._depthStencilBuffer=e}detachDepthStencilBuffer(){let e=this._depthStencilBuffer;if(e&&this._glName){let{_context:t}=this,n=t.boundFramebuffer;t.bindFramebuffer(this);let{gl:r}=t,i=this._getGLAttachmentPoint(e.descriptor);r.framebufferRenderbuffer(36160,i,r.RENDERBUFFER,null),t.bindFramebuffer(n)}return this._depthStencilBuffer=null,e}invalidateAttachments(e){let{_context:t}=this;t.temporaryBindFramebuffer(this,()=>t.gl.invalidateFramebuffer(36160,e),!0)}copyToTexture(e,t,n,r,i,a,o){(e<0||t<0||i<0||a<0)&&console.error(`Offsets cannot be negative!`),(n<=0||r<=0)&&console.error(`Copy width and height must be greater than zero!`);let s=o.descriptor;o.descriptor.target!==3553&&console.error(`Texture target must be TEXTURE_2D!`),(s?.width==null||s?.height==null||e+n>this.width||t+r>this.height||i+n>s.width||a+r>s.height)&&console.error(`Bad dimensions, the current input values will attempt to read or copy out of bounds!`);let c=this._context,l=c.bindTexture(o,p.TEXTURE_UNIT_FOR_UPDATES);c.setActiveTexture(p.TEXTURE_UNIT_FOR_UPDATES),c.bindFramebuffer(this),c.gl.copyTexSubImage2D(3553,0,i,a,e,t,n,r),c.bindTexture(l,p.TEXTURE_UNIT_FOR_UPDATES)}readPixels(e,t,n,r,i,a,o){(n<=0||r<=0)&&console.error(`Copy width and height must be greater than zero!`),o||console.error(`Target memory is not initialized!`),this._context.bindFramebuffer(this),this._context.gl.readPixels(e,t,n,r,i,a,o)}async readPixelsAsync(e,t,r,i,a,o,s,c){let{gl:l}=this._context,u=n.createPixelPack(this._context,35041,s.byteLength);try{this._context.bindBuffer(u);let n=this._context.boundFramebuffer;try{this._context.bindFramebuffer(this),l.readPixels(e,t,r,i,a,o,0)}finally{this._context.unbindBuffer(35051),this._context.bindFramebuffer(n)}await u.getSubDataAsync(s,void 0,void 0,void 0,c)}finally{u.dispose()}}resize(e,t){if(this.width===e&&this.height===t)return;let n={width:e,height:t};if(w(n,this._context.parameters.maxTextureSize),this._colorAttachments.forEach(e=>e.resize(n.width,n.height)),this._depthStencilTexture?.resize(n.width,n.height),this._glName&&(w(n,this._context.parameters.maxRenderbufferSize),this._depthStencilBuffer?.resize(n.width,n.height),r())){let{gl:e}=this._context;e.checkFramebufferStatus(36160)!==e.FRAMEBUFFER_COMPLETE&&console.error(`Framebuffer is incomplete!`)}}initializeAndBind(e=36160){let{gl:t}=this._context;this._glName?t.bindFramebuffer(e,this._glName):(this._glName&&t.deleteFramebuffer(this._glName),this._glName=t.createFramebuffer(),t.bindFramebuffer(e,this._glName),this._initializeAttachments(e))}_initializeAttachments(e=36160){let{gl:t}=this._context;if(this._colorAttachments.forEach((t,n)=>{if(_(t)){let r=T(t);r===35866?this._framebufferTextureLayer(t.glName,n,e):this._framebufferTexture2D(t.glName,n,r,e)}else if(v(t)){let r=this._context.gl;r.framebufferRenderbuffer(e,n,r.RENDERBUFFER,t.glName)}}),this._depthStencilBuffer){let n=this._getGLAttachmentPoint(this._depthStencilBuffer.descriptor);t.framebufferRenderbuffer(e,n,t.RENDERBUFFER,this._depthStencilBuffer.glName)}else if(this._depthStencilTexture){let t=E(this._depthStencilTexture.descriptor.pixelFormat);this._framebufferTexture2D(this._depthStencilTexture.glName,t,T(this._depthStencilTexture),e)}r()&&t.checkFramebufferStatus(e)!==t.FRAMEBUFFER_COMPLETE&&console.error(`Framebuffer is incomplete!`)}_framebufferTexture2D(e,t=a,n=3553,r=36160){this._context.gl.framebufferTexture2D(r,t,n,e,this._level)}_framebufferTextureLayer(e,t=a,n=36160,r=0){this._context.gl.framebufferTextureLayer(n,t,e,this._level,r)}_disposeDepthStencilAttachments(){let e=this._context.gl;if(this._depthStencilBuffer){if(this._glName){this._context.bindFramebuffer(this);let t=this._getGLAttachmentPoint(this._depthStencilBuffer.descriptor);e.framebufferRenderbuffer(36160,t,e.RENDERBUFFER,null)}this._depthStencilBuffer=t(this._depthStencilBuffer)}this._depthStencilTexture&&=(this._glName&&(this._context.bindFramebuffer(this),this._framebufferTexture2D(null,E(this._depthStencilTexture.descriptor.pixelFormat))),t(this._depthStencilTexture))}_validateTextureDescriptor(e){e.target!==3553&&e.target!==34067&&e.target!==35866&&console.error(`Texture type must be TEXTURE_2D, TEXTURE_2D_ARRAY or TEXTURE_CUBE_MAP!`),w(e,this._context.parameters.maxTextureSize),this._validateBufferDimensions(e)}_validateRenderbufferDescriptor(e){w(e,this._context.parameters.maxRenderbufferSize),this._validateBufferDimensions(e)}_validateBufferDimensions(e){e.width<=0&&(e.width=this.width),e.height<=0&&(e.height=this.height),this.width>0&&this.height>0&&(this.width!==e.width||this.height!==e.height)&&console.error(`Attachment size must match framebuffer size!`)}_getGLAttachmentPoint(e){switch(e.internalFormat){case u.DEPTH_COMPONENT16:case u.DEPTH_COMPONENT24:case u.DEPTH_COMPONENT32F:return d;case c.DEPTH24_STENCIL8:case c.DEPTH32F_STENCIL8:return l;case 36168:return s;default:return a}}_validateColorAttachmentPoint(t){if(h._MAX_COLOR_ATTACHMENTS===-1){let{gl:e}=this._context;h._MAX_COLOR_ATTACHMENTS=e.getParameter(e.MAX_COLOR_ATTACHMENTS)}let n=t-a;n+1>h._MAX_COLOR_ATTACHMENTS&&e.getLogger(`esri.views.webgl.FrameBufferObject`).error(`esri.FrameBufferObject`,`illegal attachment point for color attachment: ${n+1}. Implementation supports up to ${h._MAX_COLOR_ATTACHMENTS} color attachments`)}}class g extends h{constructor(e,t,n){super(e,t,n)}dispose(){let{_colorAttachments:e,_glName:t,_context:n}=this;if(n.instanceCounter.decrement(i.FramebufferObject,this),e.size===0&&!this._depthStencilBuffer&&!this._depthStencilTexture&&!t)return;let r=n.boundFramebuffer,a=Array.from(e.values());this.detachColorTextures(...e.keys()),a.forEach(e=>e.dispose()),this.detachDepthStencilBuffer()?.dispose(),this.detachDepthStencilTexture()?.dispose(),n.gl.deleteFramebuffer(this._glName),this._glName=null,n.bindFramebuffer(r===this?null:r)}}function _(e){return S(e)===1}function v(e){return S(e)===2}function y(e){return _(e)||b(e)}function b(e){return S(e)===0}function x(e){return S(e)===3||e!=null&&`samples`in e}function S(e){return e!=null&&`type`in e?e.type:null}function C(e,t){return _(t)||v(t)?t:b(t)?new p(e,t):x(t)?new f(e,t):null}function w(e,t){let n=Math.max(e.width,e.height);if(n>t){m().warnOnce(`Resizing FBO attachment size ${e.width}x${e.height} to device limit ${t}`);let r=t/n;return e.width=Math.round(e.width*r),e.height=Math.round(e.height*r),!1}return!0}function T(e){return e.descriptor.target===34067?34069:e.descriptor.target===35866?35866:3553}function E(e){return e===6402?d:l}export{g as DisposableFramebufferObject,h as FramebufferObject,w as ensureAttachmentMaxSize};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
-
import{__decorate as e}from"tslib";import t from"../../Color.js";import{handlesGroup as n}from"../../core/handleUtils.js";import{isIterable as r}from"../../core/iteratorUtils.js";import{memoize as i}from"../../core/memoize.js";import{watch as a,on as o}from"../../core/reactiveUtils.js";import{getMetersPerVerticalUnitForSR as s}from"../../core/units.js";import{property as c,subclass as l}from"../../core/accessorSupport/decorators.js";import{set as u}from"../../core/libs/gl-matrix-2/math/vec3.js";import{create as d}from"../../core/libs/gl-matrix-2/factories/vec3f64.js";import{getReferenceEllipsoid as f}from"../../geometry/ellipsoidUtils.js";import{create as p,fromPoints as m}from"../../geometry/support/ray.js";import{GeometryDescriptor as h}from"../../layers/support/GeometryDescriptor.js";import{externalToInternalIntersectOptions as g}from"../../views/3d/support/hitTest.js";import{Intersector as _}from"../../views/3d/webgl-engine/lib/Intersector.js";import{toGraphic as v}from"../../views/3d/webgl-engine/lib/intersectorUtilsConversions.js";import y from"./ElevationProfileLine.js";let b=class extends y{constructor(e){super(e),this.type=`view`,this.color=new t(`#cf4ccf`),this.viewVisualizationEnabled=!0,this.include=null,this.exclude=null,this.numSamplesForPreview=50,this.numSamplesPerChunk=25,this._getQueryElevationDependencies=i((e,t,n,r,i,a,o)=>({inputGraphicUid:e==null?null:S(e),visibleLayers:t,maxIntersectionDistance:n,intersectOptions:r,view:i,stationary:a,spatialReference:o})),this._vecA=d(),this._vecB=d(),this._ray=p()}get minDemResolution(){let e=this._viewModel?.view;if(e==null||e.type!==`3d`)return null;let t=e.pointsOfInterest?.focus?.worldUnitsPerContentPixel;return t==null?null:t*s(e.spatialReference)}get queryElevationDependencies(){let e=this._view;return e?this._getQueryElevationDependencies(this._viewModel?.input,this._visibleLayers,this._maxIntersectionDistance,this._intersectOptions,e,e.stationary,e.spatialReference):null}get _visibleLayers(){return this._view?.map?.allLayers?.filter(e=>e.visible).toArray()??[]}get _intersectOptions(){let e=this._view;return e==null||e.destroyed?{}:g(e,{include:this.include,exclude:[...this._pointCloudLayers,...r(this.exclude)?this.exclude:this.exclude?[this.exclude]:[]]})}get _pointCloudLayers(){let e=this._view;return e==null?[]:e.allLayerViews.toArray().filter(e=>e.layer?.type===`point-cloud`).map(e=>e.layer)}get _view(){let e=this._viewModel?.view;return e!=null&&e.type===`3d`?e:null}get _maxIntersectionDistance(){let e=this._view;return e
|
|
2
|
+
import{__decorate as e}from"tslib";import t from"../../Color.js";import{handlesGroup as n}from"../../core/handleUtils.js";import{isIterable as r}from"../../core/iteratorUtils.js";import{memoize as i}from"../../core/memoize.js";import{watch as a,on as o}from"../../core/reactiveUtils.js";import{getMetersPerVerticalUnitForSR as s}from"../../core/units.js";import{property as c,subclass as l}from"../../core/accessorSupport/decorators.js";import{set as u}from"../../core/libs/gl-matrix-2/math/vec3.js";import{create as d}from"../../core/libs/gl-matrix-2/factories/vec3f64.js";import{getReferenceEllipsoid as f}from"../../geometry/ellipsoidUtils.js";import{create as p,fromPoints as m}from"../../geometry/support/ray.js";import{GeometryDescriptor as h}from"../../layers/support/GeometryDescriptor.js";import{externalToInternalIntersectOptions as g}from"../../views/3d/support/hitTest.js";import{Intersector as _}from"../../views/3d/webgl-engine/lib/Intersector.js";import{toGraphic as v}from"../../views/3d/webgl-engine/lib/intersectorUtilsConversions.js";import y from"./ElevationProfileLine.js";let b=class extends y{constructor(e){super(e),this.type=`view`,this.color=new t(`#cf4ccf`),this.viewVisualizationEnabled=!0,this.include=null,this.exclude=null,this.numSamplesForPreview=50,this.numSamplesPerChunk=25,this._getQueryElevationDependencies=i((e,t,n,r,i,a,o)=>({inputGraphicUid:e==null?null:S(e),visibleLayers:t,maxIntersectionDistance:n,intersectOptions:r,view:i,stationary:a,spatialReference:o})),this._vecA=d(),this._vecB=d(),this._ray=p()}get minDemResolution(){let e=this._viewModel?.view;if(e==null||e.type!==`3d`)return null;let t=e.pointsOfInterest?.focus?.worldUnitsPerContentPixel;return t==null?null:t*s(e.spatialReference)}get queryElevationDependencies(){let e=this._view;return e?this._getQueryElevationDependencies(this._viewModel?.input,this._visibleLayers,this._maxIntersectionDistance,this._intersectOptions,e,e.stationary,e.spatialReference):null}get _visibleLayers(){return this._view?.map?.allLayers?.filter(e=>e.visible).toArray()??[]}get _intersectOptions(){let e=this._view;return e==null||e.destroyed?{}:g(e,{include:this.include,exclude:[...this._pointCloudLayers,...r(this.exclude)?this.exclude:this.exclude?[this.exclude]:[]]})}get _pointCloudLayers(){let e=this._view;return e==null?[]:e.allLayerViews.toArray().filter(e=>e.layer?.type===`point-cloud`).map(e=>e.layer)}get _view(){let e=this._viewModel?.view;return e!=null&&e.type===`3d`?e:null}get _maxIntersectionDistance(){let e=this._view;return e==null?1/0:f(e.spatialReference).radius/e.renderCoordsHelper.unitInMeters}get _intersector(){let e=this._view;if(e==null)return null;let t=new _(e.state.viewingMode),n=t.options;return n.hud=!1,n.invisibleTerrain=!1,n.backfacesTerrain=!1,n.selectionMode=!1,n.store=2,t}async queryElevation(e,{noDataValue:t,signal:n}){let r=this.queryElevationDependencies;if(r==null)throw Error(`ElevationProfileLineInput: no dependencies`);let i=this._intersector;if(i==null)throw Error(`ElevationProfileLineInput: no view`);let{intersectOptions:a,view:o,spatialReference:s}=r,c=o.renderCoordsHelper,l=o.sceneIntersectionHelper,d=this._vecA,f=this._vecA,p=this._vecB,g=this._ray;if(!s)return{geometry:e,noDataValue:t};let _=await h.fromGeometry(e).project(s,n);if(!_)return{geometry:e,noDataValue:t};let v=_.coordinates,y=v.length;for(let e=0;e<y;++e){let n=v[e];u(p,n.x,n.y,n.z??0),c.toRenderCoords(p,s,p),c.setAltitude(d,2e5,p);let o=m(d,p,g);l.computeIntersection(o,i,!0,a);let h=x(r,i.results.all);h?(h.getIntersectionPoint(f),c.fromRenderCoords(f,f,s),n.z=f[2]):n.z=t}return{geometry:_.export(),noDataValue:t}}attach(e){let t=()=>this._onChange();return n([super.attach(e),a(()=>this.queryElevationDependencies,t),o(()=>e.elevationProvider,`elevation-change`,t,{onListenerAdd:t,onListenerRemove:t})])}};e([c({type:t,nonNullable:!0})],b.prototype,`color`,void 0),e([c()],b.prototype,`viewVisualizationEnabled`,void 0),e([c()],b.prototype,`include`,void 0),e([c()],b.prototype,`exclude`,void 0),e([c({readOnly:!0})],b.prototype,`minDemResolution`,null),e([c()],b.prototype,`queryElevationDependencies`,null),e([c()],b.prototype,`_visibleLayers`,null),e([c()],b.prototype,`_intersectOptions`,null),e([c()],b.prototype,`_pointCloudLayers`,null),e([c()],b.prototype,`_view`,null),e([c()],b.prototype,`_maxIntersectionDistance`,null),e([c()],b.prototype,`_intersector`,null),b=e([l(`esri.widgets.ElevationProfile.ElevationProfileLineView`)],b);function x({view:e,inputGraphicUid:t,maxIntersectionDistance:n},r){for(let i of r){if(!i.withinDistance(n))continue;let r=v(i,e);if(r==null||S(r)!==t)return i}return null}function S(e){if(e.layer&&`objectIdField`in e.layer){let t=e.attributes[e.layer.objectIdField];if(t)return`o-${e.layer.id}-${t}`}return`u-${e.uid}`}const C=b;export{C as default};
|
|
@@ -84,7 +84,7 @@ export interface HistogramRangeSliderEvents extends CommonSliderEvents {}
|
|
|
84
84
|
*
|
|
85
85
|
* At a minimum, the slider's [container](https://developers.arcgis.com/javascript/latest/references/core/widgets/HistogramRangeSlider/#container) or parent container must have a `width` set in css for it to render.
|
|
86
86
|
*
|
|
87
|
-
* @deprecated since version 5.0. Use the [arcgis-slider-histogram-range](
|
|
87
|
+
* @deprecated since version 5.0. Use the [arcgis-slider-histogram-range](https://developers.arcgis.com/javascript/latest/references/common-components/components/arcgis-slider-histogram-range/) component instead. For information on widget deprecation, read about [Esri's move to web components](https://developers.arcgis.com/javascript/latest/components-transition-plan/).
|
|
88
88
|
* @since 4.12
|
|
89
89
|
* @see [Histogram](https://developers.arcgis.com/javascript/latest/references/core/widgets/Histogram/)
|
|
90
90
|
* @see [Slider](https://developers.arcgis.com/javascript/latest/references/core/widgets/Slider/)
|