@arcgis/core 5.1.0-next.19 → 5.1.0-next.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/components/assets/carousel/t9n/messages.ar.json +1 -1
- package/assets/components/assets/carousel/t9n/messages.bg.json +1 -1
- package/assets/components/assets/carousel/t9n/messages.bs.json +1 -1
- package/assets/components/assets/carousel/t9n/messages.ca.json +1 -1
- package/assets/components/assets/carousel/t9n/messages.cs.json +1 -1
- package/assets/components/assets/carousel/t9n/messages.da.json +1 -1
- package/assets/components/assets/carousel/t9n/messages.de.json +1 -1
- package/assets/components/assets/carousel/t9n/messages.el.json +1 -1
- package/assets/components/assets/carousel/t9n/messages.es.json +1 -1
- package/assets/components/assets/carousel/t9n/messages.et.json +1 -1
- package/assets/components/assets/carousel/t9n/messages.fi.json +1 -1
- package/assets/components/assets/carousel/t9n/messages.fr.json +1 -1
- package/assets/components/assets/carousel/t9n/messages.he.json +1 -1
- package/assets/components/assets/carousel/t9n/messages.hr.json +1 -1
- package/assets/components/assets/carousel/t9n/messages.hu.json +1 -1
- package/assets/components/assets/carousel/t9n/messages.id.json +1 -1
- package/assets/components/assets/carousel/t9n/messages.it.json +1 -1
- package/assets/components/assets/carousel/t9n/messages.ja.json +1 -1
- package/assets/components/assets/carousel/t9n/messages.ko.json +1 -1
- package/assets/components/assets/carousel/t9n/messages.lt.json +1 -1
- package/assets/components/assets/carousel/t9n/messages.lv.json +1 -1
- package/assets/components/assets/carousel/t9n/messages.nl.json +1 -1
- package/assets/components/assets/carousel/t9n/messages.no.json +1 -1
- package/assets/components/assets/carousel/t9n/messages.pl.json +1 -1
- package/assets/components/assets/carousel/t9n/messages.pt-BR.json +1 -1
- package/assets/components/assets/carousel/t9n/messages.pt-PT.json +1 -1
- package/assets/components/assets/carousel/t9n/messages.ro.json +1 -1
- package/assets/components/assets/carousel/t9n/messages.ru.json +1 -1
- package/assets/components/assets/carousel/t9n/messages.sk.json +1 -1
- package/assets/components/assets/carousel/t9n/messages.sl.json +1 -1
- package/assets/components/assets/carousel/t9n/messages.sr.json +1 -1
- package/assets/components/assets/carousel/t9n/messages.sv.json +1 -1
- package/assets/components/assets/carousel/t9n/messages.th.json +1 -1
- package/assets/components/assets/carousel/t9n/messages.tr.json +1 -1
- package/assets/components/assets/carousel/t9n/messages.uk.json +1 -1
- package/assets/components/assets/carousel/t9n/messages.vi.json +1 -1
- package/assets/components/assets/carousel/t9n/messages.zh-CN.json +1 -1
- package/assets/components/assets/carousel/t9n/messages.zh-HK.json +1 -1
- package/assets/components/assets/carousel/t9n/messages.zh-TW.json +1 -1
- package/assets/esri/core/workers/RemoteClient.js +1 -1
- package/assets/esri/core/workers/chunks/0140dc583e20b031eac9.js +1 -0
- package/assets/esri/core/workers/chunks/018859b79f9ce7528ac7.js +1 -0
- package/assets/esri/core/workers/chunks/01dd849a2d335e9f3e16.js +1 -0
- package/assets/esri/core/workers/chunks/{6b3d8280a24f7a3aac40.js → 026c00ee272c64e53daf.js} +1 -1
- package/assets/esri/core/workers/chunks/02cab89336504e95ed99.js +1 -0
- package/assets/esri/core/workers/chunks/06df187a116709f69952.js +1 -0
- package/assets/esri/core/workers/chunks/0711c856144cd8700e7e.js +1 -0
- package/assets/esri/core/workers/chunks/0883c4e63424d6746ada.js +1 -0
- package/assets/esri/core/workers/chunks/0987cb20148f65222b44.js +1 -0
- package/assets/esri/core/workers/chunks/0a1f88cf16bcbb53b371.js +1 -0
- package/assets/esri/core/workers/chunks/0a66a2b4aaab0774c34f.js +1 -0
- package/assets/esri/core/workers/chunks/0bb3beedae1b73beb1fc.js +1 -0
- package/assets/esri/core/workers/chunks/0ca405ca26676137a4be.js +1 -0
- package/assets/esri/core/workers/chunks/0ce968c89c35535da63e.js +1 -0
- package/assets/esri/core/workers/chunks/0d56e3b3265a4470aaa6.js +1 -0
- package/assets/esri/core/workers/chunks/0debabe324c873066885.js +1 -0
- package/assets/esri/core/workers/chunks/0df585420c9cec6a7265.js +1 -0
- package/assets/esri/core/workers/chunks/0facd2c143a04cc7c4ff.js +1 -0
- package/assets/esri/core/workers/chunks/108d652a959e7de31cbf.js +1 -0
- package/assets/esri/core/workers/chunks/13d1cb50232ae761425b.js +2 -0
- package/assets/esri/core/workers/chunks/144c719d5ba9e3a30961.js +1 -0
- package/assets/esri/core/workers/chunks/1482262d0788ee65ddf7.js +1 -0
- package/assets/esri/core/workers/chunks/1503ca177e2466ec0e87.js +1 -0
- package/assets/esri/core/workers/chunks/1597d7b380d510ff5252.js +1 -0
- package/assets/esri/core/workers/chunks/15d7c9f5a55985ed00b4.js +1 -0
- package/assets/esri/core/workers/chunks/166652b7d69bf216d7a4.js +1 -0
- package/assets/esri/core/workers/chunks/179b3385c24ad8a05e1d.js +1 -0
- package/assets/esri/core/workers/chunks/{4f2c29168c9de0b08741.js → 1880c3b293cdfa804625.js} +1 -1
- package/assets/esri/core/workers/chunks/18a40606e4c39f244ecd.js +1 -0
- package/assets/esri/core/workers/chunks/190bc75254bc0542a6be.js +1 -0
- package/assets/esri/core/workers/chunks/1be4e308280149eae4fb.js +1 -0
- package/assets/esri/core/workers/chunks/1bea32b02d35ddb9b118.js +1 -0
- package/assets/esri/core/workers/chunks/1d0153c7d65bd9ea7d39.js +1 -0
- package/assets/esri/core/workers/chunks/1d697642fb2a6332b7f9.js +1 -0
- package/assets/esri/core/workers/chunks/1d78ec98eef7fef08f86.js +1 -0
- package/assets/esri/core/workers/chunks/1df8330823841b5bb6a5.js +1 -0
- package/assets/esri/core/workers/chunks/1e6062dc68c26fcf608f.js +1 -0
- package/assets/esri/core/workers/chunks/1e6271524602e159dbad.js +1 -0
- package/assets/esri/core/workers/chunks/1ee3d44e6d7add0b24cb.js +1 -0
- package/assets/esri/core/workers/chunks/1f54ed4a5238ba1a2551.js +1 -0
- package/assets/esri/core/workers/chunks/1f96d597ba736e088168.js +1 -0
- package/assets/esri/core/workers/chunks/1fa2bf0d6740092ec619.js +1 -0
- package/assets/esri/core/workers/chunks/210ef3f1cc6ef8a831bf.js +1 -0
- package/assets/esri/core/workers/chunks/23c856265dd24ce54fdb.js +1028 -0
- package/assets/esri/core/workers/chunks/241ef4a1bea20b49d812.js +1 -0
- package/assets/esri/core/workers/chunks/25bc7c7bc2793d209640.js +1 -0
- package/assets/esri/core/workers/chunks/2662750d5761ed2d0eb7.js +1 -0
- package/assets/esri/core/workers/chunks/26e41b08efe77d247409.js +1 -0
- package/assets/esri/core/workers/chunks/297b58f29c496923e1f3.js +1 -0
- package/assets/esri/core/workers/chunks/2a2a9fa62969644ea200.js +1 -0
- package/assets/esri/core/workers/chunks/2abb64323839367c9205.js +1 -0
- package/assets/esri/core/workers/chunks/2b296378d21e4e3c11d4.js +1 -0
- package/assets/esri/core/workers/chunks/2b76a8897ad7ba284d33.js +1 -0
- package/assets/esri/core/workers/chunks/2bd8bf6749d101d82d61.js +1 -0
- package/assets/esri/core/workers/chunks/2cbcf34cf896a438999b.js +1 -0
- package/assets/esri/core/workers/chunks/2ddb8bb00b3af83ebd7c.js +1 -0
- package/assets/esri/core/workers/chunks/2de299ff3a902d380be6.js +1 -0
- package/assets/esri/core/workers/chunks/2e06baf6469820697f17.js +1 -0
- package/assets/esri/core/workers/chunks/{531c55f3b8e708ccf767.js → 2f3aeaa25a76ab94b8e5.js} +1 -1
- package/assets/esri/core/workers/chunks/305b2a8dc6438c5fd4aa.js +1 -0
- package/assets/esri/core/workers/chunks/33de1d899a4fa9ab6ab1.js +1 -0
- package/assets/esri/core/workers/chunks/36da644678e6acf3bdb5.js +1 -0
- package/assets/esri/core/workers/chunks/3861644c06cfebe8f40c.js +2 -0
- package/assets/esri/core/workers/chunks/38d5dd4d457428244302.js +1 -0
- package/assets/esri/core/workers/chunks/394b645d51e7bf799382.js +1 -0
- package/assets/esri/core/workers/chunks/3a8320a40916c755c031.js +1 -0
- package/assets/esri/core/workers/chunks/3c2eb386c0165150e039.js +1 -0
- package/assets/esri/core/workers/chunks/3d0aa5f2db79c022243e.js +1 -0
- package/assets/esri/core/workers/chunks/3e26f9af6b8c75bad97a.js +1 -0
- package/assets/esri/core/workers/chunks/3ed7f19f77a11fa4d047.js +1 -0
- package/assets/esri/core/workers/chunks/3f812b0a28afb47aaaf0.js +2 -0
- package/assets/esri/core/workers/chunks/403060849a2573bbf110.js +1 -0
- package/assets/esri/core/workers/chunks/41a95ad470ec42ecd5a2.js +1 -0
- package/assets/esri/core/workers/chunks/43c8b1473695574c663e.js +2 -0
- package/assets/esri/core/workers/chunks/452d71789a1b77cff48d.js +1 -0
- package/assets/esri/core/workers/chunks/465cc0e00f03cdb640b2.js +1 -0
- package/assets/esri/core/workers/chunks/48a56b19bf825f05cc6e.js +1 -0
- package/assets/esri/core/workers/chunks/4d16b6ac52e25bd7e6aa.js +1 -0
- package/assets/esri/core/workers/chunks/4d7f7b1e7663cf6088d1.js +1 -0
- package/assets/esri/core/workers/chunks/50ab9a3f8bbb268fae59.js +1 -0
- package/assets/esri/core/workers/chunks/51ade971dda3ebe90f31.js +1 -0
- package/assets/esri/core/workers/chunks/{cbcb3530375e280bfeac.js → 53f8c1d56ef3b24d2226.js} +1 -1
- package/assets/esri/core/workers/chunks/544bfa97837770a8792f.js +1 -0
- package/assets/esri/core/workers/chunks/{ec63c0fa21cd3c872633.js → 54794b18edc584fd7515.js} +1 -1
- package/assets/esri/core/workers/chunks/561484ab6ed564e4b90f.js +1 -0
- package/assets/esri/core/workers/chunks/5690b49f355a5e2083a9.js +1 -0
- package/assets/esri/core/workers/chunks/56c7d7c7217557375fb6.js +1 -0
- package/assets/esri/core/workers/chunks/592f6bf0283152481f21.js +1 -0
- package/assets/esri/core/workers/chunks/5a6a6e7151085a3cd3dd.js +1 -0
- package/assets/esri/core/workers/chunks/5a6d6082c5bcb1a80eda.js +1 -0
- package/assets/esri/core/workers/chunks/5b2dd164dd84fd1ca4f7.js +1 -0
- package/assets/esri/core/workers/chunks/5b70ee8122262de5bbdf.js +1 -0
- package/assets/esri/core/workers/chunks/5b991b0d4ca257291cb0.js +1 -0
- package/assets/esri/core/workers/chunks/5e3019ba1b4c88977a19.js +1 -0
- package/assets/esri/core/workers/chunks/5e360f933da02d8d2455.js +1 -0
- package/assets/esri/core/workers/chunks/5e4ea6a2784eed1423f1.js +1 -0
- package/assets/esri/core/workers/chunks/5eb9fdb076488de9cd83.js +1 -0
- package/assets/esri/core/workers/chunks/5f6942ac94acd7842926.js +1 -0
- package/assets/esri/core/workers/chunks/601e44839fd46e449aa8.js +1 -0
- package/assets/esri/core/workers/chunks/62c228ca16fdc7a2c695.js +1 -0
- package/assets/esri/core/workers/chunks/639202a461b17840a13f.js +1 -0
- package/assets/esri/core/workers/chunks/63934843c9f4ef779a07.js +1 -0
- package/assets/esri/core/workers/chunks/63b5b57f27c7c6194d44.js +1 -0
- package/assets/esri/core/workers/chunks/{003019c2741aef2d1aa0.js → 65520a443e3811255bea.js} +1 -1
- package/assets/esri/core/workers/chunks/693d269637135047a0c4.js +1 -0
- package/assets/esri/core/workers/chunks/{36215b2c0b1020743458.js → 6a14ec2d2de6778a4e7a.js} +1 -1
- package/assets/esri/core/workers/chunks/6ac84e6d33104e74398d.js +1 -0
- package/assets/esri/core/workers/chunks/6cdda5aa35fa12ea9345.js +1 -0
- package/assets/esri/core/workers/chunks/6d3467997b5d01630b08.js +1 -0
- package/assets/esri/core/workers/chunks/6dfcb0c804e63e87e311.js +1 -0
- package/assets/esri/core/workers/chunks/6f079f1fd6d00d2d174c.js +1 -0
- package/assets/esri/core/workers/chunks/6fde745f3a62e7f5a97d.js +1 -0
- package/assets/esri/core/workers/chunks/70263c2182dc43046742.js +1 -0
- package/assets/esri/core/workers/chunks/72cd450b24fdfcef6547.js +1 -0
- package/assets/esri/core/workers/chunks/7386a61f9610b8e5c608.js +1 -0
- package/assets/esri/core/workers/chunks/73e02f6c7ccc2013c812.js +1 -0
- package/assets/esri/core/workers/chunks/73e384fd93cf22503d84.js +1 -0
- package/assets/esri/core/workers/chunks/74a6d840813ac29b0bda.js +1 -0
- package/assets/esri/core/workers/chunks/{f6aa34577c5fab8cc1f5.js → 74e3c224e879edb37812.js} +1 -1
- package/assets/esri/core/workers/chunks/75664587bb80f4e187e1.js +1 -0
- package/assets/esri/core/workers/chunks/75fd96fd9557ac1f8e10.js +1 -0
- package/assets/esri/core/workers/chunks/7642905920e169a147f3.js +1 -0
- package/assets/esri/core/workers/chunks/764d080f77dec5e7a02c.js +1 -0
- package/assets/esri/core/workers/chunks/777b0e07f72c42470d36.js +1 -0
- package/assets/esri/core/workers/chunks/7873ee080c175d17a444.js +1 -0
- package/assets/esri/core/workers/chunks/7975abb2162a82c88edb.js +1 -0
- package/assets/esri/core/workers/chunks/7a2dd3d85d31dce29d94.js +1 -0
- package/assets/esri/core/workers/chunks/7b297a2f712361bfae2e.js +1 -0
- package/assets/esri/core/workers/chunks/7cec3252e3ee56424b9e.js +1 -0
- package/assets/esri/core/workers/chunks/7d274a077bdfa8c485e8.js +1 -0
- package/assets/esri/core/workers/chunks/7dd1e93469d0b1d652bc.js +1 -0
- package/assets/esri/core/workers/chunks/8012fdc49a7a10982f78.js +1 -0
- package/assets/esri/core/workers/chunks/835a929e37811d0f82cb.js +1 -0
- package/assets/esri/core/workers/chunks/835d6dd8c5a00682d879.js +1 -0
- package/assets/esri/core/workers/chunks/83d913dab3c2b0d6a7cc.js +1 -0
- package/assets/esri/core/workers/chunks/854fe80272b59fafc2e9.js +1 -0
- package/assets/esri/core/workers/chunks/85e0fd618625a639387f.js +1 -0
- package/assets/esri/core/workers/chunks/85f309c1888c1c8411b1.js +1 -0
- package/assets/esri/core/workers/chunks/86161025b53b916328ff.js +1 -0
- package/assets/esri/core/workers/chunks/861817be5e050e9522ab.js +1 -0
- package/assets/esri/core/workers/chunks/86465d4bb185d7460087.js +1 -0
- package/assets/esri/core/workers/chunks/87e7378b242debbfd575.js +1 -0
- package/assets/esri/core/workers/chunks/8838ff9668b472af16a1.js +1 -0
- package/assets/esri/core/workers/chunks/889835e61ea97f090082.js +1 -0
- package/assets/esri/core/workers/chunks/8aabc71d7f15c4407d7d.js +1 -0
- package/assets/esri/core/workers/chunks/8c2e5b116bac21e7d577.js +1 -0
- package/assets/esri/core/workers/chunks/8cf58806671ed491a456.js +1 -0
- package/assets/esri/core/workers/chunks/8d1d0c3f0532aa98487d.js +1 -0
- package/assets/esri/core/workers/chunks/8d6da6573d07385f4ed5.js +1 -0
- package/assets/esri/core/workers/chunks/90b19e60c056f32623e7.js +1 -0
- package/assets/esri/core/workers/chunks/91718795fc4ca6516ac7.js +1 -0
- package/assets/esri/core/workers/chunks/91e56959b2fddf1a9743.js +1 -0
- package/assets/esri/core/workers/chunks/925980d26d71987ac80c.js +1 -0
- package/assets/esri/core/workers/chunks/93515f52d9b5fa12bd04.js +1 -0
- package/assets/esri/core/workers/chunks/9461f7225c42cf15a114.js +1 -0
- package/assets/esri/core/workers/chunks/946698d9cefffdb63082.js +1 -0
- package/assets/esri/core/workers/chunks/978649cb6df99ee728be.js +1 -0
- package/assets/esri/core/workers/chunks/99101789035f1787c630.js +1 -0
- package/assets/esri/core/workers/chunks/9a2b1f0ca66c1b87c830.js +1 -0
- package/assets/esri/core/workers/chunks/9c6e96b1c2b0418a4f1c.js +1 -0
- package/assets/esri/core/workers/chunks/9f1f5fb648302c43ad12.js +1 -0
- package/assets/esri/core/workers/chunks/9f5f4da954228d876219.js +1 -0
- package/assets/esri/core/workers/chunks/a010fc1123bc0eeda478.js +1 -0
- package/assets/esri/core/workers/chunks/a1a12552d34ea9eea130.js +1 -0
- package/assets/esri/core/workers/chunks/a2323c957c8b2fe225b4.js +1 -0
- package/assets/esri/core/workers/chunks/a34e3c6da7d98569c052.js +1 -0
- package/assets/esri/core/workers/chunks/a36a33f43610c3cd985b.js +1 -0
- package/assets/esri/core/workers/chunks/a381932eef77f4d80292.js +1 -0
- package/assets/esri/core/workers/chunks/a495e60996a36ce19a32.js +1 -0
- package/assets/esri/core/workers/chunks/a53fa34681efff8fc024.js +1 -0
- package/assets/esri/core/workers/chunks/a7a9716582b256d76e5b.js +1 -0
- package/assets/esri/core/workers/chunks/a96c7432ca97cbeef4b8.js +1 -0
- package/assets/esri/core/workers/chunks/{ec0fcb1834c88090e7af.js → aa60f735ccd39cedef7e.js} +1 -1
- package/assets/esri/core/workers/chunks/aa9c11f25d95372998a3.js +1 -0
- package/assets/esri/core/workers/chunks/{128cdb4a02549abc68b5.js → aec33bdb355bd04f28ae.js} +1 -1
- package/assets/esri/core/workers/chunks/aece665144aed2065ffc.js +1 -0
- package/assets/esri/core/workers/chunks/af75e91b88e747aa76ac.js +1 -0
- package/assets/esri/core/workers/chunks/b089947c9a492c96ca27.js +1 -0
- package/assets/esri/core/workers/chunks/b35ea099334c867bde02.js +1 -0
- package/assets/esri/core/workers/chunks/b553264db0f10bb8c5f7.js +1 -0
- package/assets/esri/core/workers/chunks/b586f1021a27c5e1551a.js +2 -0
- package/assets/esri/core/workers/chunks/{236f8137ae505c8f0764.js → b65550b2f685ba760b2c.js} +1 -1
- package/assets/esri/core/workers/chunks/b6e4c35b76379088035c.js +1 -0
- package/assets/esri/core/workers/chunks/b730131e52f9220db031.js +1 -0
- package/assets/esri/core/workers/chunks/{9332db133a0925d522fe.js → b8b2f160518e3a225d99.js} +1 -1
- package/assets/esri/core/workers/chunks/bbf2afa05314e267893f.js +1 -0
- package/assets/esri/core/workers/chunks/bc982142e61598bd367c.js +1 -0
- package/assets/esri/core/workers/chunks/bcd701892ee120e13a18.js +1 -0
- package/assets/esri/core/workers/chunks/bd278f8081be8304be8d.js +1 -0
- package/assets/esri/core/workers/chunks/bd2f577cae61facdde4a.js +1 -0
- package/assets/esri/core/workers/chunks/c1a26956713262cb3cb3.js +1 -0
- package/assets/esri/core/workers/chunks/c1dc14b07282474a7c2d.js +1 -0
- package/assets/esri/core/workers/chunks/c327fe276238af60fda4.js +1 -0
- package/assets/esri/core/workers/chunks/c4a78ab84186c7be599a.js +1 -0
- package/assets/esri/core/workers/chunks/c4dc60617152d885f3da.js +1 -0
- package/assets/esri/core/workers/chunks/c6d5f6cfbb31a3fd11ff.js +1 -0
- package/assets/esri/core/workers/chunks/c7f27a84268a9b0d8cdb.js +1 -0
- package/assets/esri/core/workers/chunks/c80c6e60c87c3e5f5e62.js +1 -0
- package/assets/esri/core/workers/chunks/c91993503de5faa404f0.js +1 -0
- package/assets/esri/core/workers/chunks/c9a42d86185a0ad35dd1.js +1 -0
- package/assets/esri/core/workers/chunks/c9d600dc6b6b5aafff1c.js +1 -0
- package/assets/esri/core/workers/chunks/ca33847a997ccfe8ddc2.js +1 -0
- package/assets/esri/core/workers/chunks/ca64867bc322a354be8e.js +1 -0
- package/assets/esri/core/workers/chunks/cb6a7ca4ba2cf0b5ced7.js +1 -0
- package/assets/esri/core/workers/chunks/cc3939983cf6f78f7243.js +1 -0
- package/assets/esri/core/workers/chunks/cca19c9564be2d02a277.js +1 -0
- package/assets/esri/core/workers/chunks/ccc2f2b3db008d8a495f.js +1 -0
- package/assets/esri/core/workers/chunks/cce2ea441adb47d15a06.js +1 -0
- package/assets/esri/core/workers/chunks/ce063df750018024c9ed.js +1 -0
- package/assets/esri/core/workers/chunks/ce3e192fbb53a9c6eb3b.js +1 -0
- package/assets/esri/core/workers/chunks/d3734c8de029f1a65315.js +1 -0
- package/assets/esri/core/workers/chunks/d7229019876c0e4ff545.js +1 -0
- package/assets/esri/core/workers/chunks/d72d5031887373d35610.js +1 -0
- package/assets/esri/core/workers/chunks/d7840c3e792efcccee35.js +1 -0
- package/assets/esri/core/workers/chunks/d9f900975ac915a0f24f.js +1 -0
- package/assets/esri/core/workers/chunks/da780342f16e65b55ac8.js +1 -0
- package/assets/esri/core/workers/chunks/db005d9419bb718b3962.js +1 -0
- package/assets/esri/core/workers/chunks/db5bbc240a1b8cd5af52.js +1 -0
- package/assets/esri/core/workers/chunks/dcc8363faa22e6211351.js +1 -0
- package/assets/esri/core/workers/chunks/dcef87f7d06c45cd928b.js +1 -0
- package/assets/esri/core/workers/chunks/dd5d66f067e2386e0514.js +1 -0
- package/assets/esri/core/workers/chunks/dd6efa0afe879bd11a2e.js +1 -0
- package/assets/esri/core/workers/chunks/deaca3cd202851ecf9c2.js +1 -0
- package/assets/esri/core/workers/chunks/df321c37b61099f6e4c2.js +1 -0
- package/assets/esri/core/workers/chunks/e021b2f0e15aee5bf3ad.js +1 -0
- package/assets/esri/core/workers/chunks/e0344b45af88081fa186.js +1 -0
- package/assets/esri/core/workers/chunks/{77fc225259f1c5800095.js → e2661d39c48376163adf.js} +1 -1
- package/assets/esri/core/workers/chunks/e2bdb0e87422e222646e.js +1 -0
- package/assets/esri/core/workers/chunks/e3fe1db9380633292b27.js +1 -0
- package/assets/esri/core/workers/chunks/e67bdd8bf38ebe89a344.js +1 -0
- package/assets/esri/core/workers/chunks/e6f51f66b71e0d6525ec.js +1 -0
- package/assets/esri/core/workers/chunks/e7bee85f28d7ec03825a.js +1 -0
- package/assets/esri/core/workers/chunks/e8495c655a0a4f534636.js +1 -0
- package/assets/esri/core/workers/chunks/e9dd60d0220036545ebb.js +1 -0
- package/assets/esri/core/workers/chunks/ea245d3a6fd601fffd88.js +1 -0
- package/assets/esri/core/workers/chunks/eb4ffb72c9360062141c.js +1 -0
- package/assets/esri/core/workers/chunks/ebae903845643d60b44a.js +1 -0
- package/assets/esri/core/workers/chunks/ebb0372e8da0f75c09dd.js +1 -0
- package/assets/esri/core/workers/chunks/eef102e13fd8878eeb96.js +1 -0
- package/assets/esri/core/workers/chunks/ef267b938327c41727c1.js +1 -0
- package/assets/esri/core/workers/chunks/ef72f4822284bcad75d8.js +1 -0
- package/assets/esri/core/workers/chunks/efb2a8879011d2d77a81.js +1 -0
- package/assets/esri/core/workers/chunks/f0e6a26a3625068b08ab.js +1 -0
- package/assets/esri/core/workers/chunks/f12f96770a45ce6d1ed7.js +1 -0
- package/assets/esri/core/workers/chunks/f349f64f683620bdf9b5.js +30 -0
- package/assets/esri/core/workers/chunks/f379f94adbe79dc305a2.js +1 -0
- package/assets/esri/core/workers/chunks/f4301ea9a6cb3bcef906.js +1 -0
- package/assets/esri/core/workers/chunks/f5144e570952ca62a1b0.js +1 -0
- package/assets/esri/core/workers/chunks/f5cebeaad3e7d87d7997.js +1 -0
- package/assets/esri/core/workers/chunks/f6c9742691ccdaed44a2.js +1 -0
- package/assets/esri/core/workers/chunks/f76c2b09e6ba9d107898.js +1 -0
- package/assets/esri/core/workers/chunks/f7d67b7c9785a1955b17.js +1 -0
- package/assets/esri/core/workers/chunks/faad127dc07e54e7f6d1.js +1 -0
- package/assets/esri/core/workers/chunks/fcf962f3dec6b5440983.js +1 -0
- package/assets/esri/core/workers/chunks/feececf6809231f72c5a.js +1 -0
- package/chunks/Compositing.glsl.js +3 -4
- package/chunks/OITBlend.glsl.js +8 -7
- package/config.d.ts +94 -34
- package/config.js +1 -1
- package/core/SetUtils.js +1 -1
- package/geometry/support/curves/curveUtils.js +1 -1
- package/identity/IdentityManager.d.ts +11 -7
- package/identity/IdentityManagerBase.d.ts +13 -9
- package/kernel.js +1 -1
- package/layers/SubtypeGroupLayer.d.ts +0 -1
- package/layers/support/EditingCapabilities.js +1 -1
- package/layers/support/SubtypeSublayer.js +1 -1
- package/package.json +4 -4
- package/rest/query/operations/pbfFlatFeatureSet.js +1 -1
- package/smartMapping/raster/renderers/classBreaks.d.ts +1 -1
- package/smartMapping/raster/renderers/flow.d.ts +2 -1
- package/smartMapping/renderers/color.d.ts +19 -3
- package/smartMapping/renderers/dotDensity.d.ts +6 -1
- package/smartMapping/renderers/heatmap.d.ts +4 -1
- package/smartMapping/renderers/location.d.ts +2 -2
- package/smartMapping/renderers/opacity.d.ts +2 -2
- package/smartMapping/renderers/pieChart.d.ts +2 -2
- package/smartMapping/renderers/predominance.d.ts +2 -2
- package/smartMapping/renderers/relationship.d.ts +2 -2
- package/smartMapping/renderers/size.d.ts +7 -6
- package/smartMapping/renderers/support/rendererUtils.d.ts +2 -2
- package/smartMapping/renderers/type.d.ts +4 -3
- package/smartMapping/renderers/univariateColorSize.d.ts +2 -2
- package/smartMapping/statistics/support/ageUtils.d.ts +3 -2
- package/smartMapping/statistics/types.d.ts +8 -7
- package/smartMapping/support/adapters/types.d.ts +6 -0
- package/smartMapping/symbology/color.d.ts +1 -1
- package/smartMapping/symbology/support/colorRamps.d.ts +2 -2
- package/smartMapping/symbology/support/colorRamps.js +1 -1
- package/support/revision.js +1 -1
- package/symbols/support/OccludedVisibility.d.ts +1 -1
- package/symbols/support/OccludedVisibility.js +1 -1
- package/symbols/support/Symbol3DEmissive.d.ts +33 -17
- package/views/2d/engine/webgl/MaterialManager.js +1 -1
- package/views/2d/engine/webgl/brushes/BrushClip.js +1 -1
- package/views/2d/engine/webgl/brushes/WGLBrushStencil.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/typed/TypedShaderProgram.js +1 -1
- package/views/2d/engine/webgl/shaders/sources/shaderRepository.js +1 -1
- package/views/2d/interactive/SnappingVisualizer2D.js +1 -1
- package/views/2d/layers/graphics/GraphicBoundsRenderer.js +1 -1
- package/views/2d/webglDeps.js +1 -1
- package/views/3d/environment/CloudsComposition.js +1 -1
- package/views/3d/environment/CloudsTechnique.js +1 -1
- package/views/3d/environment/Fog.js +1 -1
- package/views/3d/environment/FogTechnique.js +1 -1
- package/views/3d/environment/NoiseTextureAtlasTechnique.js +1 -1
- package/views/3d/environment/PrecipitationTechnique.js +1 -1
- package/views/3d/interactive/SnappingVisualizer3D.js +1 -1
- package/views/3d/layers/graphics/Deconflictor.js +1 -1
- package/views/3d/layers/graphics/GraphicStateTracking.js +1 -1
- package/views/3d/layers/graphics/Graphics3DCore.js +1 -1
- package/views/3d/layers/graphics/Graphics3DObject3DGraphicLayer.js +1 -1
- package/views/3d/layers/graphics/GraphicsDeconflictor.js +1 -1
- package/views/3d/terrain/BlendLayersTechnique.js +1 -1
- package/views/3d/webgl-engine/collections/Component/Material/ComponentTechnique.js +1 -1
- package/views/3d/webgl-engine/core/renderPasses/RenderPassManager.js +1 -1
- package/views/3d/webgl-engine/core/shaderTechnique/ShaderTechnique.js +1 -1
- package/views/3d/webgl-engine/core/shaderTechnique/ShaderTechniqueRepository.js +1 -1
- package/views/3d/webgl-engine/effects/blit/Blit.js +1 -1
- package/views/3d/webgl-engine/effects/debug/RenderNodeVisualizerNode.js +1 -1
- package/views/3d/webgl-engine/effects/glow/GlowBlurTechnique.js +1 -1
- package/views/3d/webgl-engine/effects/glow/GlowCompositionTechnique.js +1 -1
- package/views/3d/webgl-engine/effects/haze/Haze.js +1 -1
- package/views/3d/webgl-engine/effects/haze/HazeCompositingTechnique.js +1 -1
- package/views/3d/webgl-engine/effects/highlight/Highlight.js +1 -1
- package/views/3d/webgl-engine/effects/highlight/HighlightApplyTechnique.js +1 -1
- package/views/3d/webgl-engine/effects/highlight/HighlightBlurTechnique.js +1 -1
- package/views/3d/webgl-engine/effects/highlight/HighlightDownsampleTechnique.js +1 -1
- package/views/3d/webgl-engine/effects/highlight/HighlightToSingleTechnique.js +1 -1
- package/views/3d/webgl-engine/effects/highlight/ShadowHighlight.js +1 -1
- package/views/3d/webgl-engine/effects/highlight/ShadowHighlightTechnique.js +1 -1
- package/views/3d/webgl-engine/effects/laserlines/LaserLineRenderer.js +1 -1
- package/views/3d/webgl-engine/effects/laserlines/LaserlinePathTechnique.js +1 -1
- package/views/3d/webgl-engine/effects/smaa/SMAA.js +1 -1
- package/views/3d/webgl-engine/effects/smaa/SMAABlendWeightsTechnique.js +1 -1
- package/views/3d/webgl-engine/effects/smaa/SMAABlurTechnique.js +1 -1
- package/views/3d/webgl-engine/effects/smaa/SMAAEdgeDetectTechnique.js +1 -1
- package/views/3d/webgl-engine/effects/ssao/SSAO.js +1 -1
- package/views/3d/webgl-engine/effects/ssao/SSAOBlurTechnique.js +1 -1
- package/views/3d/webgl-engine/effects/stars/StarsTechnique.js +1 -1
- package/views/3d/webgl-engine/effects/transparency/OITBlend.js +1 -1
- package/views/3d/webgl-engine/effects/transparency/OITBlendTechnique.js +1 -1
- package/views/3d/webgl-engine/effects/transparency/OITBlendTechniqueConfiguration.js +1 -1
- package/views/3d/webgl-engine/effects/transparency/OITDimTechnique.js +1 -1
- package/views/3d/webgl-engine/lib/Compositor.js +2 -0
- package/views/3d/webgl-engine/lib/GPUPointOcclusionQuery.js +1 -1
- package/views/3d/webgl-engine/lib/Program.js +1 -1
- package/views/3d/webgl-engine/lib/Renderer.js +1 -1
- package/views/3d/webgl-engine/lib/ShadowAccumulator.js +1 -1
- package/views/3d/webgl-engine/materials/renderers/MergedBuffer.js +1 -1
- package/views/3d/webgl-engine/materials/renderers/PerBufferData.js +1 -1
- package/views/3d/webgl-engine/parts/RenderView.js +1 -1
- package/views/3d/webgl-engine/shaders/AtmosphereCompositingTechnique.js +1 -1
- package/views/3d/webgl-engine/shaders/ColorMaterialTechnique.js +1 -1
- package/views/3d/webgl-engine/shaders/CompositingTechnique.js +1 -1
- package/views/3d/webgl-engine/shaders/CompositingTechniqueConfiguration.js +1 -1
- package/views/3d/webgl-engine/shaders/CutFillCompositionTechnique.js +1 -1
- package/views/3d/webgl-engine/shaders/CutFillDepthTechnique.js +1 -1
- package/views/3d/webgl-engine/shaders/CutFillMaskTechnique.js +1 -1
- package/views/3d/webgl-engine/shaders/DefaultMaterialTechnique.js +1 -1
- package/views/3d/webgl-engine/shaders/HUDMaterialTechnique.js +1 -1
- package/views/3d/webgl-engine/shaders/ImageMaterialTechnique.js +1 -1
- package/views/3d/webgl-engine/shaders/OverlayCompositingTechnique.js +1 -1
- package/views/3d/webgl-engine/shaders/PatternTechnique.js +1 -1
- package/views/3d/webgl-engine/shaders/RibbonLineTechnique.js +1 -1
- package/views/3d/webgl-engine/shaders/ShadowCastAccumulateTechnique.js +1 -1
- package/views/3d/webgl-engine/shaders/ShadowCastClearTechnique.js +1 -1
- package/views/3d/webgl-engine/shaders/TerrainTechnique.js +1 -1
- package/views/View.d.ts +8 -0
- package/views/draw/DrawTool.js +1 -1
- package/views/draw/plugins/PolygonPlugin.js +1 -1
- package/views/draw/support/InteractiveHandle.js +1 -1
- package/views/draw/support/managers/InteractiveHandleManager.js +1 -1
- package/views/draw/support/managers/TooltipManager.js +1 -1
- package/views/interactive/sketch/constraints.js +1 -1
- package/views/interactive/snapping/FeatureSnappingEngine.js +1 -1
- package/views/interactive/snapping/SnappingVisualizer.js +1 -1
- package/views/interactive/snapping/candidates/EdgeSnappingCandidate.js +1 -1
- package/views/interactive/snapping/featureSources/queryEngineUtils.js +1 -1
- package/views/interactive/snapping/hints/CurveSnappingHint.js +2 -0
- package/views/interactive/snapping/hints/LineSnappingHint.js +1 -1
- package/views/interactive/tooltip/infos/DynamicTooltipInfo.js +1 -1
- package/views/support/imageReprojection.js +1 -1
- package/views/webgl/AllocationTracer.js +1 -1
- package/views/webgl/AppleAmdDriverHelper.js +1 -1
- package/views/webgl/Program.js +1 -1
- package/views/webgl/ProgramCache.js +1 -1
- package/views/webgl/ProgramTemplate.js +1 -1
- package/views/webgl/RenderingContext.js +1 -1
- package/views/webgl/WebGLDriverTestModule.js +1 -1
- package/views/webgl/testAppleAmdDrawArrays.js +1 -1
- package/views/webgl/testFloatBufferBlend.js +1 -1
- package/views/webgl/testSVGPremultipliedAlpha.js +1 -1
- package/webscene/Glow.d.ts +19 -14
- package/widgets/Editor/CreateFeaturesWorkflow.js +1 -1
- package/widgets/Editor/CreateFeaturesWorkflowData.js +1 -1
- package/widgets/Editor/EditorViewModel.d.ts +15 -4
- package/widgets/Editor/EditorViewModel.js +1 -1
- package/widgets/Editor/SplitFeatureWorkflow.js +1 -1
- package/widgets/Editor/UpdateFeatureWorkflow.js +1 -1
- package/widgets/Editor/UpdateFeatureWorkflowData.js +1 -1
- package/widgets/Editor/UpdateFeaturesWorkflow.js +1 -1
- package/widgets/Editor/UpdateFeaturesWorkflowData.js +1 -1
- package/widgets/Editor/UpdateRecordWorkflowData.js +1 -1
- package/widgets/Editor/UpdateWorkflow.js +1 -1
- package/widgets/Editor/Workflow.js +1 -1
- package/widgets/Editor/components/Notices.js +1 -1
- package/widgets/Editor/components/UpdateFeaturePanelContent.js +1 -1
- package/widgets/Editor/support/EditorItem.js +1 -1
- package/widgets/Editor/support/SketchController.js +1 -1
- package/widgets/Editor/workflowUtils.js +1 -1
- package/widgets/Editor.d.ts +17 -5
- package/widgets/FeatureTable/FeatureTableViewModel.d.ts +17 -5
- package/widgets/FeatureTable.d.ts +16 -4
- package/widgets/OrientedImageryViewer/OrientedImageryViewerViewModel.d.ts +9 -1
- package/widgets/OrientedImageryViewer/OrientedImageryViewerViewModel.js +1 -1
- package/widgets/OrientedImageryViewer.d.ts +9 -1
- package/widgets/OrientedImageryViewer.js +1 -1
- package/widgets/Sketch/support/PluginManager.js +1 -1
- package/assets/esri/core/workers/chunks/00bb90a3f0560800279b.js +0 -1
- package/assets/esri/core/workers/chunks/02d862fe58670c1f4722.js +0 -1
- package/assets/esri/core/workers/chunks/033b4f9ca08791e0c001.js +0 -1
- package/assets/esri/core/workers/chunks/045e4e520d6dffe06ba7.js +0 -1
- package/assets/esri/core/workers/chunks/04f82b740325e3388d23.js +0 -1
- package/assets/esri/core/workers/chunks/05d6cd51ca970705e46a.js +0 -1
- package/assets/esri/core/workers/chunks/08d73543c713984f6ecf.js +0 -1028
- package/assets/esri/core/workers/chunks/0b59e5be22139387bd84.js +0 -1
- package/assets/esri/core/workers/chunks/0e1d559d05229ef92e35.js +0 -1
- package/assets/esri/core/workers/chunks/0e6ffb02a929130ddb50.js +0 -1
- package/assets/esri/core/workers/chunks/112227b862b935123ddf.js +0 -2
- package/assets/esri/core/workers/chunks/11882cbb28710e5f9fc5.js +0 -1
- package/assets/esri/core/workers/chunks/12cfe900ce04af22f162.js +0 -1
- package/assets/esri/core/workers/chunks/1336f685bae5f1251558.js +0 -1
- package/assets/esri/core/workers/chunks/13512a23655258fa77f4.js +0 -1
- package/assets/esri/core/workers/chunks/13da9e3b96d8f653cbad.js +0 -1
- package/assets/esri/core/workers/chunks/1469e6d1d0d4e310b8f8.js +0 -1
- package/assets/esri/core/workers/chunks/15d46482ec096e3ce161.js +0 -1
- package/assets/esri/core/workers/chunks/1757133063fac226fdd4.js +0 -1
- package/assets/esri/core/workers/chunks/1794db88a2006711eff3.js +0 -1
- package/assets/esri/core/workers/chunks/189e22df73414a1a3989.js +0 -1
- package/assets/esri/core/workers/chunks/1951ff6789b9a598f122.js +0 -1
- package/assets/esri/core/workers/chunks/1ba756289468064f6204.js +0 -1
- package/assets/esri/core/workers/chunks/1cfa8d404d42b9eccf78.js +0 -1
- package/assets/esri/core/workers/chunks/1e916e552ce7d53692d2.js +0 -1
- package/assets/esri/core/workers/chunks/1fb6b65d8fd21fb9a21e.js +0 -1
- package/assets/esri/core/workers/chunks/2011da6dfc4bb89829c6.js +0 -1
- package/assets/esri/core/workers/chunks/203ef5459fc5dde12851.js +0 -1
- package/assets/esri/core/workers/chunks/215c54520d0da638fe57.js +0 -1
- package/assets/esri/core/workers/chunks/22045f85e503ae0ec8f4.js +0 -1
- package/assets/esri/core/workers/chunks/2351b713ba3d05de0728.js +0 -1
- package/assets/esri/core/workers/chunks/249630af2fb01257eb75.js +0 -1
- package/assets/esri/core/workers/chunks/24dd404612c35f6a3fc3.js +0 -1
- package/assets/esri/core/workers/chunks/25d34552bfb255af9467.js +0 -1
- package/assets/esri/core/workers/chunks/27c34a73fb380fc57f6e.js +0 -1
- package/assets/esri/core/workers/chunks/27d60fd727e9a68973f6.js +0 -1
- package/assets/esri/core/workers/chunks/27e14277128446e76b45.js +0 -1
- package/assets/esri/core/workers/chunks/2a3e82a230b7ee4dfd55.js +0 -1
- package/assets/esri/core/workers/chunks/2c69d8bb1c950b95278d.js +0 -1
- package/assets/esri/core/workers/chunks/2c6dbb9a8d7cc35f5093.js +0 -1
- package/assets/esri/core/workers/chunks/2d376f82cdf020e1fca9.js +0 -1
- package/assets/esri/core/workers/chunks/2d67ab4927a968d5c8d4.js +0 -1
- package/assets/esri/core/workers/chunks/2e50b7651f8c037bb3b0.js +0 -1
- package/assets/esri/core/workers/chunks/2e63e18df96e5a2461de.js +0 -1
- package/assets/esri/core/workers/chunks/2e82e284bbb3ff769a0b.js +0 -1
- package/assets/esri/core/workers/chunks/31184dc458281af654c7.js +0 -1
- package/assets/esri/core/workers/chunks/3214763f268622f09986.js +0 -1
- package/assets/esri/core/workers/chunks/32a1ccc145c9f6091e13.js +0 -1
- package/assets/esri/core/workers/chunks/34691b147318b2cfdd45.js +0 -1
- package/assets/esri/core/workers/chunks/34b367f617a7b3db55e0.js +0 -1
- package/assets/esri/core/workers/chunks/37d4a0b941bb2a7f113a.js +0 -1
- package/assets/esri/core/workers/chunks/3875b075ffaa1ed0089f.js +0 -1
- package/assets/esri/core/workers/chunks/3d3b1ce112be6ea31d93.js +0 -1
- package/assets/esri/core/workers/chunks/3dfc088a2c5289e6c79f.js +0 -1
- package/assets/esri/core/workers/chunks/3f3c63420644f9522ab1.js +0 -1
- package/assets/esri/core/workers/chunks/3fcab49eb215a477d8c4.js +0 -1
- package/assets/esri/core/workers/chunks/41108f58f0f439ebba3f.js +0 -1
- package/assets/esri/core/workers/chunks/415957a42e45eb21aa84.js +0 -1
- package/assets/esri/core/workers/chunks/4375d046b041a770c871.js +0 -1
- package/assets/esri/core/workers/chunks/43c797bfc2191b51875b.js +0 -1
- package/assets/esri/core/workers/chunks/460a82f3e4838b13e3b4.js +0 -1
- package/assets/esri/core/workers/chunks/473e43a74f56cb9bfe65.js +0 -1
- package/assets/esri/core/workers/chunks/4801e48cd4a14bacab78.js +0 -1
- package/assets/esri/core/workers/chunks/499d594dc0d282dfe777.js +0 -1
- package/assets/esri/core/workers/chunks/4ad6f80488aa218b95e3.js +0 -1
- package/assets/esri/core/workers/chunks/4db259316b193fcc4541.js +0 -1
- package/assets/esri/core/workers/chunks/4e9863a11d09900baf30.js +0 -1
- package/assets/esri/core/workers/chunks/4fe210314813ea1f7a26.js +0 -1
- package/assets/esri/core/workers/chunks/51603e99469847aa3ac4.js +0 -1
- package/assets/esri/core/workers/chunks/52705ccbb452a3edb064.js +0 -1
- package/assets/esri/core/workers/chunks/53e348f5585fa8c53fe8.js +0 -2
- package/assets/esri/core/workers/chunks/54c545f44b7ce21fb604.js +0 -1
- package/assets/esri/core/workers/chunks/54db2d2418721e92fbb0.js +0 -1
- package/assets/esri/core/workers/chunks/552e5c413828e181f89a.js +0 -1
- package/assets/esri/core/workers/chunks/558e9fed2e58cbbf9947.js +0 -1
- package/assets/esri/core/workers/chunks/55c5c4fcec0f8c4d59b2.js +0 -1
- package/assets/esri/core/workers/chunks/58134617fb7530836b81.js +0 -1
- package/assets/esri/core/workers/chunks/58c4be467a922fe37f01.js +0 -1
- package/assets/esri/core/workers/chunks/5924fe7de9f5ff8984ad.js +0 -1
- package/assets/esri/core/workers/chunks/5cd39bb8123adc80d8a7.js +0 -1
- package/assets/esri/core/workers/chunks/5cd8bbb719d95cb32cab.js +0 -1
- package/assets/esri/core/workers/chunks/5dba08099036e69e0a04.js +0 -1
- package/assets/esri/core/workers/chunks/5eb5d3b2329ec648cf3f.js +0 -1
- package/assets/esri/core/workers/chunks/5f10f39835cb40179000.js +0 -1
- package/assets/esri/core/workers/chunks/5f9eeab833a6c08c76c4.js +0 -1
- package/assets/esri/core/workers/chunks/606b4f1be91905a10bdb.js +0 -1
- package/assets/esri/core/workers/chunks/628056a312d919e98fa3.js +0 -1
- package/assets/esri/core/workers/chunks/62e9a9821f1563515ab4.js +0 -1
- package/assets/esri/core/workers/chunks/639302042c30e4265694.js +0 -1
- package/assets/esri/core/workers/chunks/645e086291b04bc036d7.js +0 -1
- package/assets/esri/core/workers/chunks/651b46aeabf22ff53a38.js +0 -1
- package/assets/esri/core/workers/chunks/65ad8838911a6d71816b.js +0 -1
- package/assets/esri/core/workers/chunks/65f86594c42ff82095fe.js +0 -1
- package/assets/esri/core/workers/chunks/6772468d1721d6d2a529.js +0 -1
- package/assets/esri/core/workers/chunks/677f5e444ff588ab670f.js +0 -1
- package/assets/esri/core/workers/chunks/6869f975d42b5a2936e2.js +0 -1
- package/assets/esri/core/workers/chunks/69ab42b965bccc3bad4f.js +0 -1
- package/assets/esri/core/workers/chunks/6a083fde0e207625fd0b.js +0 -1
- package/assets/esri/core/workers/chunks/6a9a96aa811c1d3b6edb.js +0 -1
- package/assets/esri/core/workers/chunks/6b3494e5a32912ee6325.js +0 -1
- package/assets/esri/core/workers/chunks/6b5d2cef309a2581d0d1.js +0 -1
- package/assets/esri/core/workers/chunks/6bf7d8de86b9eb76f920.js +0 -1
- package/assets/esri/core/workers/chunks/6c0b7890c8eec7febe28.js +0 -1
- package/assets/esri/core/workers/chunks/6c85396c90941a042c33.js +0 -1
- package/assets/esri/core/workers/chunks/6d02fdcaa1559b741f89.js +0 -1
- package/assets/esri/core/workers/chunks/6f337c3ccd84d90a35e5.js +0 -1
- package/assets/esri/core/workers/chunks/71159f66d9867aaea6cf.js +0 -1
- package/assets/esri/core/workers/chunks/711bec78dc00fad0f78d.js +0 -1
- package/assets/esri/core/workers/chunks/71ad08a5b69cf2e6714e.js +0 -1
- package/assets/esri/core/workers/chunks/7382c9882525101eddad.js +0 -1
- package/assets/esri/core/workers/chunks/750dfcbfcadf0629daf6.js +0 -1
- package/assets/esri/core/workers/chunks/75907e5d009b71ce723b.js +0 -1
- package/assets/esri/core/workers/chunks/79c69ae86a1f4a56f7c7.js +0 -1
- package/assets/esri/core/workers/chunks/79ee97609f72e4cf989c.js +0 -1
- package/assets/esri/core/workers/chunks/7a037fbfd91dd22e3bf0.js +0 -1
- package/assets/esri/core/workers/chunks/7cf8fc491877d59caf3a.js +0 -1
- package/assets/esri/core/workers/chunks/7d2b1e5402a88b6bee85.js +0 -1
- package/assets/esri/core/workers/chunks/7ec83fc059325e207825.js +0 -1
- package/assets/esri/core/workers/chunks/7ee7529fcbd0d169047c.js +0 -1
- package/assets/esri/core/workers/chunks/7f385e9c88df3395e678.js +0 -1
- package/assets/esri/core/workers/chunks/80d51d58db09b9f96cb5.js +0 -1
- package/assets/esri/core/workers/chunks/81a45d7e9dadf678b584.js +0 -1
- package/assets/esri/core/workers/chunks/81c758bdc07ed9d9a132.js +0 -1
- package/assets/esri/core/workers/chunks/822a115c7d718e4e3d2b.js +0 -1
- package/assets/esri/core/workers/chunks/825ffcde4f224006e776.js +0 -1
- package/assets/esri/core/workers/chunks/83711695e16912e9b9c5.js +0 -1
- package/assets/esri/core/workers/chunks/8374658d17f69bde6b08.js +0 -1
- package/assets/esri/core/workers/chunks/84b6ac0965d83704ba5d.js +0 -1
- package/assets/esri/core/workers/chunks/88a02b3a802d484c08a8.js +0 -1
- package/assets/esri/core/workers/chunks/89cd0e3420ab31e98a77.js +0 -1
- package/assets/esri/core/workers/chunks/8c3bf66f8543cedc72ef.js +0 -1
- package/assets/esri/core/workers/chunks/8cade3af17a8bb6d4e37.js +0 -1
- package/assets/esri/core/workers/chunks/8eea620f770576d18809.js +0 -1
- package/assets/esri/core/workers/chunks/9138503cc61989b00444.js +0 -1
- package/assets/esri/core/workers/chunks/920d6330df72e2f01d19.js +0 -1
- package/assets/esri/core/workers/chunks/936974764f433eb928a8.js +0 -1
- package/assets/esri/core/workers/chunks/99c9f35a29f9f6c9e4ce.js +0 -1
- package/assets/esri/core/workers/chunks/9a52bb5949ca836b7e79.js +0 -1
- package/assets/esri/core/workers/chunks/9a5327d3c3658e60564d.js +0 -1
- package/assets/esri/core/workers/chunks/9dc7abca1d1eb9ba5b58.js +0 -1
- package/assets/esri/core/workers/chunks/9e054c264b17f04b7efa.js +0 -1
- package/assets/esri/core/workers/chunks/a143a6f8e2f21548b244.js +0 -1
- package/assets/esri/core/workers/chunks/a33a3c9bbe6bc7273285.js +0 -1
- package/assets/esri/core/workers/chunks/a48a6232fa33084cb686.js +0 -1
- package/assets/esri/core/workers/chunks/a4947d5d2fa6b7bd399b.js +0 -1
- package/assets/esri/core/workers/chunks/a49f1172b17c14527acf.js +0 -1
- package/assets/esri/core/workers/chunks/a7d4d257f49f3b153c26.js +0 -1
- package/assets/esri/core/workers/chunks/aaf3ed508d30ed583915.js +0 -1
- package/assets/esri/core/workers/chunks/aceec85ce64a3e6d8761.js +0 -1
- package/assets/esri/core/workers/chunks/b10b3eb8c2ed9be14ab2.js +0 -1
- package/assets/esri/core/workers/chunks/b220fedcb8a2d6450408.js +0 -1
- package/assets/esri/core/workers/chunks/b315b3771d0d19681aa5.js +0 -1
- package/assets/esri/core/workers/chunks/b397a9f87082705301a4.js +0 -2
- package/assets/esri/core/workers/chunks/b40e4ed067da65c3d7ce.js +0 -1
- package/assets/esri/core/workers/chunks/b4b16914950792c46bd3.js +0 -1
- package/assets/esri/core/workers/chunks/b5f291e8ed7f7cac158d.js +0 -1
- package/assets/esri/core/workers/chunks/b6969a42602517a6ef1c.js +0 -1
- package/assets/esri/core/workers/chunks/b732ad893d352db79ee1.js +0 -1
- package/assets/esri/core/workers/chunks/b9226dd0342cfd30ece0.js +0 -1
- package/assets/esri/core/workers/chunks/baad696d84ab78b3d00e.js +0 -2
- package/assets/esri/core/workers/chunks/bab1c3f48d089d71e983.js +0 -30
- package/assets/esri/core/workers/chunks/bab6dee8f4715d05d984.js +0 -1
- package/assets/esri/core/workers/chunks/bc2dcbdc414d157ab727.js +0 -1
- package/assets/esri/core/workers/chunks/bcb254cb7297fec88679.js +0 -1
- package/assets/esri/core/workers/chunks/bd2125e0a68378533641.js +0 -1
- package/assets/esri/core/workers/chunks/bdb4f216ae8881b98604.js +0 -1
- package/assets/esri/core/workers/chunks/bde2c3199f667b63dbe8.js +0 -1
- package/assets/esri/core/workers/chunks/be52d98da81b413388b3.js +0 -1
- package/assets/esri/core/workers/chunks/bf42b5c77f5757dc9328.js +0 -1
- package/assets/esri/core/workers/chunks/bf595eb10f99b8a96baa.js +0 -1
- package/assets/esri/core/workers/chunks/c0b6706f86665cec85f8.js +0 -1
- package/assets/esri/core/workers/chunks/c2ef5e5a3a4fad7f65db.js +0 -1
- package/assets/esri/core/workers/chunks/c3c6d337ff53e5d921e8.js +0 -1
- package/assets/esri/core/workers/chunks/c461c19e4fdbdd2e94d4.js +0 -1
- package/assets/esri/core/workers/chunks/c5fa5645f3a10dfdd7fb.js +0 -1
- package/assets/esri/core/workers/chunks/c66aa57b6360963bd938.js +0 -1
- package/assets/esri/core/workers/chunks/c873ac660e7d5dc88781.js +0 -1
- package/assets/esri/core/workers/chunks/c99f36159b5ed6f9267e.js +0 -1
- package/assets/esri/core/workers/chunks/c9a57f6d0d35b968ebea.js +0 -1
- package/assets/esri/core/workers/chunks/ca6a65f149e7f34dab9c.js +0 -1
- package/assets/esri/core/workers/chunks/cb5f4820277f3fc7ff2f.js +0 -1
- package/assets/esri/core/workers/chunks/cf4202ad468501ef24cf.js +0 -1
- package/assets/esri/core/workers/chunks/d03d50f3247327257d8b.js +0 -1
- package/assets/esri/core/workers/chunks/d1bfb6a229a58e2af761.js +0 -1
- package/assets/esri/core/workers/chunks/d2017b0b27b9e4ada922.js +0 -1
- package/assets/esri/core/workers/chunks/d2d9c1f32a75befe168b.js +0 -1
- package/assets/esri/core/workers/chunks/d309172ad61de2b3c15d.js +0 -1
- package/assets/esri/core/workers/chunks/d3416e6da0c1cbb53b3a.js +0 -1
- package/assets/esri/core/workers/chunks/d39f5d57f7e35c00ca16.js +0 -1
- package/assets/esri/core/workers/chunks/d4422e6e1f09d8c9352e.js +0 -1
- package/assets/esri/core/workers/chunks/d4770dddfbfdc3845749.js +0 -1
- package/assets/esri/core/workers/chunks/d5b4487a983921572e58.js +0 -1
- package/assets/esri/core/workers/chunks/d5f06cb4797629648997.js +0 -1
- package/assets/esri/core/workers/chunks/d78b2f85ec9212a973e8.js +0 -1
- package/assets/esri/core/workers/chunks/d7f89a3372730dacc04c.js +0 -1
- package/assets/esri/core/workers/chunks/d9dc8d9fc8ab2706f96b.js +0 -1
- package/assets/esri/core/workers/chunks/da42da04a9df651b06cc.js +0 -1
- package/assets/esri/core/workers/chunks/dc7860179a2d1fd05ac2.js +0 -1
- package/assets/esri/core/workers/chunks/dc7df2072c0ebed5602c.js +0 -1
- package/assets/esri/core/workers/chunks/dc96f2f6e0e02e47476f.js +0 -1
- package/assets/esri/core/workers/chunks/dd24cddc406f610d2483.js +0 -1
- package/assets/esri/core/workers/chunks/dd3789e71270a4640551.js +0 -1
- package/assets/esri/core/workers/chunks/dd6d4a0f1f3215ca34a5.js +0 -1
- package/assets/esri/core/workers/chunks/de6438fdbe38d32c4ad5.js +0 -1
- package/assets/esri/core/workers/chunks/ded71a656e2626a411f9.js +0 -1
- package/assets/esri/core/workers/chunks/df1fa0f7e8f7e2bcc2e6.js +0 -1
- package/assets/esri/core/workers/chunks/df80d5345765b769416f.js +0 -1
- package/assets/esri/core/workers/chunks/e16d542648bae86e890f.js +0 -1
- package/assets/esri/core/workers/chunks/e1827e86226bf9a0f4ea.js +0 -1
- package/assets/esri/core/workers/chunks/e2e03622936d2b35afc0.js +0 -1
- package/assets/esri/core/workers/chunks/e33f5780fb45ac7ca889.js +0 -1
- package/assets/esri/core/workers/chunks/e3ee2b699c42fd113b46.js +0 -1
- package/assets/esri/core/workers/chunks/e4611ebd7dba7692a914.js +0 -1
- package/assets/esri/core/workers/chunks/e508f8e707eb3207cfcc.js +0 -1
- package/assets/esri/core/workers/chunks/e52793690dff1a199647.js +0 -1
- package/assets/esri/core/workers/chunks/e55859fce1908c24423a.js +0 -1
- package/assets/esri/core/workers/chunks/e56a10a475ce128b5fce.js +0 -1
- package/assets/esri/core/workers/chunks/e93df239fc54af2bd6ba.js +0 -1
- package/assets/esri/core/workers/chunks/ea633a6a3b9ea8ce965d.js +0 -1
- package/assets/esri/core/workers/chunks/eae1c098c16e2faaf90d.js +0 -1
- package/assets/esri/core/workers/chunks/eaf5d55060ffc55aac39.js +0 -1
- package/assets/esri/core/workers/chunks/ece363681bb09072f379.js +0 -1
- package/assets/esri/core/workers/chunks/edaae0fc63d16b0f675d.js +0 -2
- package/assets/esri/core/workers/chunks/ee31d9f44e028df16bd5.js +0 -1
- package/assets/esri/core/workers/chunks/ee89564d11c077169b31.js +0 -1
- package/assets/esri/core/workers/chunks/ee905e24320241959965.js +0 -1
- package/assets/esri/core/workers/chunks/eebf59ac2dd60b9fb262.js +0 -1
- package/assets/esri/core/workers/chunks/ef4237dc7b67c9039826.js +0 -1
- package/assets/esri/core/workers/chunks/ef9106ee818ec732b670.js +0 -1
- package/assets/esri/core/workers/chunks/f0780abe66118b3a0bf2.js +0 -1
- package/assets/esri/core/workers/chunks/f121a0bf33c03abfa0b6.js +0 -1
- package/assets/esri/core/workers/chunks/f4329e3e4e072fac8dc0.js +0 -1
- package/assets/esri/core/workers/chunks/f5dbffd5e8b3c16336a1.js +0 -1
- package/assets/esri/core/workers/chunks/f62e37863a549f72093c.js +0 -1
- package/assets/esri/core/workers/chunks/f984248e2ce417e49f2f.js +0 -1
- package/assets/esri/core/workers/chunks/fab7e3e07d700d7bb651.js +0 -1
- package/assets/esri/core/workers/chunks/fcc8d0b60f7c2397e550.js +0 -1
- package/assets/esri/core/workers/chunks/fcf592dc8c017a08fee0.js +0 -1
- package/assets/esri/core/workers/chunks/fcf6a47f44c917490deb.js +0 -1
- package/assets/esri/core/workers/chunks/fe3c8a6fc080fdf2ad94.js +0 -1
- package/assets/esri/core/workers/chunks/fe5aec7e2da4465422b4.js +0 -1
- package/assets/esri/core/workers/chunks/fefc94944f07c768ad66.js +0 -1
- package/views/3d/webgl-engine/lib/CompositingHelper.js +0 -2
- /package/assets/esri/core/workers/chunks/{53e348f5585fa8c53fe8.js.LICENSE.txt → 13d1cb50232ae761425b.js.LICENSE.txt} +0 -0
- /package/assets/esri/core/workers/chunks/{b397a9f87082705301a4.js.LICENSE.txt → 3861644c06cfebe8f40c.js.LICENSE.txt} +0 -0
- /package/assets/esri/core/workers/chunks/{112227b862b935123ddf.js.LICENSE.txt → 3f812b0a28afb47aaaf0.js.LICENSE.txt} +0 -0
- /package/assets/esri/core/workers/chunks/{edaae0fc63d16b0f675d.js.LICENSE.txt → 43c8b1473695574c663e.js.LICENSE.txt} +0 -0
- /package/assets/esri/core/workers/chunks/{baad696d84ab78b3d00e.js.LICENSE.txt → b586f1021a27c5e1551a.js.LICENSE.txt} +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
|
|
2
|
-
import{__decorate as e}from"tslib";import{update as t}from"../../../../core/arrayUtils.js";import{createTask as r}from"../../../../core/asyncUtils.js";import"../../../../core/has.js";import{removeMaybe as s,abortMaybe as i,destroyMaybe as n,releaseMaybe as a}from"../../../../core/maybe.js";import{throwIfAborted as h}from"../../../../core/promiseUtils.js";import{watch as o,syncAndInitial as d,initial as _,sync as l}from"../../../../core/reactiveUtils.js";import{signal as u}from"../../../../core/signal.js";import{property as p,subclass as c}from"../../../../core/accessorSupport/decorators.js";import{equals as m,invert as f,multiply as g}from"../../../../core/libs/gl-matrix-2/math/mat4.js";import{IDENTITY as b,create as P}from"../../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{set as C}from"../../../../core/libs/gl-matrix-2/math/vec4.js";import{fromValues as w,ZEROS as T}from"../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{pruneIndexArrays as E}from"../../../../geometry/support/Indices.js";import{RenderNodeOutput as x,InternalRenderCategory as S,AllRenderNodeOutputs as A,AllInternalRenderNodeOutputs as D}from"../../webgl.js";import{innerAtmosphereFadeStart as R}from"../../environment/atmosphereUtils.js";import{minNearDistanceInMeters as I}from"../../state/NearFarHeuristic.js";import{debugFlags as y}from"../../support/debugFlags.js";import{FBOCache as H}from"../core/FBOCache.js";import{RenderPassManager as O}from"../core/renderPasses/RenderPassManager.js";import{isColor as v}from"../core/shaderLibrary/ShaderOutput.js";import{distanceFadeEnd as F}from"../core/shaderLibrary/shading/ScreenSpaceConstants.js";import{RenderNodes as M}from"../effects/RenderNodes.js";import{RenderPluginManager as q}from"../effects/RenderPluginManager.js";import{Blit as N}from"../effects/blit/Blit.js";import{maxHighlightsPerChannel as G,renderHighlightBuffer as L}from"../effects/highlight/Highlight.js";import{OITBlend as U}from"../effects/transparency/OITBlend.js";import{AnimationTimer as V}from"./AnimationTimer.js";import{AnimationTimeStep as j}from"./AnimationTimeStep.js";import{BoundingInfo as B}from"./BoundingInfo.js";import{DepthRange as k}from"./DepthRange.js";import{depthRangeFromScene as z}from"./depthRangeUtils.js";import{MainFramebuffer as W}from"./MainFramebuffer.js";import{RenderContext as Q,defaultRenderOccludedMask as Y}from"./RenderContext.js";import{RendererBase as J}from"./RendererBase.js";import{setupFeatureDefaults as K}from"./RenderFeature.js";import{RenderPluginInput as X}from"./RenderPluginInput.js";import{ShadowAccumulator as Z}from"./ShadowAccumulator.js";import{ShadowMap as $}from"./ShadowMap.js";import ee from"./SliceHelper.js";import{MergedRenderer as te}from"../materials/renderers/MergedRenderer.js";import{RenderSceneResult as re}from"../parts/renderUtils.js";import{RendererPerformanceInfo as se,PerformanceCategory as ie}from"../statistics/RendererPerformanceInfo.js";import{PixelType as ne,ColorAttachment1 as ae,ColorAttachment2 as he,ColorAttachment0 as oe}from"../../../webgl/enums.js";let de=class extends J{constructor(e,t,r,s,i,n){super({stage:e}),this._techniques=r,this._rctx=s,this._compositingHelper=i,this._requestRender=n,this._pluginsHas={occludedHudElements:!1,hudElements:!1,water:!1},this.renderPassManager=new O,this._isRendering=!1,this._inGlobeView=!1,this._backgroundColor=w(0,0,0,1),this._sliceHelper=new ee,this.sceneDepthRange=u(k.Infinite),this._state=u(2),this._hasAnimations=!1,this._animationTimestep=new j,this._loadEdgeViewTask=null,this._edgeViewCallbacks=[],this._reprojectionMatrixVersion=u(0),this._renderHiddenTransparentEdges=()=>{},this._pluginInput=new X,this._oitCallouts=!1,this._releaseNodeInputs=e=>{for(const t of Ce)e.some(({name:e})=>e===t)&&this._pluginInput.release(t)},this._debugNeedsDepth=!1,this._fboCache=new H(s),this._renderStateFeatures=u(K(e.view.qualityProfile)),this._framebuffer=new W(this.fboCache),this._performanceInfo=new se(this._rctx),this._shadowMap=new $(this.fboCache,e.viewingMode),this._blit=new N(r),this._shadowAccumulator=new Z(this.fboCache,r,e,e=>{const t=this.shadowsEnabled;this._shadowMap.enabled=!0,this._ensureBindParametersCamera(e.camera,e.contentCamera),this._plugins.prepareRender(),this._shadowMap.enabled=t},(t,r,s)=>{const i=e.view.qualitySettings.maximumPixelRatio;t.shadowMap.start(t.camera,r,s,!0,i),this._renderShadowCascades(3,t.shadowMap),t.shadowMap.finish(),t.camera.setGLViewport(this._rctx),this._ensureBindParametersCamera(t.camera,t.contentCamera)},n),this._renderContext=new Q(this._rctx,this._shadowMap,r),this._nodes=new M(this._renderContext),this._plugins=new q({renderContext:this._renderContext,techniques:r,materials:t,requestRender:n,controller:e,fbos:this.fboCache,isFeatureEnabled:e=>this.isFeatureEnabled(e)}),this._plugins.add(this.renderPassManager),this.addHandles([o(()=>e.view.state.camera,()=>n(),d),o(()=>y.EDGES_SHOW_HIDDEN_TRANSPARENT_EDGES,e=>{this._renderHiddenTransparentEdges=e?()=>this._renderEdges(0):()=>{},n()},_),o(()=>e.view.environment.background?.color,e=>{const t=e?e.toUnitRGBA():T;C(this._backgroundColor,t[0]*t[3],t[1]*t[3],t[2]*t[3],t[3]),n()},d),o(()=>e.view.state.camera.relativeElevation,e=>this._inGlobeView=(e??1/0)>=F,d),o(()=>this._bindParameters.clouds.fadeFactor,()=>{this._bindParameters.fadeLighting(),this._requestRender(2)},l),o(()=>this._bindParameters.clouds.data?.state,()=>n(),l),o(()=>e.view.state.highlights,e=>{this._bindParameters.highlights=e,n()},_)])}destroy(){this._gpuTimerHandle=s(this._gpuTimerHandle),this._nodes.destroy(),this._framebuffer.dispose(),this._shadowMap.dispose(),this._shadowAccumulator.destroy(),this._shadowAccumulator=null,this._loadEdgeViewTask=i(this._loadEdgeViewTask),this._edgeView=n(this._edgeView),this.renderPassManager.dispose(),this._releaseFBOs(),this._disposeOffscreenBuffers(),this._fboCache.destroy(),this._fboCache=null,this._plugins.destroy(),this._plugins=null,this._pluginInput=null,this._oitBlend=null,this._compositingHelper=null,this._nodes=null,this._framebuffer=null,this._shadowMap=null,this._renderContext=null,this._performanceInfo=null,B.prune(),te.prune(),E()}get renderContext(){return this._renderContext}get _bindParameters(){return this._renderContext.bind}get performanceInfo(){return this._performanceInfo}updateRenderFeatures(e){this._renderStateFeatures.value=K(e),this._requestRender()}isFeatureEnabled(e,t=this._state.value){return this._renderStateFeatures.value.get(t,e)??!1}setFeatureEnabled(e,t,r){this._renderStateFeatures.mutate(s=>s.set(t,e,r)),this._requestRender()}get _highQualityTransparency(){return this.isFeatureEnabled(1)}get hasReflections(){return this._pluginsHas.water&&this.isFeatureEnabled(6)}get _hasHighlights(){return this._plugins.produces(8,2,4,20,14,15,16)}hasHighlight(e){return this._plugins.hasHighlight(e)}get _hasHUDHighlights(){return this._plugins.produces(8,14,15,16)}get hasSSAO(){return this.isFeatureEnabled(5)&&!this._inGlobeView}get hasSMAA(){return this.isFeatureEnabled(0)}get hasEmitters(){return this._plugins.hasEmitters&&this._hasFloatBufferBlendSupport}get highResolutionAtmosphere(){return this.isFeatureEnabled(4)}get fboCache(){return this._fboCache}_releaseFBOs(){this._bindParameters.ssr.lastFrameColor=a(this._bindParameters.ssr.lastFrameColor),this._bindParameters.terrainDepth=a(this._bindParameters.terrainDepth),this._bindParameters.geometryDepth=a(this._bindParameters.geometryDepth),this._bindParameters.hudOcclusion=a(this._bindParameters.hudOcclusion)}_disposeOffscreenBuffers(){this._framebuffer.dispose(),this._disposeBindBuffers()}_disposeBindBuffers(){this._shadowMap.disposeBuffers(),this._bindParameters.depth=a(this._bindParameters.depth),this._bindParameters.hudVisibility=a(this._bindParameters.hudVisibility)}get updating(){return this._loadEdgeViewTask&&!this._loadEdgeViewTask.finished||this._edgeView?.updating||this._shadowAccumulator.readyToRun||this._plugins.updating||!this.isCameraFinal}loadEdgeView(){return this._loadEdgeViewTask||(this._loadEdgeViewTask=r(async e=>{const{EdgeView:t}=await import("./edgeRendering/EdgeView.js");h(e);const r=this._edgeView=new t({rctx:this._rctx,renderSR:this.stage.view.renderSpatialReference,viewingMode:this.stage.view.stage.viewingMode,techniques:this._techniques,setNeedsRender:()=>this._requestRender(),schedule:xe(this.stage.view.resourceController)});return this.addHandles(o(()=>r.updating,()=>this._requestRender(),l)),this._requestRender(),this._edgeViewCallbacks.forEach(e=>e(r)),this._edgeViewCallbacks.length=0,r})),this._loadEdgeViewTask.promise}withEdgeView(e){this.loadEdgeView(),null==this._edgeView?this._edgeViewCallbacks.push(e):e(this._edgeView)}get edgeView(){return this._edgeView}get isCameraFinal(){return this._reprojectionMatrixVersion.value>=0&&m(this._bindParameters.ssr.reprojectionMatrix,b)}set _reprojectionMatrix(e){t(this._bindParameters.ssr.reprojectionMatrix,e)&&this._reprojectionMatrixVersion.value++}get shadowsEnabled(){return!!this._shadowMap?.enabled}setParameters(e){const{_shadowMap:t,_bindParameters:r}=this;if(void 0!==e.shadowMap&&this._shadowMap.enabled!==e.shadowMap&&(this._shadowMap.enabled=e.shadowMap,this._requestRender()),void 0!==e.shadowMapMaxCascades&&t.maxCascades!==e.shadowMapMaxCascades&&(t.maxCascades=e.shadowMapMaxCascades,this._requestRender()),e.environment){void 0!==e.environment.weather&&(this._bindParameters.weather=e.environment.weather);const t="virtual"!==e.environment.lighting.type;r.enableFillLights!==t&&(r.enableFillLights=t,this._requestRender())}void 0!==e.shadowCast&&this._shadowAccumulator.setOptions(e.shadowCast)}set slice(e){this._sliceHelper.update(e)&&this._requestRender()}get plugins(){return this._plugins}get _hasFloatBufferBlendSupport(){return this._rctx.driverTest.floatBufferBlend.result}get oitEnabled(){return this.isFeatureEnabled(2)&&this._hasFloatBufferBlendSupport}commit(e,t){return this._isRendering&&console.warn("Renderer.modify called while rendering"),!!super.commit(e,t,this._plugins.context)&&(this.updateHasFlags(),!0)}rendererAdded(e){this._plugins.add(e)}rendererRemoved(e){this._plugins.remove(e)}get occludedRequiresStencil(){return this.occludedRequiresOccludeeStencil||this.occludedRequiresIntegratedMeshStencil}get occludedRequiresOccludeeStencil(){return this._bindParameters.hasOccludees&&!!(8&this.plugins.renderOccludedFlags)}get occludedRequiresIntegratedMeshStencil(){return this._plugins.produces(0,0)&&this._plugins.produces(0,10)}updateHasFlags(){const has=this._pluginsHas;has.occludedHudElements=this._plugins.produces(0,15),has.hudElements=has.occludedHudElements||this._plugins.produces(0,...fe),has.water=this._plugins.produces(2,21),this._bindParameters.hasOccludees=this._plugins.hasOccludees,this._requestRender()}updateAnimation(e,t){this._animationTimer??=new V(e.camera,t),this._animationTimer.advance(e.camera,t,this._animationTimeDilation);const r=this._hasAnimations;return this._hasAnimations=this._plugins.updateAnimation(this._animationTimer),this._hasAnimations=this._nodes.updateAnimation(this._animationTimer)||this._hasAnimations,this._hasAnimations!==r&&(this._gpuTimerHandle=r?s(this._gpuTimerHandle):this.performanceInfo.enableGPUPerformanceInfo()),this._hasAnimations}get animationTimestep(){return this._animationTimestep.value}get _animationTimeDilation(){return this._animationTimestep.timeDilation}resetAnimation(){this._animationTimestep.clear()}tick(){this.fboCache.clean()}render(e,t,r,s=!1){try{return this._isRendering=!0,this._render(e,t,r,s)}catch(i){console.error(`Exception during rendering: ${i}`)}finally{this._isRendering=!1}return new re(this._pluginInput.get(x.FINAL),null)}_render(e,t,r,s){const i=0===r;this.performanceInfo.startFrame(),this.fboCache.frameStart(),this.fboCache.interactive=i,this._disposeBindBuffers();const{camera:n,contentCamera:a,mode:h,alignPixelEnabled:o}=e;this._state.value=h,this._renderContext.time=t,this._renderContext.output=0,this._bindParameters.hasEmission=this.hasEmitters,this._bindParameters.oitPass=0,this._bindParameters.alignPixelEnabled=o,this._bindParameters.decorations=!s,this._bindParameters.mainDepth=null;const d=!s||!this._sliceHelper.isDecoration;this._bindParameters.slicePlane=d?this._sliceHelper.plane:null,this._bindParameters.viewshedEnabled=this._nodes.produces(S.VIEWSHED),this._bindParameters.cutFillEnabled=this._nodes.produces(S.CUTFILL_DEPTH),this._renderOverlay(),n.setGLViewport(this._rctx);const _=this._framebuffer,l=_.initialize(n.fullWidth,n.fullHeight,this._backgroundColor,this._bindParameters.hasEmission);this.hasReflections?(l?.setName("last frame color"),this._bindParameters.ssr.lastFrameColor=l):l?.release(),this._ensureBindParametersCamera(n,a),this._plugins.sortTestsTransparentOrderedSlots(be),this._plugins.prepareRender(),this._bindParameters.shadowHighlightsVisible=this._needsShadowHighlight&&!s;const u=this._plugins.produces(0,...le);this._precompilePrepasses(),this.performanceInfo.advance(ie.PREPARE);const p=this._computeShadowDepthRange(n);this._renderShadowMap(n,this._bindParameters.lighting.mainLight.direction,p),this._pluginInput.set("normals",this._renderNormals()),this._renderRemainingGeometryDepth(),this._renderShadowAccumulation(p,n,a,!i),this._oitCallouts=u&&this.oitEnabled,this._ensureBindParametersSSR(t),this._precompileShaders(u),this._renderContext.output=0,_.bind(),this._bindParameters.mainDepth=_.depth.attachment,this._renderOpaque(),this._renderTransparent(u),this._shadowMap.disposeMainBuffer(),this._pluginInput.set(S.FOCUSAREA,this._renderFocusAreaGeometry()),this._pluginInput.set(S.CUTFILL_DEPTH,this._renderCutFillDepth()),_.update(e=>this._renderNodes(S.TRANSPARENT_ENVIRONMENT,e)),_.update(e=>this._renderNodes(S.VIEWSHED,e)),_.update(e=>this._renderNodes(S.LASERLINES,e)),_.update(e=>this._renderNodes(S.FOCUSAREA_COLOR,e)),this._pluginInput.release(S.FOCUSAREA),this._pluginInput.release(S.CUTFILL_DEPTH),_.update(e=>this._renderNodes(S.OCCLUDED,e)),this._pluginInput.set("highlights",this._renderHighlightPrepass()),this._renderHighlightShadowMap(n,this._bindParameters.lighting.mainLight.direction,p);const c=2===r?this._renderObjectAndLayerIdColor():null;_.update(e=>this._renderNodes(x.COMPOSITE,e)),this._shadowMap.disposeBuffers(),_.update(e=>this._renderNodes(S.ANTIALIASING,e));const m=this._hasPhotoshopTerrain||!u?1:2;let f;return this._bindParameters.hasEmission=!1,this._hasHUDHighlights&&_.update(e=>this._renderHUD(m,e)),_.update(e=>this._renderNodes(S.HIGHLIGHT_COLOR,e)),this._hasHUDHighlights||_.update(e=>this._renderHUD(m,e)),this._bindParameters.hasEmission=this.hasEmitters,_.update(e=>this._renderNodes(S.MAGNIFIER,e)),_.update(e=>this._renderNodes(x.FINAL,e)),i&&this._blit.toFramebuffer(this._rctx,_.color,this._bindParameters),this.onPostRender?.(),this._releaseFBOs(),_.releaseDepth(),this._renderContext.lastFrameCamera.copyFrom(this._bindParameters.camera),this.fboCache.frameEnd(),i||(f=_.color,f.retain(),this._releaseFBOs(),this._disposeOffscreenBuffers()),this.performanceInfo.finishFrame(),new re(f,c)}_precompileShaders(e){++this._plugins.context.techniques.precompiling,this._renderContext.output=0,this._precompileOpaqueGeometry(),this._nodes.precompile(S.OPAQUE_ENVIRONMENT),this._nodes.precompile(S.GAUSSIAN_SPLAT);const t=this._bindParameters;t.terrainDepthTest=t.cullAboveTerrain=this._needsTerrainDepth,this._renderContext.output=1,this._plugins.precompile(...ue),this._needsTerrainDepth&&(this._precompileOpaqueGeometry(),this._precompileTransparentGeometry()),this._renderContext.output=0,this._plugins.precompile(...ue),e&&(this._precompileTransparentGeometry(),this._hasPhotoshopTerrain&&(t.cullAboveTerrain=!1,this._precompileTransparentGeometry(),t.cullAboveTerrain=this._needsTerrainDepth)),this._nodes.precompile(S.FOCUSAREA),this._needsHUDVisibility&&this._plugins.precompile(13),this._oitCallouts||this._plugins.precompile(17),this._precompileHUD(0),t.terrainDepthTest=t.cullAboveTerrain=!1,this._nodes.precompile(S.VIEWSHED,S.CUTFILL_DEPTH,S.CUTFILL_COLOR,S.LASERLINES,S.FOCUSAREA_COLOR,S.OCCLUDED,S.ANTIALIASING,S.HIGHLIGHT_COLOR),t.highlightMixTexture=t.highlights.length>1?this._rctx.emptyTexture:null,t.hasEmission=!1,this._precompileHUD(1),this.oitEnabled&&this._precompileHUD(0),t.hasEmission=this.hasEmitters,this._hasHighlights&&(t.highlights.forEach((e,r)=>{t.highlightLevel=r,this._precompileAllGeometry(8)}),t.highlightLevel=null),t.highlightMixTexture=null,this._nodes.precompile(x.COMPOSITE,S.MAGNIFIER),this._shadowAccumulator.precompile(),this._plugins.precompile(9),--this._plugins.context.techniques.precompiling}_renderFocusAreaGeometry(){const e=this._nodes.produce(S.FOCUSAREA,this._pluginInput);return e&&this.performanceInfo.advance(ie.FOCUS_AREA_MASK),e}_renderObjectAndLayerIdColor(){if(!this._nodes.produces("olid"))return null;const e=this._renderContext.output;++this._techniques.precompiling;const{width:t,height:r}=this._framebuffer.size;let s=this.fboCache.acquire(t,r,"olid");return s.acquireDepth(14),s=this._nodes.render(s,this._pluginInput),--this._techniques.precompiling,this.performanceInfo.advance(ie.OBJECT_AND_LAYER_ID_COLOR),this._renderContext.output=e,s}finish(e){this._hasAnimations||this._animationTimestep.clear();const t=this.performanceInfo.gpuSamplingEnabled,r=0===e;if(r||t){const e=r?this.performanceInfo.elapsedTime:0;let s=0;t?s=this.performanceInfo.totalGPUTimeSampler.last:this._rctx.gl.finish();const i=Math.max(e,s);this._animationTimestep.frame(i,r)}}readMainDepth(e,t){const{mainDepth:r,camera:s}=this._bindParameters;if(!r)return;const i=this.fboCache.acquire(this._framebuffer.size.width,this._framebuffer.size.height,"linear depth");this._rctx.bindFramebuffer(i.fbo),s.setGLViewport(this._rctx),this._rctx.setScissorRect(e[0],e[1],e[2],e[3]),this._rctx.setScissorTestEnabled(!0),this._rctx.clearFramebuffer(T),this._compositingHelper.blitDepthToLinearDepth(this._bindParameters,r),this._rctx.setScissorTestEnabled(!1),this._rctx.setScissorRect(0,0,this._rctx.gl.canvas.width,this._rctx.gl.canvas.width),i.fbo?.readPixels(e[0],e[1],e[2],e[3],6408,ne.UNSIGNED_BYTE,t),i.release()}readHUDVisibility(e,t,r,s,i){this._bindParameters.hudVisibility?.fbo?.readPixels(e,t,r,s,6408,ne.UNSIGNED_BYTE,i)}readAccumulatedShadow(e){return this._shadowAccumulator.readAccumulatedShadow(e[0],e[1])}_renderEdges(e){const t=this._edgeView;if(!t?.shouldRender())return;const{width:r,height:s}=this._framebuffer.size,i=this.fboCache.acquire(r,s,"edges"),n=this._bindParameters.geometryDepth,a=()=>t.render(this._bindParameters,e);this._renderToTargets(a,i,n??this._framebuffer.depth,T),this._framebuffer.bind(),this._compositingHelper.composite(this._bindParameters,i.getTexture()),i.release(),this.performanceInfo.advance(1===e?ie.OPAQUE_EDGES:ie.TRANSPARENT_EDGES)}_renderOverlay(){this._bindParameters.overlay=this.overlay?.render(this._renderContext.time),this._bindParameters.overlay&&this.performanceInfo.advance(ie.OVERLAY)}_renderShadowMap(e,t,r){if(!this.shadowsEnabled)return;const s=this._shadowMap;s.start(e,t,r,this.isFeatureEnabled(7),this.stage.view.qualitySettings.maximumPixelRatio),this._needsShadowHighlight?(this._renderShadowCascades(5,this._shadowMap),s.copySnapshot(1),this._renderShadowCascades(4,this._shadowMap)):this._renderShadowCascades(3),s.finish(),e.setGLViewport(this._rctx),this._ensureBindParametersCamera(e,this._bindParameters.contentCamera),this.performanceInfo.advance(ie.SHADOW_MAP)}_renderHighlightShadowMap(e,t,r){if(!this.shadowsEnabled||!this._needsShadowHighlight)return;const s=this._shadowMap;s.start(e,t,r,this.isFeatureEnabled(7),this.stage.view.qualitySettings.maximumPixelRatio),this._renderShadowCascades(4,this._shadowMap),s.moveSnapshot(0),s.finish(),e.setGLViewport(this._rctx),this._ensureBindParametersCamera(e,this._bindParameters.contentCamera),this.performanceInfo.advance(ie.SHADOW_MAP)}_renderCutFillDepth(){return this._nodes.produce(S.CUTFILL_DEPTH,this._pluginInput)}_precompileShadowCascades(e){0!==this._shadowMap.cascades.length&&this._precompileAllGeometry(e)}_renderShadowCascades(e,t=this._shadowMap){t.bindFbo();for(const r of t.cascades)r.camera.setGLViewport(this._rctx),this._ensureBindParametersCamera(r.camera,r.camera),this.renderAllGeometry(e)}get _needsDepth(){return this._plugins.consumes(1)||this._nodes.requireGeometryDepth()||this.hasReflections||this._needsShadowHighlight||this._shadowAccumulator.active||this._debugNeedsDepth}_renderRemainingGeometryDepth(){const e=this._pluginInput.get("normals");e?(this._pluginInput.set(S.SSAO,this._renderSSAO()),this._needsDepth?(this._rctx.bindFramebuffer(e.fbo),this._rctx.clear(1024),this._renderGeometryWithoutNormals(1),this._bindParameters.depth?.release(),this._bindParameters.depth=e.obtainDepthTexture(),this.performanceInfo.advance(ie.DEPTH)):(e.detachDepth(),this._bindParameters.depth=a(this._bindParameters.depth)),this.hasSSAO&&this._pluginInput.release("normals")):this._renderAllGeometryDepth()}_renderAllGeometryDepth(){if(this._bindParameters.depth=a(this._bindParameters.depth),!this._needsDepth)return;const{width:e,height:t}=this._framebuffer.size,r=this.fboCache.acquire(e,t,"geometry depth",14);this._rctx.bindFramebuffer(r.fbo),this._rctx.clear(1280),this.renderAllGeometry(1),this._bindParameters.depth=r.obtainDepthTexture(),r.release(),this.performanceInfo.advance(ie.DEPTH)}_renderTerrainDepth(){if(this._bindParameters.terrainDepth=a(this._bindParameters.terrainDepth),this._bindParameters.terrainDepthTest=this._bindParameters.cullAboveTerrain=this._needsTerrainDepth,!this._needsTerrainDepth)return;const e=this._renderContext.output;this._renderContext.output=1;const{width:t,height:r}=this._framebuffer.size,s=this.fboCache.acquire(t,r,"terrain depth",14);this._rctx.bindFramebuffer(s.fbo),this._rctx.clear(1280),this._renderTransparentGround(),this._bindParameters.terrainDepth=s.obtainDepthTexture(),s.release(),this._renderContext.output=e}_renderGeometryDepth(){if(this._bindParameters.geometryDepth=a(this._bindParameters.geometryDepth),!this._needsTerrainDepth)return;const e=this._renderContext.output,{width:t,height:r}=this._framebuffer.size,s=this.fboCache.acquire(t,r,"geometry depth",14);this._rctx.bindFramebuffer(s.fbo),this._rctx.clear(1280),this._renderOpaqueAndTransparentGeometry(1),this._renderContext.output=e,this._bindParameters.geometryDepth=s.obtainDepthTexture(),s.release()}get _needsShadowDepthRange(){return this._shadowMap.enabled||this._shadowAccumulator.active}_computeShadowDepthRange(e){if(!this._needsShadowDepthRange)return k.Zero;const t=z(e,this._plugins.plugins,this.stage.layers,0);return t.union(this._plugins.queryDepthRange(e)),t.near=Math.max(e.near,t.near),t.far=Math.min(e.far,t.far),t}updateSceneDepthRange(e){if(!this.stage.view.state.isGlobal)return void(this.sceneDepthRange.value=k.Infinite);if((this.stage.view.renderCoordsHelper?.getAltitude(e.eye)??0)<R)return void(this.sceneDepthRange.value=k.Infinite);const t=e.clone();t.near=I,t.far=1e10;const r=z(t,this._plugins.plugins,this.stage.layers,1);r.union(this._plugins.queryDepthRange(t)),this.sceneDepthRange.value.equals(r)||(this.sceneDepthRange.value=r)}get _normalsRequired(){const e=this._nodes.require("normals",...A,S.VIEWSHED,S.LASERLINES);return(this.hasSSAO?1:0)+e}_precompilePrepasses(){this._normalsRequired&&this._precompileAllGeometry(2),this._needsDepth&&this._precompileAllGeometry(1),this.shadowsEnabled&&(this._needsShadowHighlight?(this._precompileShadowCascades(4),this._precompileShadowCascades(5)):this._precompileShadowCascades(3)),this._shadowAccumulator.active&&this._precompileAllGeometry(3)}_renderNormals(){const e=this._normalsRequired;if(0===e)return;const{width:t,height:r}=this._framebuffer.size,s=this.fboCache.acquire(t,r,"normals",5);s.acquireDepth(14),this._rctx.bindFramebuffer(s.fbo),this._rctx.clearFramebuffer(T,!0,!0),this._renderContext.output=2,this._plugins.render(...pe);const i=this._nodes.optional("normals",...A,S.VIEWSHED);return s.retain(e+i-1),this.performanceInfo.advance(ie.NORMALS),s}_renderSSAO(){const e=this._pluginInput.get("normals");if(this.hasSSAO&&e)return this._bindParameters.ssao=this._nodes.produce(S.SSAO,this._pluginInput),this._bindParameters.ssao&&this.performanceInfo.advance(ie.SSAO),this._bindParameters.ssao}_precompileAllGeometry(e){const t=this._renderContext.output;this._renderContext.output=e,this._precompileOpaqueGeometry(),this._precompileTransparentGeometry(),this._plugins.precompile(...ue),this._renderContext.output=t}renderAllGeometry(e){this._renderContext.output=e,this._renderOpaqueAndTransparentGeometry(e),this._renderTransparentGround()}precompileSlots(e,...t){for(const r of t)this._bindParameters.slot=r,e.precompile(this._renderContext)}precompileOccludedSlots(e,t){for(const r of t)this._renderContext.renderOccludedMask=r,this.precompileSlots(e,...me);this._renderContext.renderOccludedMask=Y}renderSlots(e,...t){for(const r of t)this._bindParameters.slot=r,e.forAll(e=>{const t=e.acquireTechniques(this._renderContext);t&&e.render(this._renderContext,t)})}renderOccludedSlots(e,t){this._renderContext.renderOccludedMask=t,this.plugins.renderOccludedFlags>1&&this._plugins.render(10),this.renderSlots(e,...me),this._renderContext.renderOccludedMask=Y}renderHUD(e){this._bindParameters.hudRenderStyle=e,this._plugins.render(...Pe[e])}_renderHUDElements(e){this._bindParameters.hudRenderStyle=e,this._plugins.render(18),this.renderHUD(e),this._bindParameters.hudRenderStyle=e,this._plugins.render(16)}precompileViewshedShadowMap(){this._precompileAllGeometry(6)}precompileCutFill(){const e=7,t=this._renderContext.output;this._renderContext.output=e,this._plugins.precompile(0,1,...ue),this._renderContext.output=t}renderViewshedShadowMap(e){const{camera:t,contentCamera:r}=this._bindParameters,s=this._renderContext.output;e.setGLViewport(this._rctx),this._ensureBindParametersCamera(e,e),this.renderAllGeometry(6),this._ensureBindParametersCamera(t,r),this._bindParameters.camera.setGLViewport(this._rctx),this._renderContext.output=s}renderCutFillReferenceDepth(e){const{camera:t,contentCamera:r}=this._bindParameters,s=this._renderContext.output;e.setGLViewport(this._rctx),this._ensureBindParametersCamera(e,e),this._renderContext.output=7,this._plugins.render(0,1,...ue),this._ensureBindParametersCamera(t,r),t.setGLViewport(this._rctx),this._renderContext.output=s}_renderOpaqueAndTransparentGeometry(e){this._renderContext.output=e,this._renderOpaqueGeometry(),this._renderTransparentGeometry()}_renderGeometryWithoutNormals(e){this._renderContext.output=e,this._plugins.render(...ce)}_precompileOpaqueGeometry(){this._plugins.precompile(..._e),this._nodes.precompile("opaque-color")}_renderOpaqueGeometry(){this._plugins.render(..._e)}_renderTransparentGeometry(){this._plugins.render(...le),this._oitCallouts&&this._plugins.render(17)}get _hasPhotoshopTerrain(){return this._plugins.produces(0,6)}get _needsTerrainDepth(){return this._highQualityTransparency&&this._hasPhotoshopTerrain}_renderPhotoshopTerrain(){if(!this._hasPhotoshopTerrain)return null;const{width:e,height:t}=this._framebuffer.size,r=this.fboCache.acquire(e,t,"transparent terrain"),s=()=>this._plugins.render(6);return this._renderToTargets(s,r,this._framebuffer.depth,T),this.performanceInfo.advance(ie.TRANSPARENT_TERRAIN),r}_renderTransparentGround(){this._plugins.render(...ue)}get _needsHUDVisibility(){return this._plugins.produces(this._renderContext.output,13)}_renderHUDVisibility(){if(!this._needsHUDVisibility)return void(this._bindParameters.hudVisibility=a(this._bindParameters.hudVisibility));const{width:e,height:t}=this._framebuffer.size;let r=this._bindParameters.hudVisibility;r?.fbo?.width===e&&r?.fbo?.height===t||(r?.release(),r=this.fboCache.acquire(e,t,"hud visibility",4),this._bindParameters.hudVisibility=r);const s=this._bindParameters.geometryDepth;r.attachDepth(s||this._framebuffer.depth),this._rctx.bindFramebuffer(r.fbo),this._rctx.clearFramebuffer([0,1,0,1]),this._plugins.render(13),r.detachDepth(),this._framebuffer.bind(),this.performanceInfo.advance(ie.HUD_VISIBILITY)}_renderLineCallouts(e){if(this._bindParameters.hudRenderStyle=e,0===e){const e=()=>this._plugins.render(17),{width:t,height:r}=this._framebuffer.size,s=this.fboCache.acquireDepth(13,t,r,"line callouts");this._renderToTargets(e,this._framebuffer.color,s,void 0,!0,!0),s.release()}else this._plugins.render(17)}_precompileHUD(e){if(this._precompileHUDOutput(e),this._hasHighlights){const t=this._renderContext.output;this._renderContext.output=8,this._precompileHUDOutput(e),this._renderContext.output=t}}_precompileHUDOutput(e){const t=this._bindParameters.hudRenderStyle;this._bindParameters.hudRenderStyle=e,this.oitEnabled&&v(this._renderContext.output)?(this._bindParameters.oitPass=1,this._plugins.precompile(...fe),this._bindParameters.oitPass=2,this._plugins.precompile(...fe),this._bindParameters.oitPass=0):this._plugins.precompile(...fe),this._bindParameters.hudRenderStyle=t}_renderHUD(e,t){if(!this._pluginsHas.hudElements)return t;if(this.oitEnabled){const r=this._renderOIT(1,e);this._rctx.bindFramebuffer(t.fbo),this._compositingHelper.compositePreMultipliedAlpha(this._bindParameters,r.getTexture(),!1),r.release()}else if(this._renderContext.output=0,0===e){const t=()=>this._renderHUDElements(e),{width:r,height:s}=this._framebuffer.size,i=this.fboCache.acquireDepth(13,r,s,"hud");this._renderToTargets(t,this._framebuffer.color,i,void 0,!0,!0),i.release()}else t.acquireDepth(13),this._rctx.bindFramebuffer(t.fbo),this._rctx.clear(256),this._renderHUDElements(e),t.detachDepth();return this.performanceInfo.advance(0===e?ie.HUD_OCCLUDED:ie.HUD),t}get _needsShadowHighlight(){return this.shadowsEnabled&&this._plugins.produces(4,2)}_renderHighlightPrepass(){if(!this._hasHighlights)return;const{fboCache:e,_rctx:t,_bindParameters:r}=this,{width:s,height:i}=this._framebuffer.size,{highlights:n}=r,a=n.length>G?3:1,h=e.acquire(s,i,"highlights",a);h.acquireDepth(14);const o=this._plugins.produces(8,0);return o&&this._framebuffer.color.fbo&&h.fbo&&t.blitFramebuffer(this._framebuffer.color.fbo,h.fbo,1024),t.bindFramebuffer(h.fbo),t.gl.clearBufferuiv(6144,0,[0,0,0,0]),o||t.clear(1024),this._renderContext.output=8,t.bindFramebuffer(h.fbo),L(t,e,s,i,r,()=>this._renderHighlightGeometries()),h.detachDepth(),this.performanceInfo.advance(ie.HIGHLIGHTS),h.retain(this._nodes.require("highlights",...D)+this._nodes.optional("highlights",...D)-1),h}_renderHighlightGeometries(){this._plugins.render(...ge),this._rctx.clear(256),this._renderHUDElements(2)}_renderShadowAccumulation(e,t,r,s){this._shadowAccumulator.updateDepthRange(e),this._shadowAccumulator.accumulating&&this._bindParameters.depth&&this._shadowAccumulator.renderAccumulation(this._bindParameters.depth,t,r,s)&&this.performanceInfo.advance(ie.ACCUMULATED_SHADOWS)}_precompileTransparentGeometry(){this.oitEnabled&&v(this._renderContext.output)?(this._bindParameters.oitPass=1,this._plugins.precompile(...le),this._oitCallouts&&this._plugins.precompile(17),this._bindParameters.oitPass=2,this._plugins.precompile(...le),this._oitCallouts&&this._plugins.precompile(17),this._bindParameters.oitPass=0):this._plugins.precompile(...le)}_renderOIT(e,t=2){const r=1===e,{width:s,height:i}=this._framebuffer.size,n=r?()=>this._renderHUDElements(t):()=>this._renderTransparentGeometry(),h=this._bindParameters,o=this._renderContext.output;this._renderContext.output=0,h.oitPass=1;const d=r?"oit hud":"oit",_=this.fboCache.acquire(s,i,d,8),l=this._bindParameters.hasEmission&&(0===e||1!==t);l&&_.acquireColor(ae,8,"oit emissive");const u=l?he:ae;_.acquireColor(u,7,"oit alpha"),r||_.attachDepth(this._framebuffer.depth),this._rctx.bindFramebuffer(_.fbo),this._rctx.clearFramebuffer([0,0,0,1]),l&&this._rctx.clearBuffer(1,T),n(),_.detachDepth(),h.oitPass=2;const p=this.fboCache.acquire(s,i,r?"oit hud front":"oit front");l&&p.acquireColor(ae,8,"oit emissive front"),r?p.acquireDepth(13):p.attachDepth(this._framebuffer.depth),this._rctx.bindFramebuffer(p.fbo),this._rctx.clearFramebuffer(T,r),n(),p.detachDepth();const c=this._pluginsHas.occludedHudElements&&!r;let m;return this._bindParameters.hudOcclusion=a(this._bindParameters.hudOcclusion),h.oitPass=0,r?(m=this.fboCache.acquire(s,i,"oit hud composite"),this._rctx.bindFramebuffer(m.fbo),this._rctx.setClearColor(0,0,0,1e-13),this._rctx.clear(16384)):(c&&(this._framebuffer.color.acquireColor(u,0,"hud occlusion"),this._rctx.clearBuffer(u-oe,T)),this._framebuffer.bind()),this._oitBlend??=new U(this._techniques),this._oitBlend.blend(this._rctx,_,p,h,l,c,e),m?.detachDepth(),r||(this._rctx.bindFramebuffer(p.fbo),this._framebuffer.bind(),c&&(this._bindParameters.hudOcclusion=this._framebuffer.color.obtainAttachment(u))),p.release(),_.release(),this._renderContext.output=o,m}_renderOpaque(){const e=this.plugins.produces(0,..._e);if(e){this._plugins.render(0,1);const e=this._framebuffer;e.update(e=>this._renderNodes(S.CUTFILL_COLOR,e)),e.update(e=>this._renderNodes(S.OPAQUE_TERRAIN,e)),e.bind(),this._plugins.render(2,3)}const t=this._framebuffer;this._renderTerrainDepth(),t.update(t=>this._renderNodes(x.OPAQUE,t,e)),this.fboCache.debugCallback?.(x.OPAQUE,t.color.fbo),t.update(e=>this._renderNodes(S.OPAQUE_ENVIRONMENT,e)),this.fboCache.debugCallback?.(S.OPAQUE_ENVIRONMENT,t.color.fbo),this._renderEdges(1)}_renderTransparent(e){const t=this._framebuffer;t.bind(),this._renderPlugins(22,ie.VOXEL),t.update(e=>this._renderNodes(S.GAUSSIAN_SPLAT,e)),this.fboCache.debugCallback?.(S.GAUSSIAN_SPLAT,t.color.fbo),this._renderHiddenTransparentEdges(),e&&(this.oitEnabled?this._renderOIT(0):this._renderTransparentGeometry()),t.update(t=>this._renderNodes(x.TRANSPARENT,t,e)),this.fboCache.debugCallback?.(x.TRANSPARENT,t.color.fbo),this._renderGeometryDepth(),this._renderHUDVisibility(),this._needsTerrainDepth||this._oitCallouts||this._plugins.render(17),this._renderEdges(0);const r=this._renderPhotoshopTerrain(),s=r?.getTexture();s&&(this._bindParameters.hudVisibility&&(this._needsTerrainDepth?this._renderLineCallouts(0):(this._rctx.bindFramebuffer(this._bindParameters.hudVisibility?.fbo),this._compositingHelper.compositeHUD(this._bindParameters,s))),this._renderHUD(0,t.color)),this._bindParameters.cullAboveTerrain=!1,s&&(t.bind(),this._compositingHelper.compositePreMultipliedAlpha(this._bindParameters,s),r?.release(),this._needsTerrainDepth&&(this._renderEdges(1),e&&(this.oitEnabled?this._renderOIT(0):this._renderTransparentGeometry(),this.performanceInfo.advance(ie.TRANSPARENT)),this._renderEdges(0))),this._bindParameters.ssao=a(this._bindParameters.ssao),this._needsTerrainDepth&&this._renderLineCallouts(1),this._bindParameters.terrainDepthTest=!1,this._renderTransparentEnvironment()}_renderTransparentEnvironment(){this._shadowAccumulator.render(this._bindParameters),this.performanceInfo.advance(ie.APPLY_ACCUMULATED_SHADOWS),this._framebuffer.bind(),this._plugins.render(9),this.performanceInfo.advance(ie.TRANSPARENT_MATERIAL_WITHOUT_DEPTH)}_renderPlugins(e,t){this._plugins.produces(this._renderContext.output,e)&&(this._plugins.render(e),this.performanceInfo.advance(t))}_renderNodes(e,t,r=!1){const s=t.name;if(t.setName(e),this._pluginInput.set(e,t),!this._nodes.produces(e))return r&&this.performanceInfo.advance(e),t;this._fboCache.debugCallback?.(s,t.fbo);const i=this._nodes.render(t,this._pluginInput,this._releaseNodeInputs);return this.performanceInfo.advance(e),i}_ensureBindParametersCamera(e,t){this._bindParameters.camera=e,this._bindParameters.contentCamera=t}_ensureBindParametersSSR(e){if(this._bindParameters.ssr.lastFrameColor){null==this._ssrEnableTime&&(this._ssrEnableTime=e),this._renderContext.lastFrameCamera.equals(this._bindParameters.camera)?this._reprojectionMatrix=b:(f(Te,this._bindParameters.camera.viewMatrix),f(we,this._bindParameters.camera.projectionMatrix),g(Ee,Te,we),g(Ee,this._renderContext.lastFrameCamera.viewMatrix,Ee),g(Ee,this._renderContext.lastFrameCamera.projectionMatrix,Ee),this._reprojectionMatrix=Ee);const t=this.stage.view.qualitySettings.fadeDuration;this._bindParameters.ssr.fadeFactor=t>0?Math.min(t,e-this._ssrEnableTime)/t:1,this._bindParameters.ssr.fadeFactor<1&&this._requestRender()}else this._reprojectionMatrix=b,this._ssrEnableTime=null}addRenderNode(e){this._nodes.add(e),this._requestRender()}removeRenderNode(e){this._nodes.remove(e),this._requestRender()}updateLighting(e,t,r,s){this._bindParameters.updateLighting(e,t,r,s),this._requestRender(1)}get usedMemory(){return{fbos:this.fboCache.usedMemory,plugins:this._plugins.usedMemory,edges:this.edgeView?.usedMemory??0}}_renderToTargets(e,t,r,s,i=!1,n=!1){t.attachDepth(r),this._rctx.bindFramebuffer(t.fbo),this._rctx.clearFramebuffer(s,i,n),e(),t.detachDepth()}get test(){}};e([p({readOnly:!0})],de.prototype,"highResolutionAtmosphere",null),e([p()],de.prototype,"_edgeView",void 0),e([p()],de.prototype,"updating",null),de=e([c("esri.views.3d.webgl-engine.lib.Renderer")],de);const _e=[0,1,2,3],le=[7,8,4,5],ue=[6,7,8],pe=[0,1,2,4,...ue],ce=[3,5],me=[2,4,9],fe=[18,14,16,15],ge=[4,5,2,3,0,1,...ue],be=[4,9,5,12],Pe={0:[15],1:[14],2:[15,14],3:[15,14]},Ce=["normals","highlights"],we=P(),Te=P(),Ee=P();function xe(e){return t=>e.immediate.schedule(t)}export{de as Renderer};
|
|
2
|
+
import{__decorate as e}from"tslib";import{update as t}from"../../../../core/arrayUtils.js";import{createTask as s}from"../../../../core/asyncUtils.js";import"../../../../core/has.js";import{removeMaybe as r,abortMaybe as i,destroyMaybe as n,releaseMaybe as a}from"../../../../core/maybe.js";import{throwIfAborted as h}from"../../../../core/promiseUtils.js";import{watch as o,syncAndInitial as d,initial as _,sync as l}from"../../../../core/reactiveUtils.js";import{signal as u}from"../../../../core/signal.js";import{property as p,subclass as m}from"../../../../core/accessorSupport/decorators.js";import{equals as c,invert as f,multiply as g}from"../../../../core/libs/gl-matrix-2/math/mat4.js";import{IDENTITY as b,create as P}from"../../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{set as C}from"../../../../core/libs/gl-matrix-2/math/vec4.js";import{fromValues as w,ZEROS as E}from"../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{pruneIndexArrays as T}from"../../../../geometry/support/Indices.js";import{RenderNodeOutput as x,InternalRenderCategory as A,AllRenderNodeOutputs as S,AllInternalRenderNodeOutputs as D}from"../../webgl.js";import{innerAtmosphereFadeStart as R}from"../../environment/atmosphereUtils.js";import{minNearDistanceInMeters as I}from"../../state/NearFarHeuristic.js";import{debugFlags as y}from"../../support/debugFlags.js";import{FBOCache as H}from"../core/FBOCache.js";import{RenderPassManager as O}from"../core/renderPasses/RenderPassManager.js";import{isColor as v}from"../core/shaderLibrary/ShaderOutput.js";import{distanceFadeEnd as F}from"../core/shaderLibrary/shading/ScreenSpaceConstants.js";import{RenderNodes as M}from"../effects/RenderNodes.js";import{RenderPluginManager as N}from"../effects/RenderPluginManager.js";import{Blit as q}from"../effects/blit/Blit.js";import{maxHighlightsPerChannel as G,renderHighlightBuffer as L}from"../effects/highlight/Highlight.js";import{OITBlend as U}from"../effects/transparency/OITBlend.js";import{AnimationTimer as V}from"./AnimationTimer.js";import{AnimationTimeStep as B}from"./AnimationTimeStep.js";import{BoundingInfo as j}from"./BoundingInfo.js";import{Compositor as k}from"./Compositor.js";import{DepthRange as z}from"./DepthRange.js";import{depthRangeFromScene as W}from"./depthRangeUtils.js";import{MainFramebuffer as Q}from"./MainFramebuffer.js";import{RenderContext as Y,defaultRenderOccludedMask as J}from"./RenderContext.js";import{RendererBase as K}from"./RendererBase.js";import{setupFeatureDefaults as X}from"./RenderFeature.js";import{RenderPluginInput as Z}from"./RenderPluginInput.js";import{ShadowAccumulator as $}from"./ShadowAccumulator.js";import{ShadowMap as ee}from"./ShadowMap.js";import te from"./SliceHelper.js";import{MergedRenderer as se}from"../materials/renderers/MergedRenderer.js";import{RenderSceneResult as re}from"../parts/renderUtils.js";import{RendererPerformanceInfo as ie,PerformanceCategory as ne}from"../statistics/RendererPerformanceInfo.js";import{PixelType as ae,ColorAttachment1 as he,ColorAttachment2 as oe,ColorAttachment0 as de}from"../../../webgl/enums.js";let _e=class extends K{constructor(e,t,s,r,i){super({stage:e}),this._techniques=s,this._rctx=r,this._requestRender=i,this._pluginsHas={occludedHudElements:!1,hudElements:!1,water:!1},this.renderPassManager=new O,this._isRendering=!1,this._inGlobeView=!1,this._backgroundColor=w(0,0,0,1),this._sliceHelper=new te,this.sceneDepthRange=u(z.Infinite),this._state=u(2),this._hasAnimations=!1,this._animationTimestep=new B,this._loadEdgeViewTask=null,this._edgeViewCallbacks=[],this._reprojectionMatrixVersion=u(0),this._renderHiddenTransparentEdges=()=>{},this._pluginInput=new Z,this._oitCallouts=!1,this._releaseNodeInputs=e=>{for(const t of we)e.some(({name:e})=>e===t)&&this._pluginInput.release(t)},this._debugNeedsDepth=!1,this._fboCache=new H(r),this._compositor=new k(r,s),this._renderStateFeatures=u(X(e.view.qualityProfile)),this._framebuffer=new Q(this.fboCache),this._performanceInfo=new ie(this._rctx),this._shadowMap=new ee(this.fboCache,e.viewingMode),this._blit=new q(s),this._shadowAccumulator=new $(this.fboCache,s,e,e=>{const t=this.shadowsEnabled;this._shadowMap.enabled=!0,this._ensureBindParametersCamera(e.camera,e.contentCamera),this._plugins.prepareRender(),this._shadowMap.enabled=t},(t,s,r)=>{const i=e.view.qualitySettings.maximumPixelRatio;t.shadowMap.start(t.camera,s,r,!0,i),this._renderShadowCascades(3,t.shadowMap),t.shadowMap.finish(),t.camera.setGLViewport(this._rctx),this._ensureBindParametersCamera(t.camera,t.contentCamera)},i),this._renderContext=new Y(this._rctx,this._shadowMap,s),this._nodes=new M(this._renderContext),this._plugins=new N({renderContext:this._renderContext,techniques:s,materials:t,requestRender:i,controller:e,fbos:this.fboCache,isFeatureEnabled:e=>this.isFeatureEnabled(e)}),this._plugins.add(this.renderPassManager),this.addHandles([o(()=>e.view.state.camera,()=>i(),d),o(()=>y.EDGES_SHOW_HIDDEN_TRANSPARENT_EDGES,e=>{this._renderHiddenTransparentEdges=e?()=>this._renderEdges(0):()=>{},i()},_),o(()=>e.view.environment.background?.color,e=>{const t=e?e.toUnitRGBA():E;C(this._backgroundColor,t[0]*t[3],t[1]*t[3],t[2]*t[3],t[3]),i()},d),o(()=>e.view.state.camera.relativeElevation,e=>this._inGlobeView=(e??1/0)>=F,d),o(()=>this._bindParameters.clouds.fadeFactor,()=>{this._bindParameters.fadeLighting(),this._requestRender(2)},l),o(()=>this._bindParameters.clouds.data?.state,()=>i(),l),o(()=>e.view.state.highlights,e=>{this._bindParameters.highlights=e,i()},_)])}destroy(){this._gpuTimerHandle=r(this._gpuTimerHandle),this._nodes.destroy(),this._framebuffer.dispose(),this._shadowMap.dispose(),this._shadowAccumulator.destroy(),this._shadowAccumulator=null,this._loadEdgeViewTask=i(this._loadEdgeViewTask),this._edgeView=n(this._edgeView),this.renderPassManager.dispose(),this._releaseFBOs(),this._disposeOffscreenBuffers(),this._fboCache.destroy(),this._fboCache=null,this._plugins.destroy(),this._plugins=null,this._pluginInput=null,this._oitBlendOrNil=null,this._nodes=null,this._framebuffer=null,this._shadowMap=null,this._renderContext=null,this._performanceInfo=null,j.prune(),se.prune(),T()}get renderContext(){return this._renderContext}get _bindParameters(){return this._renderContext.bind}get _oitBlend(){return this._oitBlendOrNil??=new U(this._techniques),this._oitBlendOrNil}get performanceInfo(){return this._performanceInfo}updateRenderFeatures(e){this._renderStateFeatures.value=X(e),this._requestRender()}isFeatureEnabled(e,t=this._state.value){return this._renderStateFeatures.value.get(t,e)??!1}setFeatureEnabled(e,t,s){this._renderStateFeatures.mutate(r=>r.set(t,e,s)),this._requestRender()}get _highQualityTransparency(){return this.isFeatureEnabled(1)}get hasReflections(){return this._pluginsHas.water&&this.isFeatureEnabled(6)}get _hasHighlights(){return this._plugins.produces(8,2,4,20,14,15,16)}hasHighlight(e){return this._plugins.hasHighlight(e)}get _hasHUDHighlights(){return this._plugins.produces(8,14,15,16)}get hasSSAO(){return this.isFeatureEnabled(5)&&!this._inGlobeView}get hasSMAA(){return this.isFeatureEnabled(0)}get _hasEmission(){return this._plugins.hasEmitters&&this._hasFloatBufferBlendSupport}get highResolutionAtmosphere(){return this.isFeatureEnabled(4)}get fboCache(){return this._fboCache}_releaseFBOs(){this._bindParameters.ssr.lastFrameColor=a(this._bindParameters.ssr.lastFrameColor),this._bindParameters.terrainDepth=a(this._bindParameters.terrainDepth),this._bindParameters.geometryDepth=a(this._bindParameters.geometryDepth),this._bindParameters.hudOcclusion=a(this._bindParameters.hudOcclusion)}_disposeOffscreenBuffers(){this._framebuffer.dispose(),this._disposeBindBuffers()}_disposeBindBuffers(){this._shadowMap.disposeBuffers(),this._bindParameters.depth=a(this._bindParameters.depth),this._bindParameters.hudVisibility=a(this._bindParameters.hudVisibility)}get updating(){return this._loadEdgeViewTask&&!this._loadEdgeViewTask.finished||this._edgeView?.updating||this._shadowAccumulator.readyToRun||this._plugins.updating||!this.isCameraFinal}loadEdgeView(){return this._loadEdgeViewTask||(this._loadEdgeViewTask=s(async e=>{const{EdgeView:t}=await import("./edgeRendering/EdgeView.js");h(e);const s=this._edgeView=new t({rctx:this._rctx,renderSR:this.stage.view.renderSpatialReference,viewingMode:this.stage.view.stage.viewingMode,techniques:this._techniques,setNeedsRender:()=>this._requestRender(),schedule:Ae(this.stage.view.resourceController)});return this.addHandles(o(()=>s.updating,()=>this._requestRender(),l)),this._requestRender(),this._edgeViewCallbacks.forEach(e=>e(s)),this._edgeViewCallbacks.length=0,s})),this._loadEdgeViewTask.promise}withEdgeView(e){this.loadEdgeView(),null==this._edgeView?this._edgeViewCallbacks.push(e):e(this._edgeView)}get edgeView(){return this._edgeView}get isCameraFinal(){return this._reprojectionMatrixVersion.value>=0&&c(this._bindParameters.ssr.reprojectionMatrix,b)}set _reprojectionMatrix(e){t(this._bindParameters.ssr.reprojectionMatrix,e)&&this._reprojectionMatrixVersion.value++}get shadowsEnabled(){return!!this._shadowMap?.enabled}setParameters(e){const{_shadowMap:t,_bindParameters:s}=this;if(void 0!==e.shadowMap&&this._shadowMap.enabled!==e.shadowMap&&(this._shadowMap.enabled=e.shadowMap,this._requestRender()),void 0!==e.shadowMapMaxCascades&&t.maxCascades!==e.shadowMapMaxCascades&&(t.maxCascades=e.shadowMapMaxCascades,this._requestRender()),e.environment){void 0!==e.environment.weather&&(this._bindParameters.weather=e.environment.weather);const t="virtual"!==e.environment.lighting.type;s.enableFillLights!==t&&(s.enableFillLights=t,this._requestRender())}void 0!==e.shadowCast&&this._shadowAccumulator.setOptions(e.shadowCast)}set slice(e){this._sliceHelper.update(e)&&this._requestRender()}get plugins(){return this._plugins}get _hasFloatBufferBlendSupport(){return this._rctx.driverTest.floatBufferBlend.result}get oitEnabled(){return this.isFeatureEnabled(2)&&this._hasFloatBufferBlendSupport}commit(e,t){return this._isRendering&&console.warn("Renderer.modify called while rendering"),!!super.commit(e,t,this._plugins.context)&&(this.updateHasFlags(),!0)}rendererAdded(e){this._plugins.add(e)}rendererRemoved(e){this._plugins.remove(e)}get occludedRequiresStencil(){return this.occludedRequiresOccludeeStencil||this.occludedRequiresIntegratedMeshStencil}get occludedRequiresOccludeeStencil(){return this._bindParameters.hasOccludees&&!!(8&this.plugins.renderOccludedFlags)}get occludedRequiresIntegratedMeshStencil(){return this._plugins.produces(0,0)&&this._plugins.produces(0,10)}updateHasFlags(){const has=this._pluginsHas;has.occludedHudElements=this._plugins.produces(0,15),has.hudElements=has.occludedHudElements||this._plugins.produces(0,...ge),has.water=this._plugins.produces(2,21),this._bindParameters.hasOccludees=this._plugins.hasOccludees,this._requestRender()}updateAnimation(e,t){this._animationTimer??=new V(e.camera,t),this._animationTimer.advance(e.camera,t,this._animationTimeDilation);const s=this._hasAnimations;return this._hasAnimations=this._plugins.updateAnimation(this._animationTimer),this._hasAnimations=this._nodes.updateAnimation(this._animationTimer)||this._hasAnimations,this._hasAnimations!==s&&(this._gpuTimerHandle=s?r(this._gpuTimerHandle):this.performanceInfo.enableGPUPerformanceInfo()),this._hasAnimations}get animationTimestep(){return this._animationTimestep.value}get _animationTimeDilation(){return this._animationTimestep.timeDilation}resetAnimation(){this._animationTimestep.clear()}tick(){this.fboCache.clean()}render(e,t,s,r=!1){try{return this._isRendering=!0,this._render(e,t,s,r)}catch(i){console.error(`Exception during rendering: ${i}`)}finally{this._isRendering=!1}return new re(this._pluginInput.get(x.FINAL),null)}_render(e,t,s,r){const i=0===s;this.performanceInfo.startFrame(),this.fboCache.frameStart(),this.fboCache.interactive=i,this._disposeBindBuffers();const{camera:n,contentCamera:a,mode:h,alignPixelEnabled:o}=e;this._state.value=h,this._renderContext.time=t,this._renderContext.output=0,this._bindParameters.hasEmission=this._hasEmission,this._bindParameters.oitPass=0,this._bindParameters.alignPixelEnabled=o,this._bindParameters.decorations=!r,this._bindParameters.mainDepth=null;const d=!r||!this._sliceHelper.isDecoration;this._bindParameters.slicePlane=d?this._sliceHelper.plane:null,this._bindParameters.viewshedEnabled=this._nodes.produces(A.VIEWSHED),this._bindParameters.cutFillEnabled=this._nodes.produces(A.CUTFILL_DEPTH),this._renderOverlay(),n.setGLViewport(this._rctx);const _=this._framebuffer,l=_.initialize(n.fullWidth,n.fullHeight,this._backgroundColor,this._bindParameters.hasEmission);this.hasReflections?(l?.setName("last frame color"),this._bindParameters.ssr.lastFrameColor=l):l?.release(),this._ensureBindParametersCamera(n,a),this._plugins.sortTestsTransparentOrderedSlots(Pe),this._plugins.prepareRender(),this._bindParameters.shadowHighlightsVisible=this._needsShadowHighlight&&!r;const u=this._plugins.produces(0,...ue);this._precompilePrepasses(),this.performanceInfo.advance(ne.PREPARE);const p=this._computeShadowDepthRange(n);this._renderShadowMap(n,this._bindParameters.lighting.mainLight.direction,p),this._pluginInput.set("normals",this._renderNormals()),this._renderRemainingGeometryDepth(),this._renderShadowAccumulation(p,n,a,!i),this._oitCallouts=u&&this.oitEnabled,this._ensureBindParametersSSR(t),this._precompileShaders(u),this._renderContext.output=0,_.bind(),this._bindParameters.mainDepth=_.depth.attachment,this._renderOpaque(),this._renderTransparent(u),this._shadowMap.disposeMainBuffer(),this._pluginInput.set(A.FOCUSAREA,this._renderFocusAreaGeometry()),this._pluginInput.set(A.CUTFILL_DEPTH,this._renderCutFillDepth()),_.update(e=>this._renderNodes(A.TRANSPARENT_ENVIRONMENT,e)),_.update(e=>this._renderNodes(A.VIEWSHED,e)),_.update(e=>this._renderNodes(A.LASERLINES,e)),_.update(e=>this._renderNodes(A.FOCUSAREA_COLOR,e)),this._pluginInput.release(A.FOCUSAREA),this._pluginInput.release(A.CUTFILL_DEPTH),_.update(e=>this._renderNodes(A.OCCLUDED,e)),this._pluginInput.set("highlights",this._renderHighlightPrepass()),this._renderHighlightShadowMap(n,this._bindParameters.lighting.mainLight.direction,p);const m=2===s?this._renderObjectAndLayerIdColor():null;_.update(e=>this._renderNodes(x.COMPOSITE,e)),this._shadowMap.disposeBuffers(),_.update(e=>this._renderNodes(A.ANTIALIASING,e));const c=this._hasPhotoshopTerrain||!u?1:2;let f;return this._bindParameters.hasEmission=!1,this._hasHUDHighlights&&_.update(e=>this._renderHUD(c,e)),_.update(e=>this._renderNodes(A.HIGHLIGHT_COLOR,e)),this._hasHUDHighlights||_.update(e=>this._renderHUD(c,e)),this._bindParameters.hasEmission=this._hasEmission,_.update(e=>this._renderNodes(A.MAGNIFIER,e)),_.update(e=>this._renderNodes(x.FINAL,e)),i&&this._blit.toFramebuffer(this._rctx,_.color,this._bindParameters),this.onPostRender?.(),this._releaseFBOs(),_.releaseDepth(),this._renderContext.lastFrameCamera.copyFrom(this._bindParameters.camera),this.fboCache.frameEnd(),i||(f=_.color,f.retain(),this._releaseFBOs(),this._disposeOffscreenBuffers()),this.performanceInfo.finishFrame(),new re(f,m)}_precompileShaders(e){++this._plugins.context.techniques.precompiling,this._renderContext.output=0,this._precompileOpaqueGeometry(),this._nodes.precompile(A.OPAQUE_ENVIRONMENT),this._nodes.precompile(A.GAUSSIAN_SPLAT);const t=this._bindParameters;t.terrainDepthTest=t.cullAboveTerrain=this._needsTerrainDepth,this._renderContext.output=1,this._plugins.precompile(...pe),this._needsTerrainDepth&&(this._precompileOpaqueGeometry(),this._precompileTransparentGeometry()),this._renderContext.output=0,this._plugins.precompile(...pe);const s=this._pluginsHas.hudElements&&this.oitEnabled,r=this._pluginsHas.occludedHudElements,i=this._bindParameters.hasEmission;this._oitBlend.precompile(i,r,s),s&&this._oitBlend.precompile(!1,r,s),e&&(this._precompileTransparentGeometry(),this._hasPhotoshopTerrain&&(t.cullAboveTerrain=!1,this._precompileTransparentGeometry(),t.cullAboveTerrain=this._needsTerrainDepth)),this._nodes.precompile(A.FOCUSAREA);const n=this._hasPhotoshopTerrain&&!this._needsTerrainDepth;this._compositor.precompile(this._usesPremultipliedAlphaBlit,!!this._needsEdges,n,i),this._needsHUDVisibility&&this._plugins.precompile(13),this._oitCallouts||this._plugins.precompile(17),this._precompileHUD(0),t.terrainDepthTest=t.cullAboveTerrain=!1,this._nodes.precompile(A.TRANSPARENT_ENVIRONMENT,A.VIEWSHED,A.CUTFILL_DEPTH,A.CUTFILL_COLOR,A.LASERLINES,A.FOCUSAREA_COLOR,A.OCCLUDED,A.ANTIALIASING,A.HIGHLIGHT_COLOR),t.highlightMixTexture=t.highlights.length>1?this._rctx.emptyTexture:null,t.hasEmission=!1,this._precompileHUD(1),this.oitEnabled&&this._precompileHUD(0),t.hasEmission=this._hasEmission,this._hasHighlights&&(t.highlights.forEach((e,s)=>{t.highlightLevel=s,this._precompileAllGeometry(8),this._hasHUDHighlights&&this._plugins.precompile(15,14)}),t.highlightLevel=null,this._nodes.precompile(A.HIGHLIGHT_COLOR)),t.highlightMixTexture=null,this._nodes.precompile(x.COMPOSITE,A.MAGNIFIER),this._shadowAccumulator.precompile(),this._plugins.precompile(9),--this._plugins.context.techniques.precompiling}_renderFocusAreaGeometry(){const e=this._nodes.produce(A.FOCUSAREA,this._pluginInput);return e&&this.performanceInfo.advance(ne.FOCUS_AREA_MASK),e}_renderObjectAndLayerIdColor(){if(!this._nodes.produces("olid"))return null;const e=this._renderContext.output;++this._techniques.precompiling;const{width:t,height:s}=this._framebuffer.size;let r=this.fboCache.acquire(t,s,"olid");return r.acquireDepth(14),r=this._nodes.render(r,this._pluginInput),--this._techniques.precompiling,this.performanceInfo.advance(ne.OBJECT_AND_LAYER_ID_COLOR),this._renderContext.output=e,r}finish(e){this._hasAnimations||this._animationTimestep.clear();const t=this.performanceInfo.gpuSamplingEnabled,s=0===e;if(s||t){const e=s?this.performanceInfo.elapsedTime:0;let r=0;t?r=this.performanceInfo.totalGPUTimeSampler.last:this._rctx.gl.finish();const i=Math.max(e,r);this._animationTimestep.frame(i,s)}}readMainDepth(e,t){const{mainDepth:s,camera:r}=this._bindParameters;if(!s)return;const i=this.fboCache.acquire(this._framebuffer.size.width,this._framebuffer.size.height,"linear depth");this._rctx.bindFramebuffer(i.fbo),r.setGLViewport(this._rctx),this._rctx.setScissorRect(e[0],e[1],e[2],e[3]),this._rctx.setScissorTestEnabled(!0),this._rctx.clearFramebuffer(E),this._compositor.blitDepthToLinearDepth(this._bindParameters,s),this._rctx.setScissorTestEnabled(!1),this._rctx.setScissorRect(0,0,this._rctx.gl.canvas.width,this._rctx.gl.canvas.width),i.fbo?.readPixels(e[0],e[1],e[2],e[3],6408,ae.UNSIGNED_BYTE,t),i.release()}readHUDVisibility(e,t,s,r,i){this._bindParameters.hudVisibility?.fbo?.readPixels(e,t,s,r,6408,ae.UNSIGNED_BYTE,i)}readAccumulatedShadow(e){return this._shadowAccumulator.readAccumulatedShadow(e[0],e[1])}get _needsEdges(){return this._edgeView?.shouldRender()?this._edgeView:null}_renderEdges(e){const t=this._needsEdges;if(!t)return;const{width:s,height:r}=this._framebuffer.size,i=this.fboCache.acquire(s,r,"edges"),n=this._bindParameters.geometryDepth,a=()=>t.render(this._bindParameters,e);this._renderToTargets(a,i,n??this._framebuffer.depth,E),this._framebuffer.bind(),this._compositor.composite(this._bindParameters,i.getTexture()),i.release(),this.performanceInfo.advance(1===e?ne.OPAQUE_EDGES:ne.TRANSPARENT_EDGES)}_renderOverlay(){this._bindParameters.overlay=this.overlay?.render(this._renderContext.time),this._bindParameters.overlay&&this.performanceInfo.advance(ne.OVERLAY)}_renderShadowMap(e,t,s){if(!this.shadowsEnabled)return;const r=this._shadowMap;r.start(e,t,s,this.isFeatureEnabled(7),this.stage.view.qualitySettings.maximumPixelRatio),this._needsShadowHighlight?(this._renderShadowCascades(5,this._shadowMap),r.copySnapshot(1),this._renderShadowCascades(4,this._shadowMap)):this._renderShadowCascades(3),r.finish(),e.setGLViewport(this._rctx),this._ensureBindParametersCamera(e,this._bindParameters.contentCamera),this.performanceInfo.advance(ne.SHADOW_MAP)}_renderHighlightShadowMap(e,t,s){if(!this.shadowsEnabled||!this._needsShadowHighlight)return;const r=this._shadowMap;r.start(e,t,s,this.isFeatureEnabled(7),this.stage.view.qualitySettings.maximumPixelRatio),this._renderShadowCascades(4,this._shadowMap),r.moveSnapshot(0),r.finish(),e.setGLViewport(this._rctx),this._ensureBindParametersCamera(e,this._bindParameters.contentCamera),this.performanceInfo.advance(ne.SHADOW_MAP)}_renderCutFillDepth(){return this._nodes.produce(A.CUTFILL_DEPTH,this._pluginInput)}_precompileShadowCascades(e){0!==this._shadowMap.cascades.length&&this._precompileAllGeometry(e)}_renderShadowCascades(e,t=this._shadowMap){t.bindFbo();for(const s of t.cascades)s.camera.setGLViewport(this._rctx),this._ensureBindParametersCamera(s.camera,s.camera),this.renderAllGeometry(e)}get _needsDepth(){return this._plugins.consumes(1)||this._nodes.requireGeometryDepth()||this.hasReflections||this._needsShadowHighlight||this._shadowAccumulator.active||this._debugNeedsDepth}get _usesPremultipliedAlphaBlit(){return this._pluginsHas.hudElements&&this.oitEnabled||this._hasPhotoshopTerrain}_renderRemainingGeometryDepth(){const e=this._pluginInput.get("normals");e?(this._pluginInput.set(A.SSAO,this._renderSSAO()),this._needsDepth?(this._rctx.bindFramebuffer(e.fbo),this._rctx.clear(1024),this._renderGeometryWithoutNormals(1),this._bindParameters.depth?.release(),this._bindParameters.depth=e.obtainDepthTexture(),this.performanceInfo.advance(ne.DEPTH)):(e.detachDepth(),this._bindParameters.depth=a(this._bindParameters.depth)),this.hasSSAO&&this._pluginInput.release("normals")):this._renderAllGeometryDepth()}_renderAllGeometryDepth(){if(this._bindParameters.depth=a(this._bindParameters.depth),!this._needsDepth)return;const{width:e,height:t}=this._framebuffer.size,s=this.fboCache.acquire(e,t,"geometry depth",14);this._rctx.bindFramebuffer(s.fbo),this._rctx.clear(1280),this.renderAllGeometry(1),this._bindParameters.depth=s.obtainDepthTexture(),s.release(),this.performanceInfo.advance(ne.DEPTH)}_renderTerrainDepth(){if(this._bindParameters.terrainDepth=a(this._bindParameters.terrainDepth),this._bindParameters.terrainDepthTest=this._bindParameters.cullAboveTerrain=this._needsTerrainDepth,!this._needsTerrainDepth)return;const e=this._renderContext.output;this._renderContext.output=1;const{width:t,height:s}=this._framebuffer.size,r=this.fboCache.acquire(t,s,"terrain depth",14);this._rctx.bindFramebuffer(r.fbo),this._rctx.clear(1280),this._renderTransparentGround(),this._bindParameters.terrainDepth=r.obtainDepthTexture(),r.release(),this._renderContext.output=e}_renderGeometryDepth(){if(this._bindParameters.geometryDepth=a(this._bindParameters.geometryDepth),!this._needsTerrainDepth)return;const e=this._renderContext.output,{width:t,height:s}=this._framebuffer.size,r=this.fboCache.acquire(t,s,"geometry depth",14);this._rctx.bindFramebuffer(r.fbo),this._rctx.clear(1280),this._renderOpaqueAndTransparentGeometry(1),this._renderContext.output=e,this._bindParameters.geometryDepth=r.obtainDepthTexture(),r.release()}get _needsShadowDepthRange(){return this._shadowMap.enabled||this._shadowAccumulator.active}_computeShadowDepthRange(e){if(!this._needsShadowDepthRange)return z.Zero;const t=W(e,this._plugins.plugins,this.stage.layers,0);return t.union(this._plugins.queryDepthRange(e)),t.near=Math.max(e.near,t.near),t.far=Math.min(e.far,t.far),t}updateSceneDepthRange(e){if(!this.stage.view.state.isGlobal)return void(this.sceneDepthRange.value=z.Infinite);if((this.stage.view.renderCoordsHelper?.getAltitude(e.eye)??0)<R)return void(this.sceneDepthRange.value=z.Infinite);const t=e.clone();t.near=I,t.far=1e10;const s=W(t,this._plugins.plugins,this.stage.layers,1);s.union(this._plugins.queryDepthRange(t)),this.sceneDepthRange.value.equals(s)||(this.sceneDepthRange.value=s)}get _normalsRequired(){const e=this._nodes.require("normals",...S,A.VIEWSHED,A.LASERLINES);return(this.hasSSAO?1:0)+e}_precompilePrepasses(){this._normalsRequired&&this._precompileAllGeometry(2),this._needsDepth&&this._precompileAllGeometry(1),this.shadowsEnabled&&(this._needsShadowHighlight?(this._precompileShadowCascades(4),this._precompileShadowCascades(5)):this._precompileShadowCascades(3)),this._shadowAccumulator.active&&this._precompileAllGeometry(3),this.hasSSAO&&this._normalsRequired&&this._nodes.precompile(A.SSAO)}_renderNormals(){const e=this._normalsRequired;if(0===e)return;const{width:t,height:s}=this._framebuffer.size,r=this.fboCache.acquire(t,s,"normals",5);r.acquireDepth(14),this._rctx.bindFramebuffer(r.fbo),this._rctx.clearFramebuffer(E,!0,!0),this._renderContext.output=2,this._plugins.render(...me);const i=this._nodes.optional("normals",...S,A.VIEWSHED);return r.retain(e+i-1),this.performanceInfo.advance(ne.NORMALS),r}_renderSSAO(){const e=this._pluginInput.get("normals");if(this.hasSSAO&&e)return this._bindParameters.ssao=this._nodes.produce(A.SSAO,this._pluginInput),this._bindParameters.ssao&&this.performanceInfo.advance(ne.SSAO),this._bindParameters.ssao}_precompileAllGeometry(e){const t=this._renderContext.output;this._renderContext.output=e,this._precompileOpaqueGeometry(),this._precompileTransparentGeometry(),this._plugins.precompile(...pe),this._renderContext.output=t}renderAllGeometry(e){this._renderContext.output=e,this._renderOpaqueAndTransparentGeometry(e),this._renderTransparentGround()}precompileSlots(e,...t){for(const s of t)this._bindParameters.slot=s,e.precompile(this._renderContext)}precompileOccludedSlots(e,t){for(const s of t)this._renderContext.renderOccludedMask=s,this.precompileSlots(e,...fe);this._renderContext.renderOccludedMask=J}renderSlots(e,...t){for(const s of t)this._bindParameters.slot=s,e.forAll(e=>{const t=e.acquireTechniques(this._renderContext);t&&e.render(this._renderContext,t)})}renderOccludedSlots(e,t){this._renderContext.renderOccludedMask=t,this.plugins.renderOccludedFlags>1&&this._plugins.render(10),this.renderSlots(e,...fe),this._renderContext.renderOccludedMask=J}renderHUD(e){this._bindParameters.hudRenderStyle=e,this._plugins.render(...Ce[e])}_renderHUDElements(e){this._bindParameters.hudRenderStyle=e,this._plugins.render(18),this.renderHUD(e),this._bindParameters.hudRenderStyle=e,this._plugins.render(16)}precompileViewshedShadowMap(){this._precompileAllGeometry(6)}precompileCutFill(){const e=7,t=this._renderContext.output;this._renderContext.output=e,this._plugins.precompile(0,1,...pe),this._renderContext.output=t}renderViewshedShadowMap(e){const{camera:t,contentCamera:s}=this._bindParameters,r=this._renderContext.output;e.setGLViewport(this._rctx),this._ensureBindParametersCamera(e,e),this.renderAllGeometry(6),this._ensureBindParametersCamera(t,s),this._bindParameters.camera.setGLViewport(this._rctx),this._renderContext.output=r}renderCutFillReferenceDepth(e){const{camera:t,contentCamera:s}=this._bindParameters,r=this._renderContext.output;e.setGLViewport(this._rctx),this._ensureBindParametersCamera(e,e),this._renderContext.output=7,this._plugins.render(0,1,...pe),this._ensureBindParametersCamera(t,s),t.setGLViewport(this._rctx),this._renderContext.output=r}_renderOpaqueAndTransparentGeometry(e){this._renderContext.output=e,this._renderOpaqueGeometry(),this._renderTransparentGeometry()}_renderGeometryWithoutNormals(e){this._renderContext.output=e,this._plugins.render(...ce)}_precompileOpaqueGeometry(){this._plugins.precompile(...le),this._nodes.precompile("opaque-color")}_renderOpaqueGeometry(){this._plugins.render(...le)}_renderTransparentGeometry(){this._plugins.render(...ue),this._oitCallouts&&this._plugins.render(17)}get _hasPhotoshopTerrain(){return this._plugins.produces(0,6)}get _needsTerrainDepth(){return this._highQualityTransparency&&this._hasPhotoshopTerrain}_renderPhotoshopTerrain(){if(!this._hasPhotoshopTerrain)return null;const{width:e,height:t}=this._framebuffer.size,s=this.fboCache.acquire(e,t,"transparent terrain"),r=()=>this._plugins.render(6);return this._renderToTargets(r,s,this._framebuffer.depth,E),this.performanceInfo.advance(ne.TRANSPARENT_TERRAIN),s}_renderTransparentGround(){this._plugins.render(...pe)}get _needsHUDVisibility(){return this._plugins.produces(this._renderContext.output,13)}_renderHUDVisibility(){if(!this._needsHUDVisibility)return void(this._bindParameters.hudVisibility=a(this._bindParameters.hudVisibility));const{width:e,height:t}=this._framebuffer.size;let s=this._bindParameters.hudVisibility;s?.fbo?.width===e&&s?.fbo?.height===t||(s?.release(),s=this.fboCache.acquire(e,t,"hud visibility",4),this._bindParameters.hudVisibility=s);const r=this._bindParameters.geometryDepth;s.attachDepth(r||this._framebuffer.depth),this._rctx.bindFramebuffer(s.fbo),this._rctx.clearFramebuffer([0,1,0,1]),this._plugins.render(13),s.detachDepth(),this._framebuffer.bind(),this.performanceInfo.advance(ne.HUD_VISIBILITY)}_renderLineCallouts(e){if(this._bindParameters.hudRenderStyle=e,0===e){const e=()=>this._plugins.render(17),{width:t,height:s}=this._framebuffer.size,r=this.fboCache.acquireDepth(13,t,s,"line callouts");this._renderToTargets(e,this._framebuffer.color,r,void 0,!0,!0),r.release()}else this._plugins.render(17)}_precompileHUD(e){if(this._pluginsHas.hudElements&&(this._precompileHUDOutput(e),this._hasHighlights)){const t=this._renderContext.output;this._renderContext.output=8,this._precompileHUDOutput(e),this._renderContext.output=t}}_precompileHUDOutput(e){const t=this._bindParameters.hudRenderStyle;this._bindParameters.hudRenderStyle=e,this.oitEnabled&&v(this._renderContext.output)?(this._bindParameters.oitPass=1,this._plugins.precompile(...ge),this._bindParameters.oitPass=2,this._plugins.precompile(...ge),this._bindParameters.oitPass=0):this._plugins.precompile(...ge),this._bindParameters.hudRenderStyle=t}_renderHUD(e,t){if(!this._pluginsHas.hudElements)return t;if(this.oitEnabled){const s=this._renderOIT(1,e);this._rctx.bindFramebuffer(t.fbo),this._compositor.compositePreMultipliedAlpha(this._bindParameters,s.getTexture(),!1),s.release()}else if(this._renderContext.output=0,0===e){const t=()=>this._renderHUDElements(e),{width:s,height:r}=this._framebuffer.size,i=this.fboCache.acquireDepth(13,s,r,"hud");this._renderToTargets(t,this._framebuffer.color,i,void 0,!0,!0),i.release()}else t.acquireDepth(13),this._rctx.bindFramebuffer(t.fbo),this._rctx.clear(256),this._renderHUDElements(e),t.detachDepth();return this.performanceInfo.advance(0===e?ne.HUD_OCCLUDED:ne.HUD),t}get _needsShadowHighlight(){return this.shadowsEnabled&&this._plugins.produces(4,2)}_renderHighlightPrepass(){if(!this._hasHighlights)return;const{fboCache:e,_rctx:t,_bindParameters:s}=this,{width:r,height:i}=this._framebuffer.size,{highlights:n}=s,a=n.length>G?3:1,h=e.acquire(r,i,"highlights",a);h.acquireDepth(14);const o=this._plugins.produces(8,0);return o&&this._framebuffer.color.fbo&&h.fbo&&t.blitFramebuffer(this._framebuffer.color.fbo,h.fbo,1024),t.bindFramebuffer(h.fbo),t.gl.clearBufferuiv(6144,0,[0,0,0,0]),o||t.clear(1024),this._renderContext.output=8,t.bindFramebuffer(h.fbo),L(t,e,r,i,s,()=>this._renderHighlightGeometries()),h.detachDepth(),this.performanceInfo.advance(ne.HIGHLIGHTS),h.retain(this._nodes.require("highlights",...D)+this._nodes.optional("highlights",...D)-1),h}_renderHighlightGeometries(){this._plugins.render(...be),this._rctx.clear(256),this._renderHUDElements(2)}_renderShadowAccumulation(e,t,s,r){this._shadowAccumulator.updateDepthRange(e),this._shadowAccumulator.accumulating&&this._bindParameters.depth&&this._shadowAccumulator.renderAccumulation(this._bindParameters.depth,t,s,r)&&this.performanceInfo.advance(ne.ACCUMULATED_SHADOWS)}_precompileTransparentGeometry(){this.oitEnabled&&v(this._renderContext.output)?(this._bindParameters.oitPass=1,this._plugins.precompile(...ue),this._oitCallouts&&this._plugins.precompile(17),this._bindParameters.oitPass=2,this._plugins.precompile(...ue),this._oitCallouts&&this._plugins.precompile(17),this._bindParameters.oitPass=0):this._plugins.precompile(...ue)}_renderOIT(e,t=2){const s=1===e,{width:r,height:i}=this._framebuffer.size,n=s?()=>this._renderHUDElements(t):()=>this._renderTransparentGeometry(),h=this._bindParameters,o=this._renderContext.output;this._renderContext.output=0,h.oitPass=1;const d=s?"oit hud":"oit",_=this.fboCache.acquire(r,i,d,8),l=this._bindParameters.hasEmission&&(0===e||1!==t);l&&_.acquireColor(he,8,"oit emissive");const u=l?oe:he;_.acquireColor(u,7,"oit alpha"),s||_.attachDepth(this._framebuffer.depth),this._rctx.bindFramebuffer(_.fbo),this._rctx.clearFramebuffer([0,0,0,1]),l&&this._rctx.clearBuffer(1,E),n(),_.detachDepth(),h.oitPass=2;const p=this.fboCache.acquire(r,i,s?"oit hud front":"oit front");l&&p.acquireColor(he,8,"oit emissive front"),s?p.acquireDepth(13):p.attachDepth(this._framebuffer.depth),this._rctx.bindFramebuffer(p.fbo),this._rctx.clearFramebuffer(E,s),n(),p.detachDepth();const m=this._pluginsHas.occludedHudElements&&!s;let c;return this._bindParameters.hudOcclusion=a(this._bindParameters.hudOcclusion),h.oitPass=0,s?(c=this.fboCache.acquire(r,i,"oit hud composite"),this._rctx.bindFramebuffer(c.fbo),this._rctx.setClearColor(0,0,0,1e-13),this._rctx.clear(16384)):(m&&(this._framebuffer.color.acquireColor(u,0,"hud occlusion"),this._rctx.clearBuffer(u-de,E)),this._framebuffer.bind()),this._oitBlend.blend(this._rctx,_,p,h,l,m,e),c?.detachDepth(),s||(this._rctx.bindFramebuffer(p.fbo),this._framebuffer.bind(),m&&(this._bindParameters.hudOcclusion=this._framebuffer.color.obtainAttachment(u))),p.release(),_.release(),this._renderContext.output=o,c}_renderOpaque(){const e=this.plugins.produces(0,...le);if(e){this._plugins.render(0,1);const e=this._framebuffer;e.update(e=>this._renderNodes(A.CUTFILL_COLOR,e)),e.update(e=>this._renderNodes(A.OPAQUE_TERRAIN,e)),e.bind(),this._plugins.render(2,3)}const t=this._framebuffer;this._renderTerrainDepth(),t.update(t=>this._renderNodes(x.OPAQUE,t,e)),this.fboCache.debugCallback?.(x.OPAQUE,t.color.fbo),t.update(e=>this._renderNodes(A.OPAQUE_ENVIRONMENT,e)),this.fboCache.debugCallback?.(A.OPAQUE_ENVIRONMENT,t.color.fbo),this._renderEdges(1)}_renderTransparent(e){const t=this._framebuffer;t.bind(),this._renderPlugins(22,ne.VOXEL),t.update(e=>this._renderNodes(A.GAUSSIAN_SPLAT,e)),this.fboCache.debugCallback?.(A.GAUSSIAN_SPLAT,t.color.fbo),this._renderHiddenTransparentEdges(),e&&(this.oitEnabled?this._renderOIT(0):this._renderTransparentGeometry()),t.update(t=>this._renderNodes(x.TRANSPARENT,t,e)),this.fboCache.debugCallback?.(x.TRANSPARENT,t.color.fbo),this._renderGeometryDepth(),this._renderHUDVisibility(),this._needsTerrainDepth||this._oitCallouts||this._plugins.render(17),this._renderEdges(0);const s=this._renderPhotoshopTerrain(),r=s?.getTexture();r&&(this._bindParameters.hudVisibility&&(this._needsTerrainDepth?this._renderLineCallouts(0):(this._rctx.bindFramebuffer(this._bindParameters.hudVisibility?.fbo),this._compositor.compositeHUD(this._bindParameters,r))),this._renderHUD(0,t.color)),this._bindParameters.cullAboveTerrain=!1,r&&(t.bind(),this._compositor.compositePreMultipliedAlpha(this._bindParameters,r),s?.release(),this._needsTerrainDepth&&(this._renderEdges(1),e&&(this.oitEnabled?this._renderOIT(0):this._renderTransparentGeometry(),this.performanceInfo.advance(ne.TRANSPARENT)),this._renderEdges(0))),this._bindParameters.ssao=a(this._bindParameters.ssao),this._needsTerrainDepth&&this._renderLineCallouts(1),this._bindParameters.terrainDepthTest=!1,this._renderTransparentEnvironment()}_renderTransparentEnvironment(){this._shadowAccumulator.render(this._bindParameters),this.performanceInfo.advance(ne.APPLY_ACCUMULATED_SHADOWS),this._framebuffer.bind(),this._plugins.render(9),this.performanceInfo.advance(ne.TRANSPARENT_MATERIAL_WITHOUT_DEPTH)}_renderPlugins(e,t){this._plugins.produces(this._renderContext.output,e)&&(this._plugins.render(e),this.performanceInfo.advance(t))}_renderNodes(e,t,s=!1){const r=t.name;if(t.setName(e),this._pluginInput.set(e,t),!this._nodes.produces(e))return s&&this.performanceInfo.advance(e),t;this._fboCache.debugCallback?.(r,t.fbo);const i=this._nodes.render(t,this._pluginInput,this._releaseNodeInputs);return this.performanceInfo.advance(e),i}_ensureBindParametersCamera(e,t){this._bindParameters.camera=e,this._bindParameters.contentCamera=t}_ensureBindParametersSSR(e){if(this._bindParameters.ssr.lastFrameColor){null==this._ssrEnableTime&&(this._ssrEnableTime=e),this._renderContext.lastFrameCamera.equals(this._bindParameters.camera)?this._reprojectionMatrix=b:(f(Te,this._bindParameters.camera.viewMatrix),f(Ee,this._bindParameters.camera.projectionMatrix),g(xe,Te,Ee),g(xe,this._renderContext.lastFrameCamera.viewMatrix,xe),g(xe,this._renderContext.lastFrameCamera.projectionMatrix,xe),this._reprojectionMatrix=xe);const t=this.stage.view.qualitySettings.fadeDuration;this._bindParameters.ssr.fadeFactor=t>0?Math.min(t,e-this._ssrEnableTime)/t:1,this._bindParameters.ssr.fadeFactor<1&&this._requestRender()}else this._reprojectionMatrix=b,this._ssrEnableTime=null}addRenderNode(e){this._nodes.add(e),this._requestRender()}removeRenderNode(e){this._nodes.remove(e),this._requestRender()}updateLighting(e,t,s,r){this._bindParameters.updateLighting(e,t,s,r),this._requestRender(1)}get usedMemory(){return{fbos:this.fboCache.usedMemory,plugins:this._plugins.usedMemory,edges:this.edgeView?.usedMemory??0}}_renderToTargets(e,t,s,r,i=!1,n=!1){t.attachDepth(s),this._rctx.bindFramebuffer(t.fbo),this._rctx.clearFramebuffer(r,i,n),e(),t.detachDepth()}get test(){}};e([p({readOnly:!0})],_e.prototype,"highResolutionAtmosphere",null),e([p()],_e.prototype,"_edgeView",void 0),e([p()],_e.prototype,"updating",null),_e=e([m("esri.views.3d.webgl-engine.lib.Renderer")],_e);const le=[0,1,2,3],ue=[7,8,4,5],pe=[6,7,8],me=[0,1,2,4,...pe],ce=[3,5],fe=[2,4,9],ge=[18,14,16,15],be=[4,5,2,3,0,1,...pe],Pe=[4,9,5,12],Ce={0:[15],1:[14],2:[15,14],3:[15,14]},we=["normals","highlights"],Ee=P(),Te=P(),xe=P();function Ae(e){return t=>e.immediate.schedule(t)}export{_e as Renderer};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
|
|
2
|
-
import{__decorate as t}from"tslib";import e from"../../../../core/Accessor.js";import{sliceEquals as
|
|
2
|
+
import{__decorate as t}from"tslib";import e from"../../../../core/Accessor.js";import{sliceEquals as i}from"../../../../core/arrayUtils.js";import"../../../../core/has.js";import{smoothstep as r}from"../../../../core/mathUtils.js";import{disposeMaybe as s}from"../../../../core/maybe.js";import{watch as o,sync as a}from"../../../../core/reactiveUtils.js";import{signal as n}from"../../../../core/signal.js";import{property as h,subclass as c}from"../../../../core/accessorSupport/decorators.js";import{copy as u,equals as l}from"../../../../core/libs/gl-matrix-2/math/vec3.js";import{create as m}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{ReadShadowMapPassParameters as _}from"../core/shaderLibrary/shading/ReadShadowMap.glsl.js";import{BindParameters as p}from"./BindParameters.js";import{DepthRange as d}from"./DepthRange.js";import{createQuadVAO as f}from"./glUtil3D.js";import{ShadowCastRenderer as g,shadowCastDisabledElevationThreshold as b,shadowCastDisableElevationMax as v,shadowCastDisableElevationMin as S}from"./ShadowCastRenderer.js";import{ShadowMap as w}from"./ShadowMap.js";import{S as y}from"../../../../chunks/ShadowCastAccumulate.glsl.js";import{ShadowCastAccumulateTechnique as F}from"../shaders/ShadowCastAccumulateTechnique.js";import{ShadowCastAccumulateTechniqueConfiguration as A}from"../shaders/ShadowCastAccumulateTechniqueConfiguration.js";import{ShadowCastClearTechnique as x}from"../shaders/ShadowCastClearTechnique.js";import{TaskPriority as R}from"../../../support/Scheduler.js";import{SizedPixelFormat as C,PixelType as j}from"../../../webgl/enums.js";import{FramebufferObject as q}from"../../../webgl/FramebufferObject.js";import{TextureDescriptor as P}from"../../../webgl/TextureDescriptor.js";let T=class extends e{updateDepthRange(t){this._depthRange.equals(t)||(this._depthRange=t)}constructor(t,e,i,r,s,n){super({}),this.fbos=t,this._techniques=e,this._stage=i,this._prepareForShadowMapPass=r,this._renderToShadowMap=s,this._requestRender=n,this._primarySet=new M(new A(0),()=>this._requestRenderIfEnabled()),this._contextSet=new M(new A(1),()=>this._requestRenderIfEnabled()),this._passParameters=new _,this._depthRange=d.Zero,this._previewing=!1,this._shadowAccumulatorKey=Symbol("shadowAccumulator"),this._rctx=t.rctx,this._bindParameters=new p(this._rctx.emptyTexture,new w(t,i.viewingMode)),this._bindParameters.shadowMap.enabled=!0,this._vao=f(this._rctx),this._accumulationRenderer=new g(e,this._rctx,this,n);const h=this._stage.view.resourceController.scheduler;this.addHandles([h.registerTask(R.SHADOW_ACCUMULATOR,this),o(()=>this._previewing,t=>{t?this._invalidateAccumulationSets():this._requestRenderIfEnabled()},a),o(()=>2===this._numActive,()=>this._numActiveChanged(),a),o(()=>this._depthRange,()=>this._invalidateAccumulationSets(),a),o(()=>this.accumulating&&this.canAccumulate,()=>this._precompile(),{sync:!0,once:!0})],this._shadowAccumulatorKey)}normalizeCtorArgs(){return{}}destroy(){this._disable(),this.removeHandles(this._shadowAccumulatorKey),this._accumulationRenderer=s(this._accumulationRenderer),this._bindParameters.shadowMap.dispose(),this._fbo=s(this._fbo),this._vao=s(this._vao);for(const t of this._accumulationSets())t.destroy();this._contextSet=null,this._primarySet=null,this._bindParameters.destroy()}*_accumulationSets(){yield this._primarySet,yield this._contextSet}get computedSamples(){return[this._primarySet.progress,this._contextSet.progress]}get shadowCastTexture(){return this._fbo?.colorTexture}get accumulating(){return this.active&&this._previewing||this._refining}get _refining(){return this.active&&!this._doneAccumulating&&!this._previewing}get active(){return null!=this._fbo&&[...this._accumulationSets()].some(t=>t.active)}get canAccumulate(){return null!=this._bindParameters.depth&&this._depthRange!==d.Zero&&this._opacityFromElevation>b}get _doneAccumulating(){return[...this._accumulationSets()].every(t=>t.doneAccumulating)}get _opacityFromElevation(){return this._accumulationRenderer.opacityFromElevation}set _opacityFromElevation(t){this._accumulationRenderer.opacityFromElevation=t}get _numActive(){return[...this._accumulationSets()].reduce((t,e)=>t+(e.active?1:0),0)}get _pixelFormat(){return 2===this._numActive?{pixelFormat:33319,internalFormat:C.RG8}:{pixelFormat:6403,internalFormat:C.R8}}get readyToRun(){return this._refining&&this.canAccumulate&&[...this._accumulationSets()].some(t=>t.running)}_precompile(){for(const t of this._accumulationSets())this._techniques.precompile(F,t.configuration),this._techniques.precompile(x,t.configuration)}runTask(t){this._clearBuffersOnAccumulationStart(),this._prepareForShadowMapPass(this._bindParameters);let e=!1;for(const i of this._accumulationSets())this._runTaskForSet(i,t)&&(e=!0);e&&this._requestRender()}_runTaskForSet(t,e){let i=!1;for(;!e.done&&!t.doneAccumulating;)this._accumulateShadow(t),e.madeProgress(),i=!0;return i}renderAccumulation(t,e,i,r){return this._updateCamera(e),this._bindParameters.contentCamera=i,this._bindParameters.depth=t,this._passParameters.origin=this._bindParameters.camera.center,this.notifyChange("canAccumulate"),!(!this.accumulating||!this.canAccumulate)&&(this._previewing||r?(this._clearFramebuffer(),this._reset()):this._clearBuffersOnAccumulationStart(),this._accumulateSetsForRenderFrame(r))}_clearBuffersOnAccumulationStart(){if([...this._accumulationSets()].every(t=>0===t.progress))this._clearFramebuffer();else for(const t of this._accumulationSets())0===t.progress&&this._clearFramebufferForSet(this._fbo,t)}_accumulateSetsForRenderFrame(t){let e=!1;for(const i of this._accumulationSets())this._accumulateSetForRenderFrame(i,t)&&(e=!0);return e&&this._requestRender(),e}_accumulateSetForRenderFrame(t,e){let i=e?t.sampleCount:Math.min(D,t.sampleCount);i-=t.progress;for(let r=0;r<i;++r)this._accumulateShadow(t);return i>0}precompile(){this._accumulationRenderer.precompile()}render(t){this._accumulationRenderer.render(t)}setOptions(t){void 0!==t.previewing&&(this._previewing=t.previewing),void 0!==t.lightDirections&&(this._primarySet.lightDirections=t.lightDirections),void 0!==t.lightDirectionsContext&&(this._contextSet.lightDirections=t.lightDirectionsContext),!0===t.enabled?this._enable():!1===t.enabled&&this._disable(),this._accumulationRenderer.setOptions(t)}readAccumulatedShadow(t,e){const i=this._primarySet.progress;return!this.active||!this._fbo||i<1||t<0||t>=this._fbo.width||e<0||e>=this._fbo.height?0:(this._fbo.readPixels(t,e,1,1,6408,j.UNSIGNED_BYTE,E),E[0]/i)}_numActiveChanged(){if(!this._fbo)return;const t=2===this._numActive,e=this._createFBO();e.resize(this._fbo.width,this._fbo.height),t&&(this._clearFramebuffer(e),this._contextSet.reset()),this._fbo.width&&this._fbo.height&&this._rctx.blitFramebuffer(this._fbo,e),this._fbo.dispose(),this._fbo=e,this._requestRender()}_enable(){this._fbo||(this._fbo=this._createFBO(),this._invalidateAccumulationSets())}_createFBO(){const{pixelFormat:t,internalFormat:e}=this._pixelFormat,i=new P;return i.pixelFormat=t,i.internalFormat=e,i.wrapMode=33071,new q(this._rctx,i)}_invalidateAccumulationSets(){for(const t of this._accumulationSets())t.reset();this._requestRenderIfEnabled()}_disable(){this._fbo&&(this._fbo=s(this._fbo),this._requestRender())}_reset(){for(const t of this._accumulationSets())t.reset()}_clearFramebuffer(t=this._fbo){t&&t.width&&t.height&&(this._rctx.bindFramebuffer(t),this._rctx.setClearColor(0,0,0,0),this._rctx.clear(16384))}_clearFramebufferForSet(t,e){if(!t)return;const i=this._techniques.get(x,e.configuration);this._rctx.bindFramebuffer(t),this._rctx.bindTechnique(i,this._bindParameters,this._passParameters),this._rctx.bindVAO(this._vao),this._rctx.drawArrays(i.primitiveType,0,this._vao.vertexCount("geometry"))}_accumulateShadow(t){this._renderToShadowMap(this._bindParameters,t.lightDirections[t.progress++],this._depthRange);const e=this._techniques.get(F,t.configuration);this._rctx.bindFramebuffer(this._fbo),this._rctx.bindTechnique(e,this._bindParameters,this._passParameters),this._rctx.bindVAO(this._vao),this._rctx.drawArrays(e.primitiveType,0,this._vao.vertexCount("geometry"))}_updateCamera(t){const e=this._fbo;if(null==e)return;const i=this._bindParameters.camera;t.equals(i)||i.copyFrom(t),e.resize(t.fullWidth,t.fullHeight),this._opacityFromElevation=1-r(S,v,t.relativeElevation)}_requestRenderIfEnabled(){this._fbo&&this._requestRender()}get test(){}};t([h()],T.prototype,"_fbo",void 0),t([h()],T.prototype,"_depthRange",void 0),t([h()],T.prototype,"_previewing",void 0),t([h()],T.prototype,"_accumulationRenderer",void 0),t([h()],T.prototype,"_refining",null),t([h()],T.prototype,"active",null),t([h()],T.prototype,"canAccumulate",null),t([h()],T.prototype,"_doneAccumulating",null),t([h()],T.prototype,"_opacityFromElevation",null),t([h()],T.prototype,"_numActive",null),t([h()],T.prototype,"_pixelFormat",null),t([h()],T.prototype,"readyToRun",null),T=t([c("esri.views.3d.webgl-engine.lib.ShadowAccumulator")],T);const D=6,E=new Uint8Array(4);class M{constructor(t,e){this.configuration=t,this._notifyChange=e,this._cachedLightDirections=[],this._progress=n(0),this._sampleCount=n(0)}get progress(){return this._progress.value}set progress(t){this._progress.value=t}get sampleCount(){return this._sampleCount.value}get doneAccumulating(){return this.progress>=this.sampleCount}get running(){return this.progress>0}get active(){return this.sampleCount>0}get lightDirections(){return this._cachedLightDirections}set lightDirections(t){const e=this._cachedLightDirections,r=Math.min(y,t.length);if(!i(e,0,e.length,t,0,r,l)){e.length=r,this._sampleCount.value=r;for(let i=0;i<r;++i)e[i]=u(e[i]??m(),t[i]);this.reset(),this._notifyChange()}}destroy(){this._cachedLightDirections.length=0,this._sampleCount.value=0}reset(){this.progress=0}precompile(t){t.precompile(F,this.configuration),t.precompile(x,this.configuration)}}export{T as ShadowAccumulator};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
|
|
2
|
-
import{__decorate as e}from"tslib";import t from"../../../../../core/Accessor.js";import{removeUnordered as s,filterInPlace as o}from"../../../../../core/arrayUtils.js";import"../../../../../core/has.js";import{getOrCreateMapValue as n}from"../../../../../core/MapUtils.js";import{NestedMap as r}from"../../../../../core/NestedMap.js";import{nullUid as a}from"../../../../../core/uid.js";import{property as i,subclass as c}from"../../../../../core/accessorSupport/decorators.js";import{assert as l}from"../../lib/Util.js";import{bufferRangePool as f,mergeAdjacentRanges as u}from"./BufferRange.js";import{Instance as d}from"./Instance.js";import{PerBaseInstanceData as h}from"./PerBaseInstanceData.js";import{PerBufferData as m,hasVao as p}from"./PerBufferData.js";import{PerOriginData as g}from"./PerOriginData.js";import{VaoWriter as y}from"./VaoWriter.js";let v=class extends t{constructor(e){super(e),this._vaoWriter=null,this._useMetalWorkaround=!1,this._hasOccludees=!1}destroy(){for(const e of this.dataByBaseInstance.values()){for(const t of e.dataByOrigin.values())for(const e of t.buffers)this._vaoWriter?.deleteBuffer(e);e.dispose()}this.dataByBaseInstance.clear(),this.uninitializeRenderContext()}initializeRenderContext(e){this._useMetalWorkaround=e.renderContext.rctx.isAssumedMetalDriver,this._vaoWriter=new y(this.material,e.renderContext.rctx)}uninitializeRenderContext(){this._useMetalWorkaround=!1,this._vaoWriter=null}get hasOccludees(){return this._hasOccludees}modify(e,t){this._applyUpdates(e,t),this._applyAddsAndRemoves(e),this._updateDrawCommands()}get canCompact(){for(const e of this.dataByBaseInstance.values())for(const t of e.dataByOrigin.values())if(t.buffers.some(e=>e.holes.geometry.length>1))return!0;return!1}compact(e){if(!this.canCompact)return!1;let t=!1;for(const o of this.dataByBaseInstance.values())for(const n of o.dataByOrigin.values()){const r=new Array;for(let t=0;t<n.buffers.length&&!e.done;){const o=n.buffers[t];o.holes.geometry.length<=1?++t:(o.instances.forEach(({geometry:e})=>r.push(e)),this._vaoWriter?.deleteBuffer(o),s(n.buffers,o,void 0,{last:t}),e.madeProgress())}if(r.length>0){const{baseInstanceData:e}=o;n.buffers.forEach(t=>this._applyAdds(e,t,r));const s=null!=e;for(;r.length>0;)n.buffers.push(this._applyAndRebuild(e,new m(s,this._vaoWriter.targetBuffers),r,null));t=!0}}return t}updateHighlights(e){this.highlightOrderMap=e;for(const t of this.dataByBaseInstance.values())for(const s of t.dataByOrigin.values())for(const t of s.buffers)t.updateHighlights(e)}_applyUpdates(e,t){const o=this._vaoWriter;if(null==o)return void e.clearUpdates();let n;const r=this._useMetalWorkaround?(e,t)=>{n??=new Map;let s=n.get(t);s||(s=[],n.set(t,s)),s.push(e)}:(e,t)=>o.updateInstance(e,t);for(const i of e.updates){if(t.done)return;const{renderGeometry:o,updateType:n}=i;s(e.pending.updates,i),t.madeProgress();const c=this.dataByBaseInstance.get(o.geometry.baseGeometry?.id??a),l=c?.dataByOrigin.get(o.localOrigin.id)?.findBuffer(o.id);if(null==l)return;const f=l.instances.get(o.id);6&n&&r(f,l),25&n&&(l.drawCommandsDirty=!0)}n&&o.updateInstancesMetal(n)}_computeDeltas(e,t){const s=new Map;for(const o of e){const e=o.localOrigin;if(null==e)continue;const t=o.geometry.baseGeometry,r=n(s,t??null,b);let a=r.get(e,null);null==a&&(a=new B(e.vec3,t),r.set(e,null,a)),a.changes.push(o)}for(const o of t){const e=o.localOrigin;if(null==e)continue;const t=o.geometry.baseGeometry,r=this.dataByBaseInstance.get(t?.id??a),i=r?.dataByOrigin.get(e.id)?.findBuffer(o.id);if(null==i)continue;const c=n(s,t??null,b);let l=c.get(e,i);null==l&&(l=new B(e.vec3,t),c.set(e,i,l)),l.changes.push(o)}return s}_applyAddsAndRemoves(e){const{_vaoWriter:t,dataByBaseInstance:o}=this;if(null==t)return void e.clearAddsAndRemoves();const r=this._computeDeltas(e.adds,e.removes);for(const[i,c]of r){const e=n(o,i?.id??a,()=>new h(t.createBaseInstanceData(i)));for(const[o,r]of c.outerMap()){const a=r.get(null),i=a?.changes??[];c.delete(o,null);const f=n(e.dataByOrigin,o.id,()=>new g(o.vec3));for(const[n,u]of r){if(c.delete(o,n),null==n&&l(!1,"No VAO for removed geometries"),n.instances.size===u.changes.length){t.deleteBuffer(n),s(f.buffers,n),0===f.buffers.length&&0===i.length&&e.dataByOrigin.delete(o.id);continue}switch(t.evaluateBufferAllocation(n.numElements.geometry,i,u.changes,n)){case 0:u.changes.forEach(({id:e})=>n.deleteInstance(e)),n.instances.forEach(({geometry:e})=>i.push(e)),t.deleteBuffer(n),s(f.buffers,n);break;case 1:this._applyAndRebuild(e.baseInstanceData,n,i,u);break;case 2:this._applyRemoves(n,u)}}if(i.length>0){const{baseInstanceData:s}=e,o=null!=s;for(const e of f.buffers)this._applyAdds(s,e,i);const{targetBuffers:n}=t;for(;i.length>0;)f.buffers.push(this._applyAndRebuild(s,new m(o,n),i,null))}}0===e.dataByOrigin.size&&(e.dispose(),o.delete(e.id))}e.clearAddsAndRemoves()}_updateDrawCommands(){this._hasOccludees=!1;for(const e of this.dataByBaseInstance.values())for(const t of e.dataByOrigin.values())for(const e of t.buffers)e.
|
|
2
|
+
import{__decorate as e}from"tslib";import t from"../../../../../core/Accessor.js";import{removeUnordered as s,filterInPlace as o}from"../../../../../core/arrayUtils.js";import"../../../../../core/has.js";import{getOrCreateMapValue as n}from"../../../../../core/MapUtils.js";import{NestedMap as r}from"../../../../../core/NestedMap.js";import{nullUid as a}from"../../../../../core/uid.js";import{property as i,subclass as c}from"../../../../../core/accessorSupport/decorators.js";import{assert as l}from"../../lib/Util.js";import{bufferRangePool as f,mergeAdjacentRanges as u}from"./BufferRange.js";import{Instance as d}from"./Instance.js";import{PerBaseInstanceData as h}from"./PerBaseInstanceData.js";import{PerBufferData as m,hasVao as p}from"./PerBufferData.js";import{PerOriginData as g}from"./PerOriginData.js";import{VaoWriter as y}from"./VaoWriter.js";let v=class extends t{constructor(e){super(e),this._vaoWriter=null,this._useMetalWorkaround=!1,this._hasOccludees=!1}destroy(){for(const e of this.dataByBaseInstance.values()){for(const t of e.dataByOrigin.values())for(const e of t.buffers)this._vaoWriter?.deleteBuffer(e);e.dispose()}this.dataByBaseInstance.clear(),this.uninitializeRenderContext()}initializeRenderContext(e){this._useMetalWorkaround=e.renderContext.rctx.isAssumedMetalDriver,this._vaoWriter=new y(this.material,e.renderContext.rctx)}uninitializeRenderContext(){this._useMetalWorkaround=!1,this._vaoWriter=null}get hasOccludees(){return this._hasOccludees}modify(e,t){this._applyUpdates(e,t),this._applyAddsAndRemoves(e),this._updateDrawCommands()}get canCompact(){for(const e of this.dataByBaseInstance.values())for(const t of e.dataByOrigin.values())if(t.buffers.some(e=>e.holes.geometry.length>1))return!0;return!1}compact(e){if(!this.canCompact)return!1;let t=!1;for(const o of this.dataByBaseInstance.values())for(const n of o.dataByOrigin.values()){const r=new Array;for(let t=0;t<n.buffers.length&&!e.done;){const o=n.buffers[t];o.holes.geometry.length<=1?++t:(o.instances.forEach(({geometry:e})=>r.push(e)),this._vaoWriter?.deleteBuffer(o),s(n.buffers,o,void 0,{last:t}),e.madeProgress())}if(r.length>0){const{baseInstanceData:e}=o;n.buffers.forEach(t=>this._applyAdds(e,t,r));const s=null!=e;for(;r.length>0;)n.buffers.push(this._applyAndRebuild(e,new m(s,this._vaoWriter.targetBuffers),r,null));t=!0}}return t}updateHighlights(e){this.highlightOrderMap=e;for(const t of this.dataByBaseInstance.values())for(const s of t.dataByOrigin.values())for(const t of s.buffers)t.updateHighlights(e)}_applyUpdates(e,t){const o=this._vaoWriter;if(null==o)return void e.clearUpdates();let n;const r=this._useMetalWorkaround?(e,t)=>{n??=new Map;let s=n.get(t);s||(s=[],n.set(t,s)),s.push(e)}:(e,t)=>o.updateInstance(e,t);for(const i of e.updates){if(t.done)return;const{renderGeometry:o,updateType:n}=i;s(e.pending.updates,i),t.madeProgress();const c=this.dataByBaseInstance.get(o.geometry.baseGeometry?.id??a),l=c?.dataByOrigin.get(o.localOrigin.id)?.findBuffer(o.id);if(null==l)return;const f=l.instances.get(o.id);6&n&&r(f,l),25&n&&(l.drawCommandsDirty=!0)}n&&o.updateInstancesMetal(n)}_computeDeltas(e,t){const s=new Map;for(const o of e){const e=o.localOrigin;if(null==e)continue;const t=o.geometry.baseGeometry,r=n(s,t??null,b);let a=r.get(e,null);null==a&&(a=new B(e.vec3,t),r.set(e,null,a)),a.changes.push(o)}for(const o of t){const e=o.localOrigin;if(null==e)continue;const t=o.geometry.baseGeometry,r=this.dataByBaseInstance.get(t?.id??a),i=r?.dataByOrigin.get(e.id)?.findBuffer(o.id);if(null==i)continue;const c=n(s,t??null,b);let l=c.get(e,i);null==l&&(l=new B(e.vec3,t),c.set(e,i,l)),l.changes.push(o)}return s}_applyAddsAndRemoves(e){const{_vaoWriter:t,dataByBaseInstance:o}=this;if(null==t)return void e.clearAddsAndRemoves();const r=this._computeDeltas(e.adds,e.removes);for(const[i,c]of r){const e=n(o,i?.id??a,()=>new h(t.createBaseInstanceData(i)));for(const[o,r]of c.outerMap()){const a=r.get(null),i=a?.changes??[];c.delete(o,null);const f=n(e.dataByOrigin,o.id,()=>new g(o.vec3));for(const[n,u]of r){if(c.delete(o,n),null==n&&l(!1,"No VAO for removed geometries"),n.instances.size===u.changes.length){t.deleteBuffer(n),s(f.buffers,n),0===f.buffers.length&&0===i.length&&e.dataByOrigin.delete(o.id);continue}switch(t.evaluateBufferAllocation(n.numElements.geometry,i,u.changes,n)){case 0:u.changes.forEach(({id:e})=>n.deleteInstance(e)),n.instances.forEach(({geometry:e})=>i.push(e)),t.deleteBuffer(n),s(f.buffers,n);break;case 1:this._applyAndRebuild(e.baseInstanceData,n,i,u);break;case 2:this._applyRemoves(n,u)}}if(i.length>0){const{baseInstanceData:s}=e,o=null!=s;for(const e of f.buffers)this._applyAdds(s,e,i);const{targetBuffers:n}=t;for(;i.length>0;)f.buffers.push(this._applyAndRebuild(s,new m(o,n),i,null))}}0===e.dataByOrigin.size&&(e.dispose(),o.delete(e.id))}e.clearAddsAndRemoves()}_updateDrawCommands(){this._hasOccludees=!1;for(const e of this.dataByBaseInstance.values())for(const t of e.dataByOrigin.values())for(const e of t.buffers)e.updateDirtyDrawCommands(this.highlightOrderMap),this._hasOccludees||=e.hasOccludees}_applyAndRebuild(e,t,s,o){if(o)for(const l of o.changes)t.deleteInstance(l.id);const n=this._vaoWriter,{targetBuffers:r}=n,a={},i={};for(const l of r)a[l]=n.maxElements(l),i[l]=t.numElements[l];for(;s.length>0;){const e=s.pop(),o={};for(const t of r)o[t]=n.elementCount(e.geometry,t);if(r.some(e=>i[e]+o[e]>a[e]&&i[e]>0)){s.push(e);break}for(const t of r)i[t]+=o[t];const c=new d(e,{geometry:f.acquire(0,0),texture:f.acquire(0,0)},this.highlightOrderMap);t.addInstance(e.id,c)}t.resetInstanceSummary(),n.reallocateBuffer(e,t,i);const c=n.rebuildInstances(i,t.writeableInstances.values(),t);t.updateInstances(),t.clearHoles();for(const l of r)t.holes[l].push(f.acquire(c[l],t.getEndElement(l)));return t.updateDrawCommands(this.highlightOrderMap),t}_applyRemoves(e,t){const{_vaoWriter:s}=this;if(0===t.changes.length||null==s)return;const{targetBuffers:o}=s,n={},r={};for(const a of o)n[a]=[],r[a]=f.acquire(1/0,-1/0);for(const a of t.changes){const t=a.id,s=e.instances.get(t);if(s){if(this._useMetalWorkaround)for(const e of o){const t=s.targetRanges[e],o=r[e];o.from=Math.min(o.from,t.from),o.to=Math.max(o.to,t.to)}for(const e of o){const t=s.targetRanges[e],o=n[e],r=o.at(-1);r?.to===t.from?r.to=t.to:r?.from===t.to?r.from=t.from:o.push(f.acquire(t.from,t.to))}e.deleteInstance(t)}}for(const a of o)u(n[a]);this._useMetalWorkaround?s.clearHolesMetal(e.instances.values(),r,e):s.clearHoles(n,e);for(const a of o)f.release(r[a]);for(const a of o){const t=e.holes[a];for(const e of n[a])t.push(e)}e.drawCommandsDirty=!0}_applyAdds(e,t,s){if(0===s.length||null==this._vaoWriter)return;if(!p(t))return void this._applyAndRebuild(e,t,s,null);const n=this._vaoWriter,{targetBuffers:r}=n,a={};for(const o of r){const e=t.numElements[o],r=s.reduce((e,{geometry:t})=>e+n.elementCount(t,o),0);a[o]=Math.min(e+r,n.maxElements(o))}if(n.canGrow(t,a))return void this._applyAndRebuild(e,t,s,null);t.mergeHoles();const i={},c={};for(const o of r)i[o]=[],c[o]=f.acquire(1/0,-1/0);for(const{geometry:o}of s){const e={},s={};for(const a of r)e[a]=n.elementCount(o,a),s[a]=_(t.holes[a],e[a]);if(r.every(e=>null!=s[e]))for(const t of r){const o=s[t];if(i[t].push(o),this._useMetalWorkaround){const s=c[t];s.from=Math.min(s.from,o),s.to=Math.max(s.to,o+e[t])}}else for(const t of r)i[t].push(null)}const l=this._addInstances(s,t,i);if(this._useMetalWorkaround){if(r.some(e=>!Number.isFinite(c[e].from)||!Number.isFinite(c[e].to)))return;for(const e of l);n.writeInstanceRangeMetal(c,t.instances.values(),t)}else n.writeRandomInstances(a,l,t);o(s,(e,t)=>r.some(e=>null==i[e][t]))}*_addInstances(e,t,s){const o=e.length,n=this._vaoWriter,{targetBuffers:r}=n;for(let a=0;a<o;++a){const o=e[a];if(r.some(e=>null==s[e][a]))continue;const i={};for(const e of r){const t=s[e][a];i[e]=f.acquire(t,t+n.elementCount(o.geometry,e))}const c=new d(o,i,this.highlightOrderMap);t.addInstance(o.id,c),t.drawCommandsDirty=!0,yield c}}static prune(){y.prune()}get test(){}};e([i({constructOnly:!0})],v.prototype,"dataByBaseInstance",void 0),e([i({constructOnly:!0})],v.prototype,"material",void 0),e([i()],v.prototype,"highlightOrderMap",void 0),v=e([c("esri.views.3d.webgl-engine.materials.renderers.MergedBuffer")],v);class B{constructor(e,t){this.origin=e,this.baseInstance=t,this.changes=new Array}}function _(e,t){if(0===t)return 0;const o=e.find(e=>e.numElements>=t);if(null==o)return null;const n=o.from;return o.from+=t,o.numElements<=0&&(s(e,o),f.release(o)),n}function b(){return new r}export{v as MergedBuffer};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
|
|
2
|
-
import{getOrCreateMapValue as t}from"../../../../../core/MapUtils.js";import s from"../../../../../core/PooledArray.js";import{assert as e}from"../../lib/Util.js";import{bufferRangePool as n,mergeAdjacentRanges as a}from"./BufferRange.js";import{DrawCommand as i}from"./DrawCommand.js";import{InstancedCommandVAO as o}from"./InstancedCommandVAO.js";import{InstancedCommandVAOs as r}from"./InstancedCommandVAOs.js";import{defaultHighlightName as h}from"../../../../support/HighlightDefaults.js";class m{constructor(t,s){this.isInstanced=t,this.targetBuffers=s,this.vao=null,this.textureBuffer=null,this.vaoEndElement=0,this.textureEndElement=0,this._instances=new Map,this.hasHiddenInstances=!1,this.hasOccludees=!1,this.drawCommandsDirty=!0,this.highlightNames=new Set,this.drawCommandsDefault=c(),this.drawCommandsHighlights=new Map,this.drawCommandsOccludees=c(),this.drawCommandsShadowHighlightRest=c(),this._instancedCommandVAOs=null;const e={},n={};for(const a of s)e[a]=0,n[a]=[];this._numElements=e,this._holes=n}getTargetBuffer(t){return"geometry"===t?this.vao?.buffer("geometry"):this.textureBuffer}get numElements(){return this._numElements}get instances(){return this._instances}get writeableInstances(){return this._instances}clearHoles(){for(const t of this.targetBuffers){const s=this._holes[t];for(const t of s)n.release(t);s.length=0}}getEndElement(t){return"geometry"===t?this.vaoEndElement:this.textureEndElement}get holes(){return this._holes}get hasHighlights(){return this.highlightNames.size>0}get instancedCommandVAOs(){return this._instancedCommandVAOs}resetInstanceSummary(){this.hasHiddenInstances=!1,this.hasOccludees=!1,this.highlightNames.clear()}
|
|
2
|
+
import{getOrCreateMapValue as t}from"../../../../../core/MapUtils.js";import s from"../../../../../core/PooledArray.js";import{assert as e}from"../../lib/Util.js";import{bufferRangePool as n,mergeAdjacentRanges as a}from"./BufferRange.js";import{DrawCommand as i}from"./DrawCommand.js";import{InstancedCommandVAO as o}from"./InstancedCommandVAO.js";import{InstancedCommandVAOs as r}from"./InstancedCommandVAOs.js";import{defaultHighlightName as h}from"../../../../support/HighlightDefaults.js";class m{constructor(t,s){this.isInstanced=t,this.targetBuffers=s,this.vao=null,this.textureBuffer=null,this.vaoEndElement=0,this.textureEndElement=0,this._instances=new Map,this.hasHiddenInstances=!1,this.hasOccludees=!1,this.drawCommandsDirty=!0,this.highlightNames=new Set,this.drawCommandsDefault=c(),this.drawCommandsHighlights=new Map,this.drawCommandsOccludees=c(),this.drawCommandsShadowHighlightRest=c(),this._instancedCommandVAOs=null;const e={},n={};for(const a of s)e[a]=0,n[a]=[];this._numElements=e,this._holes=n}getTargetBuffer(t){return"geometry"===t?this.vao?.buffer("geometry"):this.textureBuffer}get numElements(){return this._numElements}get instances(){return this._instances}get writeableInstances(){return this._instances}clearHoles(){for(const t of this.targetBuffers){const s=this._holes[t];for(const t of s)n.release(t);s.length=0}}getEndElement(t){return"geometry"===t?this.vaoEndElement:this.textureEndElement}get holes(){return this._holes}get hasHighlights(){return this.highlightNames.size>0}get instancedCommandVAOs(){return this._instancedCommandVAOs}resetInstanceSummary(){this.hasHiddenInstances=!1,this.hasOccludees=!1,this.highlightNames.clear()}updateDirtyDrawCommands(t){if(this.drawCommandsDirty){this.resetInstanceSummary();for(const t of this.instances.values())this.updateDrawState(t);this.updateDrawCommands(t)}}addInstance(t,s){e(!this._instances.has(t)),this._instances.set(t,s);for(const e of this.targetBuffers)this._numElements[e]+=s.targetRanges[e].numElements}deleteInstance(t){const s=this._instances.get(t);if(s){for(const t of this.targetBuffers){const e=s.targetRanges[t];this._numElements[t]-=e.numElements,n.release(e)}this._instances.delete(t)}}updateInstances(){const{targetBuffers:t}=this,s={};for(const e of t)s[e]=0;for(const e of this._instances.values()){for(const n of t)s[n]+=e.targetRanges[n].numElements;this.updateDrawState(e)}this._numElements=s}updateDrawState(t){if(t.isVisible){const{highlightName:s}=t;s&&this.highlightNames.add(s),t.hasOccludees&&(this.hasOccludees=!0)}else this.hasHiddenInstances=!0}updateDrawCommands(t){this._updateDrawCommands(t),this._updateInstancedCommandVAOs()}_updateDrawCommands(t){if(this.drawCommandsDefault.clear(),this.drawCommandsOccludees.clear(),this.drawCommandsDirty=!1,0===this._instances.size)return;const{sortedInstances:s}=this;if(this._updateHighlightDrawCommands(t,s),!this.needsMultipleCommands){const t=this.drawCommandsDefault.pushNew(),s=this.holes.geometry.at(0);return this.vao&&1===this.holes.geometry.length&&s.to===this.vaoEndElement?(t.first=0,void(t.count=s.from)):(t.first=1/0,t.count=0,this._instances.forEach(s=>{t.first=Math.min(t.first,s.targetRanges.geometry.from),t.count=Math.max(t.count,s.targetRanges.geometry.to)}),void(t.count-=t.first))}for(const e of s)e.isVisible&&l(e.hasOccludees?this.drawCommandsOccludees:this.drawCommandsDefault,e)}get sortedInstances(){return Array.from(this._instances.values()).sort(({targetRanges:{geometry:t}},{targetRanges:{geometry:s}})=>t.from===s.from?t.to-s.to:t.from-s.from)}updateHighlights(t){this.highlightNames.clear();const s=this.sortedInstances;for(const e of s)e.updateHighlightOptions(t),e.isVisible&&e.highlightName&&this.highlightNames.add(e.highlightName);this._updateHighlightDrawCommands(t,s),this._updateInstancedCommandVAOs()}mergeHoles(){const t=this._holes;for(const s of this.targetBuffers)a(t[s])}_updateHighlightDrawCommands(s,e){const{drawCommandsHighlights:n,drawCommandsShadowHighlightRest:a}=this;n.clear(),a.clear();for(const i of e){if(i.updateHighlightOptions(s),!i.isVisible)continue;const{highlightName:e}=i;if(e){this.highlightNames.add(e);l(t(n,e,c),i)}e&&e===h||l(a,i)}}_updateInstancedCommandVAOs(){const t=this.vao;if(!this.isInstanced||null==t)return;this._instancedCommandVAOs??=new r;const s=this._instancedCommandVAOs,e=s.commandVAOs.copy();s.clear();const n=s.commandVAOs,a=(s,a)=>{for(const i of s){const{first:s,count:r}=i,h=n.get(s,r)??e.pop(s,r)??new o(t.shallowCloneWithBaseInstances(new Map([["geometry",i.first]])),i.count);n.set(s,r,h),a.push(h)}};a(this.drawCommandsDefault,s.drawCommandsDefault);for(const[i,o]of this.drawCommandsHighlights){const t=new Array;a(o,t),s.drawCommandsHighlights.set(i,t)}a(this.drawCommandsOccludees,s.drawCommandsOccludees),a(this.drawCommandsShadowHighlightRest,s.drawCommandsShadowHighlightRest);for(const i of e.values())i.dispose();e.clear()}get needsMultipleCommands(){return this.hasOccludees||this.hasHighlights||this.hasHiddenInstances}}function d(t){return null!=t.vao}function c(){return new s({allocator:t=>t||new i,deallocator:t=>t})}function l(t,{targetRanges:{geometry:s}}){const e=t.back();if(null==e){const e=t.pushNew();return e.first=s.from,void(e.count=s.numElements)}if(u(e,s)){const t=s.from-e.first+s.numElements;e.count=t}else{const e=t.pushNew();e.first=s.from,e.count=s.numElements}}function u(t,s){return t.first+t.count>=s.from}export{m as PerBufferData,d as hasVao};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
|
|
2
|
-
import{__decorate as e}from"tslib";import t from"../../../../core/Accessor.js";import{toConst as r}from"../../../../core/compilerUtils.js";import{unpackFloatRGBA as i}from"../../../../core/floatRGBA.js";import has from"../../../../core/has.js";import s from"../../../../core/Logger.js";import{removeMaybe as n,destroyMaybe as o}from"../../../../core/maybe.js";import{when as a,initial as h,watch as d,syncAndInitial as l}from"../../../../core/reactiveUtils.js";import{addFrameTask as c}from"../../../../core/scheduling.js";import{Milliseconds as p}from"../../../../core/time.js";import{property as m,subclass as u}from"../../../../core/accessorSupport/decorators.js";import{isMoon as f,isMars as g}from"../../../../geometry/ellipsoidUtils.js";import{ChapmanAtmosphere as w}from"../../environment/ChapmanAtmosphere.js";import{CloudsComposition as _}from"../../environment/CloudsComposition.js";import{Fog as v}from"../../environment/Fog.js";import{LocalAtmosphere as x}from"../../environment/LocalAtmosphere.js";import{MarsAtmosphere as j}from"../../environment/MarsAtmosphere.js";import{ComponentObjectCollection as y}from"../collections/Component/ComponentObjectCollection.js";import{ShaderTechniqueConstructionContext as R}from"../core/shaderTechnique/ShaderTechniqueConstructionContext.js";import{ShaderTechniqueRepository as b}from"../core/shaderTechnique/ShaderTechniqueRepository.js";import{ObjectAndLayerIDRenderNode as C}from"../effects/geometry/ObjectAndLayerIDRenderNode.js";import{olidEnabled as A}from"../effects/geometry/olidUtils.js";import{RenderOccludedRenderNode as S}from"../effects/geometry/RenderOccludedRenderNode.js";import{GlowRenderNode as O}from"../effects/glow/GlowRenderNode.js";import{Haze as T}from"../effects/haze/Haze.js";import{Highlight as q}from"../effects/highlight/Highlight.js";import{ShadowHighlight as U}from"../effects/highlight/ShadowHighlight.js";import{Magnifier as M}from"../effects/magnifier/Magnifier.js";import{SMAA as L}from"../effects/smaa/SMAA.js";import{SSAO as D}from"../effects/ssao/SSAO.js";import{Stars as k}from"../effects/stars/Stars.js";import F from"../lib/CompositingHelper.js";import{GLMaterialRepository as W}from"../lib/GLMaterialRepository.js";import{ObjectAndLayerIdRenderHelper as H}from"../lib/ObjectAndLayerIdRenderHelper.js";import{Renderer as B}from"../lib/Renderer.js";import{RenderingContext as E}from"../lib/RenderingContext.js";import{RenderingContextOptions as N}from"../lib/RenderingContextOptions.js";import{TextureRepository as G}from"../lib/TextureRepository.js";import{createMarkerTextureRepository as P}from"../materials/markerTextureRepository.js";import{createStippleTextureRepository as z}from"../materials/stippleTextureRepository.js";import{WaterTextureRepository as I}from"../materials/internal/WaterTextureRepository.js";import{getContextCache as V}from"./contextCache.js";import{removeLoadedShaderModules as X}from"./renderUtils.js";import{ScreenshotManager as Q,ScreenshotContext as J}from"./ScreenshotManager.js";import{contextCache as K}from"./testUtils.js";import{noBudget as Y}from"../../../support/Scheduler.js";import{checkWebGLError as Z}from"../../../webgl/checkWebGLError.js";let $=class extends t{constructor(e,t){super(e),this.olidRenderHelper=A()?new H:null,this.waterTextures=new I,this._needsUpdate=!0,this._needsRender=!0,this._idleSuspend=!0,this._needsWaterReflectionUpdate=!1,this._lastAnimationUpdate=0,this.glow=null,this.fog=null,this.test=null,this._initializeContext(t);const{memoryController:r}=t.view.resourceController;this.stippleTextures=z(this._rctx,r),this.markerTextures=P(this._rctx,r),this.techniques=new b(new R(this._rctx,this.stippleTextures,this.waterTextures,this.markerTextures)),this.textures=new G(t),this.addHandles(this.textures.events.on("changed",e=>this.requestRender(e)));const i=new W(this.textures,this.techniques,()=>this.requestRender(),()=>this.requestRender());this.compositingHelper=new F(this._rctx,this.techniques),this.renderer=new B(t,i,this.techniques,this._rctx,this.compositingHelper,e=>this.requestRender(e)),this.addHandles([a(()=>t.view.ready,()=>this._createRenderNodes(),h),d(()=>this.waterTextures.updating,()=>this.requestRender(),h),d(()=>t.view.qualityProfile,e=>this.renderer?.updateRenderFeatures(e),l)]);const s={renderScene:(e,t,r,i)=>this.renderer.render(e,t,r,i),requestRenderScene:e=>this.requestRender(e),prepareOverlay:()=>t.options.screenshot.prepareOverlay(),renderOverlay:(e,r,i)=>t.options.screenshot.renderOverlay(e,r,i)};this._screenshotManager=new Q(this._rctx,s,e=>t.view.overlayManager.updateOverlays(Y,e.camera,0)),this._registerFrameTask(t)}destroy(){const e=this.stage?.container;e?.contains(this._canvas)&&e.removeChild(this._canvas),this._frameTask=n(this._frameTask),this.techniques.destroy(),this._componentObjectCollection=o(this._componentObjectCollection),this._set("componentObjectCollection",null),this._screenshotManager.destroy(),this.renderer.destroy(),this.textures.destroy(),this.waterTextures.destroy(),this.markerTextures.destroy(),this.stippleTextures.destroy(),this._canvas=null,this._rctx=o(this._rctx),this.test?.destroy()}_createRenderNodes(){const{view:e,viewingMode:t}=this.stage;new k({view:e}),f(e.spatialReference)||(2===t?(new x({view:e}),this.glow=new O({view:e})):g(e.spatialReference)?(new j({view:e}),this.glow=new O({view:e})):(new w({view:e}),new _({view:e}),this.glow=new O({view:e}),new T({view:e}),this.fog=new v({view:e}))),new D({view:e,isEnabled:()=>this.renderer.hasSSAO}),new L({view:e,isEnabled:()=>this.renderer.hasSMAA}),new M({view:e}),new q({view:e}),new U({view:e,viewingMode:t}),new S({view:e}),A()&&new C({view:e})}requestRender(e=1){switch(e){case 2:this.view.state.fading=!0;case 1:this._needsUpdate=!0;case 0:this._needsRender=!0}}get updating(){return this._needsUpdate||this._needsWaterReflectionUpdate||this.renderer.updating||this.textures.updating||this.waterTextures.updating}setIdleSuspend(e){this._idleSuspend!==e&&(this._idleSuspend=e,this.requestRender())}get renderingContext(){return this._rctx}get capabilities(){return this._rctx.capabilities}get canvas(){return this._canvas}takeScreenshot(e){return this._screenshotManager.takeScreenshot(r(e))}getAlpha(){return!!this._rctx.contextAttributes.alpha}getMinimalDepthForArea(e,t,r,s,n,o=n){const a=s.constrainWindowSize(t,r,n*s.pixelRatio,o*s.pixelRatio),h=this._ensureLinearDepthArrayBuffer(a);this.renderer.readMainDepth(a,h);const d=(e,t,r)=>i(t,e)*(r[1]-r[0])+r[0];let l=Number.MAX_VALUE;for(let i=0;i<a[2]*a[3];i++){const e=d(4*i,h,s.nearFar);l>e&&e!==s.nearFar[0]&&e!==s.nearFar[1]&&(l=e)}if(e){const i=e.pickDepth(t*s.pixelRatio,r*s.pixelRatio,s);null!=i&&l>i&&i!==s.nearFar[0]&&i!==s.nearFar[1]&&(l=i)}return l===Number.MAX_VALUE?void 0:l}_ensureLinearDepthArrayBuffer(e){const t=4*e[2]*e[3];return(null==this._tmpDepthBuffer||this._tmpDepthBuffer.byteLength<t)&&(this._tmpDepthBuffer=new Uint8Array(t)),this._tmpDepthBuffer}async reloadShaders(){X(),await this.techniques.reloadAll(),this.renderer.overlay?.reloadShaders(),this.requestRender()}_registerFrameTask(e){const t=e.view.state;let r=!1,i=0,s=!1;const n={preRender:({time:s})=>{r=this.updating,i=this._needsUpdate?1:0,this._needsRender&&this.renderer.updateSceneDepthRange(t.camera),e.commitSyncLayers(),s=this.test?.time??s;const n=p(s-this._lastAnimationUpdate);this.view.state.animationsEnabled&&(n>this.renderer.animationTimestep||r||this._needsRender)&&(this.renderer.updateAnimation(t,s)&&this.requestRender(0),this._lastAnimationUpdate=s)},render:({time:e})=>{if((this._needsRender||!this._idleSuspend||!this.renderer.isCameraFinal||this._needsWaterReflectionUpdate)&&t.camera.fullWidth>0&&t.camera.fullHeight>0){const r=this._needsUpdate&&this._idleSuspend&&this.renderer.isCameraFinal;this._needsRender=!1,this._needsUpdate=!1,this._needsWaterReflectionUpdate=!1,e=this.test?.time??e,this.renderer.render(t,e,0),s=!0,r&&this.renderer.hasReflections&&(this.requestRender(0),this._needsWaterReflectionUpdate=!0)}},update:({time:e})=>{this.view.state.animationsEnabled&&this.textures.update();const r=new J(t,this.renderer.fboCache);e=this.test?.time??e,this._screenshotManager.update(r,e)},finish:()=>{s&&(this.renderer.finish(2===t.mode?i:1),s=!1)}};this._frameTask=c(n)}_initializeContext(e){const{options:t}=e,r=t.canvas??document.createElement("canvas");r.setAttribute("style","width: 100%; height:100%; display:block;"),this._canvas=r;const i={alpha:t.alpha||!1,premultipliedAlpha:!0,antialias:!1,depth:!0,stencil:t.stencil??!0,powerPreference:"high-performance",preserveDrawingBuffer:t.preserveDrawingBuffer??!1},n=r.getContext("webgl2",i);if(null==n)return void s.getLogger(this).error("A WebGL2 context could not be created.");Z(n,!0),this._rctx=ee(n,e),this._loadShaderOnlyExtensions(),!t.alpha&&this._rctx.contextAttributes.alpha&&s.getLogger(this).error("WebGL context has alpha channel even though no alpha channel was requested");const{container:o}=e;!this._rctx.contextAttributes.alpha&&has("safari")>=11&&(o.style.backgroundColor="black"),o.contains(r)||o.appendChild(r)}_loadShaderOnlyExtensions(){this._rctx.capabilities.enable("textureFloatLinear")}get _viewingMode(){return this.stage.viewingMode}get stage(){return this.view.stage}getObjectAndLayerIdColor(e){return this.olidRenderHelper?.getObjectAndLayerIdColor(e)}get componentObjectCollection(){return null==this._componentObjectCollection&&(this._componentObjectCollection=new y(this.renderer.renderPassManager,this._viewingMode,this.view.spatialReference.isWebMercator)),this._componentObjectCollection}set componentObjectCollection(e){this._componentObjectCollection=e}updateQualitySettings(e){null!=this.test?.time&&null!=e.fadeDuration&&(this.test.savedFadeDuration=e.fadeDuration,e.fadeDuration=p(0)),this._rctx.updateOptions({maxPreferredTexturePixels:this.view.qualitySettings.maxTexturePixels})}};function ee(e,t){const r=new N(t);if(K.enabled){let t=te.get(e);return 1===t?.refCount?(t.configure(r),t.ref(),t):(t=new E(e,r),te.set(e,t),t.ref(),t)}return new E(e,r)}e([m({type:Boolean,readOnly:!0})],$.prototype,"updating",null),e([m({constructOnly:!0})],$.prototype,"view",void 0),e([m()],$.prototype,"componentObjectCollection",null),e([m()],$.prototype,"_componentObjectCollection",void 0),e([m()],$.prototype,"_needsUpdate",void 0),e([m()],$.prototype,"_needsWaterReflectionUpdate",void 0),$=e([u("esri.views.3d.webgl-engine.parts.RenderView")],$);const te=V();export{$ as RenderView};
|
|
2
|
+
import{__decorate as e}from"tslib";import t from"../../../../core/Accessor.js";import{toConst as r}from"../../../../core/compilerUtils.js";import{unpackFloatRGBA as s}from"../../../../core/floatRGBA.js";import has from"../../../../core/has.js";import i from"../../../../core/Logger.js";import{removeMaybe as n,destroyMaybe as o}from"../../../../core/maybe.js";import{when as a,initial as h,watch as d,syncAndInitial as l}from"../../../../core/reactiveUtils.js";import{addFrameTask as c}from"../../../../core/scheduling.js";import{Milliseconds as p}from"../../../../core/time.js";import{property as m,subclass as u}from"../../../../core/accessorSupport/decorators.js";import{isMoon as f,isMars as g}from"../../../../geometry/ellipsoidUtils.js";import{ChapmanAtmosphere as w}from"../../environment/ChapmanAtmosphere.js";import{CloudsComposition as _}from"../../environment/CloudsComposition.js";import{Fog as v}from"../../environment/Fog.js";import{LocalAtmosphere as x}from"../../environment/LocalAtmosphere.js";import{MarsAtmosphere as j}from"../../environment/MarsAtmosphere.js";import{ComponentObjectCollection as y}from"../collections/Component/ComponentObjectCollection.js";import{ShaderTechniqueConstructionContext as R}from"../core/shaderTechnique/ShaderTechniqueConstructionContext.js";import{ShaderTechniqueRepository as b}from"../core/shaderTechnique/ShaderTechniqueRepository.js";import{ObjectAndLayerIDRenderNode as A}from"../effects/geometry/ObjectAndLayerIDRenderNode.js";import{olidEnabled as C}from"../effects/geometry/olidUtils.js";import{RenderOccludedRenderNode as S}from"../effects/geometry/RenderOccludedRenderNode.js";import{GlowRenderNode as O}from"../effects/glow/GlowRenderNode.js";import{Haze as T}from"../effects/haze/Haze.js";import{Highlight as U}from"../effects/highlight/Highlight.js";import{ShadowHighlight as q}from"../effects/highlight/ShadowHighlight.js";import{Magnifier as M}from"../effects/magnifier/Magnifier.js";import{SMAA as L}from"../effects/smaa/SMAA.js";import{SSAO as D}from"../effects/ssao/SSAO.js";import{Stars as k}from"../effects/stars/Stars.js";import{GLMaterialRepository as F}from"../lib/GLMaterialRepository.js";import{ObjectAndLayerIdRenderHelper as W}from"../lib/ObjectAndLayerIdRenderHelper.js";import{Renderer as B}from"../lib/Renderer.js";import{RenderingContext as E}from"../lib/RenderingContext.js";import{RenderingContextOptions as H}from"../lib/RenderingContextOptions.js";import{TextureRepository as N}from"../lib/TextureRepository.js";import{createMarkerTextureRepository as G}from"../materials/markerTextureRepository.js";import{createStippleTextureRepository as P}from"../materials/stippleTextureRepository.js";import{WaterTextureRepository as z}from"../materials/internal/WaterTextureRepository.js";import{getContextCache as I}from"./contextCache.js";import{removeLoadedShaderModules as V}from"./renderUtils.js";import{ScreenshotManager as X,ScreenshotContext as Q}from"./ScreenshotManager.js";import{contextCache as J}from"./testUtils.js";import{noBudget as K}from"../../../support/Scheduler.js";import{checkWebGLError as Y}from"../../../webgl/checkWebGLError.js";let Z=class extends t{constructor(e,t){super(e),this.olidRenderHelper=C()?new W:null,this.waterTextures=new z,this._needsUpdate=!0,this._needsRender=!0,this._idleSuspend=!0,this._needsWaterReflectionUpdate=!1,this._lastAnimationUpdate=0,this.glow=null,this.fog=null,this.test=null,this._initializeContext(t);const{memoryController:r}=t.view.resourceController;this.stippleTextures=P(this._rctx,r),this.markerTextures=G(this._rctx,r),this.techniques=new b(new R(this._rctx,this.stippleTextures,this.waterTextures,this.markerTextures)),this.textures=new N(t),this.addHandles(this.textures.events.on("changed",e=>this.requestRender(e)));const s=new F(this.textures,this.techniques,()=>this.requestRender(),()=>this.requestRender());this.renderer=new B(t,s,this.techniques,this._rctx,e=>this.requestRender(e)),this.addHandles([a(()=>t.view.ready,()=>this._createRenderNodes(),h),d(()=>this.waterTextures.updating,()=>this.requestRender(),h),d(()=>t.view.qualityProfile,e=>this.renderer?.updateRenderFeatures(e),l)]);const i={renderScene:(e,t,r,s)=>this.renderer.render(e,t,r,s),requestRenderScene:e=>this.requestRender(e),prepareOverlay:()=>t.options.screenshot.prepareOverlay(),renderOverlay:(e,r,s)=>t.options.screenshot.renderOverlay(e,r,s)};this._screenshotManager=new X(this._rctx,i,e=>t.view.overlayManager.updateOverlays(K,e.camera,0)),this._registerFrameTask(t)}destroy(){const e=this.stage?.container;e?.contains(this._canvas)&&e.removeChild(this._canvas),this._frameTask=n(this._frameTask),this.techniques.destroy(),this._componentObjectCollection=o(this._componentObjectCollection),this._set("componentObjectCollection",null),this._screenshotManager.destroy(),this.renderer.destroy(),this.textures.destroy(),this.waterTextures.destroy(),this.markerTextures.destroy(),this.stippleTextures.destroy(),this._canvas=null,this._rctx=o(this._rctx),this.test?.destroy()}_createRenderNodes(){const{view:e,viewingMode:t}=this.stage;new k({view:e}),f(e.spatialReference)||(2===t?(new x({view:e}),this.glow=new O({view:e})):g(e.spatialReference)?(new j({view:e}),this.glow=new O({view:e})):(new w({view:e}),new _({view:e}),this.glow=new O({view:e}),new T({view:e}),this.fog=new v({view:e}))),new D({view:e,isEnabled:()=>this.renderer.hasSSAO}),new L({view:e,isEnabled:()=>this.renderer.hasSMAA}),new M({view:e}),new U({view:e}),new q({view:e,viewingMode:t}),new S({view:e}),C()&&new A({view:e})}requestRender(e=1){switch(e){case 2:this.view.state.fading=!0;case 1:this._needsUpdate=!0;case 0:this._needsRender=!0}}get updating(){return this._needsUpdate||this._needsWaterReflectionUpdate||this.renderer.updating||this.textures.updating||this.waterTextures.updating}setIdleSuspend(e){this._idleSuspend!==e&&(this._idleSuspend=e,this.requestRender())}get renderingContext(){return this._rctx}get capabilities(){return this._rctx.capabilities}get canvas(){return this._canvas}takeScreenshot(e){return this._screenshotManager.takeScreenshot(r(e))}getAlpha(){return!!this._rctx.contextAttributes.alpha}getMinimalDepthForArea(e,t,r,i,n,o=n){const a=i.constrainWindowSize(t,r,n*i.pixelRatio,o*i.pixelRatio),h=this._ensureLinearDepthArrayBuffer(a);this.renderer.readMainDepth(a,h);const d=(e,t,r)=>s(t,e)*(r[1]-r[0])+r[0];let l=Number.MAX_VALUE;for(let s=0;s<a[2]*a[3];s++){const e=d(4*s,h,i.nearFar);l>e&&e!==i.nearFar[0]&&e!==i.nearFar[1]&&(l=e)}if(e){const s=e.pickDepth(t*i.pixelRatio,r*i.pixelRatio,i);null!=s&&l>s&&s!==i.nearFar[0]&&s!==i.nearFar[1]&&(l=s)}return l===Number.MAX_VALUE?void 0:l}_ensureLinearDepthArrayBuffer(e){const t=4*e[2]*e[3];return(null==this._tmpDepthBuffer||this._tmpDepthBuffer.byteLength<t)&&(this._tmpDepthBuffer=new Uint8Array(t)),this._tmpDepthBuffer}async reloadShaders(){V(),await this.techniques.reloadAll(),this.renderer.overlay?.reloadShaders(),this.requestRender()}_registerFrameTask(e){const t=e.view.state;let r=!1,s=0,i=!1;const n={preRender:({time:i})=>{r=this.updating,s=this._needsUpdate?1:0,this._needsRender&&this.renderer.updateSceneDepthRange(t.camera),e.commitSyncLayers(),i=this.test?.time??i;const n=p(i-this._lastAnimationUpdate);this.view.state.animationsEnabled&&(n>this.renderer.animationTimestep||r||this._needsRender)&&(this.renderer.updateAnimation(t,i)&&this.requestRender(0),this._lastAnimationUpdate=i)},render:({time:e})=>{if((this._needsRender||!this._idleSuspend||!this.renderer.isCameraFinal||this._needsWaterReflectionUpdate)&&t.camera.fullWidth>0&&t.camera.fullHeight>0){const r=this._needsUpdate&&this._idleSuspend&&this.renderer.isCameraFinal;this._needsRender=!1,this._needsUpdate=!1,this._needsWaterReflectionUpdate=!1,e=this.test?.time??e,this.renderer.render(t,e,0),i=!0,r&&this.renderer.hasReflections&&(this.requestRender(0),this._needsWaterReflectionUpdate=!0)}},update:({time:e})=>{this.view.state.animationsEnabled&&this.textures.update();const r=new Q(t,this.renderer.fboCache);e=this.test?.time??e,this._screenshotManager.update(r,e)},finish:()=>{i&&(this.renderer.finish(2===t.mode?s:1),i=!1)}};this._frameTask=c(n)}_initializeContext(e){const{options:t}=e,r=t.canvas??document.createElement("canvas");r.setAttribute("style","width: 100%; height:100%; display:block;"),this._canvas=r;const s={alpha:t.alpha||!1,premultipliedAlpha:!0,antialias:!1,depth:!0,stencil:t.stencil??!0,powerPreference:"high-performance",preserveDrawingBuffer:t.preserveDrawingBuffer??!1},n=r.getContext("webgl2",s);if(null==n)return void i.getLogger(this).error("A WebGL2 context could not be created.");Y(n,!0),this._rctx=$(n,e),this._loadShaderOnlyExtensions(),!t.alpha&&this._rctx.contextAttributes.alpha&&i.getLogger(this).error("WebGL context has alpha channel even though no alpha channel was requested");const{container:o}=e;!this._rctx.contextAttributes.alpha&&has("safari")>=11&&(o.style.backgroundColor="black"),o.contains(r)||o.appendChild(r)}_loadShaderOnlyExtensions(){this._rctx.capabilities.enable("textureFloatLinear")}get _viewingMode(){return this.stage.viewingMode}get stage(){return this.view.stage}getObjectAndLayerIdColor(e){return this.olidRenderHelper?.getObjectAndLayerIdColor(e)}get componentObjectCollection(){return this._componentObjectCollection??=new y(this.renderer.renderPassManager,this._viewingMode,this.view.spatialReference.isWebMercator),this._componentObjectCollection}updateQualitySettings(e){null!=this.test?.time&&null!=e.fadeDuration&&(this.test.savedFadeDuration=e.fadeDuration,e.fadeDuration=p(0)),this._rctx.updateOptions({maxPreferredTexturePixels:this.view.qualitySettings.maxTexturePixels})}};function $(e,t){const r=new H(t);if(J.enabled){let t=ee.get(e);return 1===t?.refCount?(t.configure(r),t.ref(),t):(t=new E(e,r),ee.set(e,t),t.ref(),t)}return new E(e,r)}e([m({type:Boolean,readOnly:!0})],Z.prototype,"updating",null),e([m({constructOnly:!0})],Z.prototype,"view",void 0),e([m()],Z.prototype,"componentObjectCollection",null),e([m()],Z.prototype,"_componentObjectCollection",void 0),e([m()],Z.prototype,"_needsUpdate",void 0),e([m()],Z.prototype,"_needsWaterReflectionUpdate",void 0),Z=e([u("esri.views.3d.webgl-engine.parts.RenderView")],Z);const ee=I();export{Z as RenderView};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
|
|
2
|
-
import{__decorate as e}from"tslib";import{subclass as r}from"../../../../core/accessorSupport/decorators.js";import{ReloadableShader as o}from"../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as s}from"../core/shaderTechnique/ShaderTechnique.js";import{a as i}from"../../../../chunks/AtmosphereCompositing.glsl.js";import{makePipelineState as t,defaultColorWrite as n,simpleBlendingParams as m}from"../../../webgl/renderState.js";let p=class extends s{constructor(){super(...arguments),this.shader=new o(i,()=>import("./AtmosphereCompositing.glsl.js"))}initializePipeline(){return t({blending:m(770,771),depthTest:{func:519},colorWrite:n})}};p=e([r("esri.views.3d.webgl-engine.shaders.AtmosphereCompositingTechnique")],p);export{p as AtmosphereCompositingTechnique};
|
|
2
|
+
import{__decorate as e}from"tslib";import{subclass as r}from"../../../../core/accessorSupport/decorators.js";import{ReloadableShader as o}from"../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as s}from"../core/shaderTechnique/ShaderTechnique.js";import{a as i}from"../../../../chunks/AtmosphereCompositing.glsl.js";import{makePipelineState as t,defaultColorWrite as n,simpleBlendingParams as m}from"../../../webgl/renderState.js";let p=class extends s{constructor(){super(...arguments),this.shader=new o(i,()=>import("./AtmosphereCompositing.glsl.js")),this.ignoreUnused=!0}initializePipeline(){return t({blending:m(770,771),depthTest:{func:519},colorWrite:n})}};p=e([r("esri.views.3d.webgl-engine.shaders.AtmosphereCompositingTechnique")],p);export{p as AtmosphereCompositingTechnique};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
|
|
2
|
-
import{__decorate as e}from"tslib";import{subclass as r}from"../../../../core/accessorSupport/decorators.js";import{ZEROS as t}from"../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{glLayout as o}from"../../support/buffer/glUtil.js";import{newLayout as i}from"../../support/buffer/InterleavedLayout.js";import{isColor as s}from"../core/shaderLibrary/ShaderOutput.js";import{ReloadableShader as l}from"../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as
|
|
2
|
+
import{__decorate as e}from"tslib";import{subclass as r}from"../../../../core/accessorSupport/decorators.js";import{ZEROS as t}from"../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{glLayout as o}from"../../support/buffer/glUtil.js";import{newLayout as i}from"../../support/buffer/InterleavedLayout.js";import{isColor as s}from"../core/shaderLibrary/ShaderOutput.js";import{ReloadableShader as l}from"../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as n,depthOnlyOutputBuffersOr as a}from"../core/shaderTechnique/ShaderTechnique.js";import{olidEnabled as c}from"../effects/geometry/olidUtils.js";import{oitPolygonOffset as p,drawBuffers as u,depthWrite as m,depthTest as f,blending as d}from"../lib/OrderIndependentTransparency.js";import{stencilToolMaskBaseParams as h,stencilBaseAllZerosParams as g,stencilWriteMaskOn as j}from"../lib/StencilUtils.js";import{VisualVariablePassParameters as b}from"../materials/VisualVariablePassParameters.js";import{C as P}from"../../../../chunks/ColorMaterial.glsl.js";import{makePipelineState as S,defaultColorWrite as C,cullingParams as T}from"../../../webgl/renderState.js";class v extends b{constructor(){super(...arguments),this.color=t}}let y=class extends n{constructor(e,r){super(e,r,o(x(r))),this.shader=new l(P,()=>import("./ColorMaterial.glsl.js")),this.ignoreUnused=!0}_createPipeline(e,r){const{oitPass:t,output:o,hasEmission:i,transparent:l,cullFace:n,draped:c,hasOccludees:b,polygonOffset:P}=e,v=0===t;return S({blending:s(o)&&l?d(t):null,culling:T(n),depthTest:c?null:f(t),depthWrite:m(e),drawBuffers:a(o,u(t,i)),colorWrite:C,stencilWrite:b?j:null,stencilTest:b?r?h:g:null,polygonOffset:v?P?w:null:p(e)})}initializePipeline(e){return this._occludeePipelineState=this._createPipeline(e,!0),this._createPipeline(e,!1)}getPipeline(e,r){return r?this._occludeePipelineState:super.getPipeline(e)}};y=e([r("esri.views.3d.webgl-engine.shaders.ColorMaterialTechnique")],y);const w={factor:1,units:1};function x(e){const r=i().vec3f("position");return c()&&r.vec4u8("olidColor"),e.hasVVColor?r.f32("colorFeatureAttribute"):e.hasVertexColors&&r.vec4u8("color",{glNormalized:!0}),r.freeze()}export{v as ColorMaterialPassParameters,y as ColorMaterialTechnique,x as getLayout};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
|
|
2
|
-
import{__decorate as e}from"tslib";import{subclass as r}from"../../../../core/accessorSupport/decorators.js";import{ReloadableShader as s}from"../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as
|
|
2
|
+
import{__decorate as e}from"tslib";import{subclass as r}from"../../../../core/accessorSupport/decorators.js";import{ReloadableShader as s}from"../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as i}from"../core/shaderTechnique/ShaderTechnique.js";import{drawBuffers as o}from"../lib/OrderIndependentTransparency.js";import{a as t}from"../../../../chunks/Compositing.glsl.js";import{makePipelineState as n,defaultColorWrite as a,premultipliedAlpha as c,unpremultipliedAlphaToPremultipliedAlpha as d}from"../../../webgl/renderState.js";let l=class extends i{constructor(){super(...arguments),this.shader=new s(t,()=>import("./Compositing.glsl.js")),this.ignoreUnused=!0}initializePipeline(e){const{blitMode:r,blendEmissive:s}=e;switch(r){case 0:case 3:return n({colorWrite:a,drawBuffers:o(0,s)});case 1:return n({blending:d,colorWrite:a,drawBuffers:o(0,s)});default:return n({blending:c,colorWrite:a,drawBuffers:o(0,s)})}}};l=e([r("esri.views.3d.webgl-engine.shaders.CompositingTechnique")],l);export{l as CompositingTechnique};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
|
|
2
|
-
import{__decorate as
|
|
2
|
+
import{__decorate as e}from"tslib";import{ShaderTechniqueConfiguration as o,parameter as i}from"../core/shaderTechnique/ShaderTechniqueConfiguration.js";class t extends o{constructor(){super(...arguments),this.blitMode=0,this.blendEmissive=!1}}e([i({count:4})],t.prototype,"blitMode",void 0),e([i()],t.prototype,"blendEmissive",void 0);export{t as CompositingTechniqueConfiguration};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
|
|
2
|
-
import{__decorate as e}from"tslib";import{subclass as r}from"../../../../core/accessorSupport/decorators.js";import{ReloadableShader as o}from"../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as i}from"../core/shaderTechnique/ShaderTechnique.js";import{a as s}from"../../../../chunks/CutFillComposition.glsl.js";import{makePipelineState as t,defaultColorWrite as l}from"../../../webgl/renderState.js";let n=class extends i{constructor(){super(...arguments),this.shader=new o(s,()=>import("./CutFillComposition.glsl.js"))}initializePipeline(){return t({colorWrite:l})}};n=e([r("esri.views.3d.webgl-engine.shaders.CutFillCompositionTechnique")],n);export{n as CutFillCompositionTechnique};
|
|
2
|
+
import{__decorate as e}from"tslib";import{subclass as r}from"../../../../core/accessorSupport/decorators.js";import{ReloadableShader as o}from"../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as i}from"../core/shaderTechnique/ShaderTechnique.js";import{a as s}from"../../../../chunks/CutFillComposition.glsl.js";import{makePipelineState as t,defaultColorWrite as l}from"../../../webgl/renderState.js";let n=class extends i{constructor(){super(...arguments),this.shader=new o(s,()=>import("./CutFillComposition.glsl.js")),this.ignoreUnused=!0}initializePipeline(){return t({colorWrite:l})}};n=e([r("esri.views.3d.webgl-engine.shaders.CutFillCompositionTechnique")],n);export{n as CutFillCompositionTechnique};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
|
|
2
|
-
import{__decorate as e}from"tslib";import{subclass as r}from"../../../../core/accessorSupport/decorators.js";import{ReloadableShader as s}from"../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as
|
|
2
|
+
import{__decorate as e}from"tslib";import{subclass as r}from"../../../../core/accessorSupport/decorators.js";import{ReloadableShader as s}from"../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as i}from"../core/shaderTechnique/ShaderTechnique.js";import{a as t}from"../../../../chunks/CutFillDepth.glsl.js";import{makePipelineState as o,defaultColorWrite as l}from"../../../webgl/renderState.js";let h=class extends i{constructor(){super(...arguments),this.shader=new s(t,()=>import("./CutFillDepth.glsl.js")),this.ignoreUnused=!0}initializePipeline(){return o({colorWrite:l})}};h=e([r("esri.views.3d.webgl-engine.shaders.CutFillDepthTechnique")],h);export{h as CutFillDepthTechnique};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
|
|
2
|
-
import{__decorate as e}from"tslib";import{subclass as r}from"../../../../core/accessorSupport/decorators.js";import{ReloadableShader as s}from"../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as t}from"../core/shaderTechnique/ShaderTechnique.js";import{Pos3 as
|
|
2
|
+
import{__decorate as e}from"tslib";import{subclass as r}from"../../../../core/accessorSupport/decorators.js";import{ReloadableShader as s}from"../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as t}from"../core/shaderTechnique/ShaderTechnique.js";import{Pos3 as i}from"../lib/DefaultVertexBufferLayouts.js";import{a as o}from"../../../../chunks/CutFillMask.glsl.js";import{makePipelineState as l,defaultColorWrite as a}from"../../../webgl/renderState.js";let n=class extends t{constructor(e,r){super(e,r,i),this.shader=new s(o,()=>import("./CutFillMask.glsl.js")),this.ignoreUnused=!0}initializePipeline(){return l({colorWrite:a,depthTest:{func:515}})}};n=e([r("esri.views.3d.webgl-engine.shaders.CutFillMaskTechnique")],n);export{n as CutFillMaskTechnique};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
|
|
2
|
-
import{__decorate as e}from"tslib";import{subclass as t}from"../../../../core/accessorSupport/decorators.js";import{ZEROS as i,freeze as s,create as r}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{fromValues as o}from"../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{glLayout as l}from"../../support/buffer/glUtil.js";import{newLayout as n}from"../../support/buffer/InterleavedLayout.js";import{isColor as a}from"../core/shaderLibrary/ShaderOutput.js";import{VertexNormalPassParameters as c,VertexNormalDrawParameters as h}from"../core/shaderLibrary/attributes/VertexNormal.glsl.js";import{ReloadableShader as u}from"../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as m,depthOnlyOutputBuffersOr as p}from"../core/shaderTechnique/ShaderTechnique.js";import{olidEnabled as d}from"../effects/geometry/olidUtils.js";import{oitPolygonOffset as f,depthWrite as v,drawBuffers as b,depthTest as g,blending as S}from"../lib/OrderIndependentTransparency.js";import{stencilToolMaskBaseParams as y,stencilBaseAllZerosParams as j,stencilWriteMaskOn as x}from"../lib/StencilUtils.js";import{getRenderInstanceDataLayout as T}from"../lib/lodRendering/RenderInstanceData.js";import{advancedMRRFactors as C}from"../materials/pbrUtils.js";import{D as P}from"../../../../chunks/DefaultMaterial.glsl.js";import{makePipelineState as O,cullingParams as D,defaultColorWrite as w}from"../../../webgl/renderState.js";import{alphaCutoff as V}from"../../../../webscene/support/AlphaCutoff.js";class A extends c{constructor(){super(...arguments),this.isSchematic=!1,this.usePBR=!1,this.mrrFactors=C,this.hasVertexColors=!1,this.hasSymbolColors=!1,this.doubleSided=!1,this.doubleSidedType="normal",this.cullFace=2,this.instanced=!1,this.instancedFeatureAttribute=!1,this.instancedColor=!1,this.instanceColorEncodesAlphaIgnore=!1,this.emissiveStrengthFromSymbol=0,this.emissiveStrengthKHR=1,this.emissiveSource=1,this.emissiveBaseColor=i,this.instancedDoublePrecision=!1,this.normalType=0,this.receiveShadows=!0,this.receiveAmbientOcclusion=!0,this.castShadows=!0,this.ambient=s(.2,.2,.2),this.diffuse=s(.8,.8,.8),this.externalColor=o(1,1,1,1),this.colorMixMode="multiply",this.opacity=1,this.layerOpacity=1,this.origin=r(),this.hasSlicePlane=!1,this.offsetTransparentBackfaces=!1,this.vvSize=null,this.vvColor=null,this.vvOpacity=null,this.vvSymbolAnchor=null,this.vvSymbolRotationMatrix=null,this.modelTransformation=null,this.drivenOpacity=!1,this.writeDepth=!0,this.customDepthTest=0,this.textureAlphaMode=0,this.textureAlphaCutoff=V,this.textureAlphaPremultiplied=!1,this.renderOccluded=1,this.testsTransparentRenderOrder=0,this.isDecoration=!1}get hasVVSize(){return!!this.vvSize}get hasVVColor(){return!!this.vvColor}get hasVVOpacity(){return!!this.vvOpacity}}class M extends h{constructor(){super(...arguments),this.origin=r(),this.slicePlaneLocalOrigin=this.origin}}let R=class extends m{constructor(e,t){let i=l(k(t));t.instanced&&t.instancedDoublePrecision&&(i=i.concat(l(T(t)))),super(e,t,i),this.shader=new u(P,()=>import("./DefaultMaterial.glsl.js"))}_makePipeline(e,t){const{oitPass:i,output:s,hasEmission:r,transparent:o,cullFace:l,customDepthTest:n,hasOccludees:c}=e;return O({blending:a(s)&&o?S(i):null,culling:F(e)?D(l):null,depthTest:g(i,z(n)),depthWrite:v(e),drawBuffers:p(s,b(i,r)),colorWrite:w,stencilWrite:c?x:null,stencilTest:c?t?y:j:null,polygonOffset:f(e)})}initializePipeline(e){return this._occludeePipelineState=this._makePipeline(e,!0),this._makePipeline(e,!1)}getPipeline(e,t){return t?this._occludeePipelineState:super.getPipeline(e)}};function z(e){switch(e){case 1:return 515;case 0:case 3:return 513;case 2:return 516}}function F(e){return 0!==e.cullFace||!e.hasSlicePlane&&(!e.transparent&&!e.doubleSidedMode)}function k(e){const t=n().vec3f("position");return 1===e.normalType?t.vec2i16("normalCompressed",{glNormalized:!0}):t.vec3f("normal"),e.hasVertexTangents&&t.vec4f("tangent"),e.hasTextures&&t.vec2f16("uv0"),e.hasVertexColors&&t.vec4u8("color",{glNormalized:!0}),e.hasSymbolColors&&t.vec4u8("symbolColor"),!e.instanced&&d()&&t.vec4u8("olidColor"),t}R=e([t("esri.views.3d.webgl-engine.shaders.DefaultMaterialTechnique")],R);export{M as DefaultMaterialDrawParameters,A as DefaultMaterialPassParameters,R as DefaultMaterialTechnique,k as getLayout};
|
|
2
|
+
import{__decorate as e}from"tslib";import{subclass as t}from"../../../../core/accessorSupport/decorators.js";import{ZEROS as i,freeze as s,create as r}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{fromValues as o}from"../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{glLayout as l}from"../../support/buffer/glUtil.js";import{newLayout as n}from"../../support/buffer/InterleavedLayout.js";import{isColor as a}from"../core/shaderLibrary/ShaderOutput.js";import{VertexNormalPassParameters as c,VertexNormalDrawParameters as h}from"../core/shaderLibrary/attributes/VertexNormal.glsl.js";import{ReloadableShader as u}from"../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as m,depthOnlyOutputBuffersOr as p}from"../core/shaderTechnique/ShaderTechnique.js";import{olidEnabled as d}from"../effects/geometry/olidUtils.js";import{oitPolygonOffset as f,depthWrite as v,drawBuffers as b,depthTest as g,blending as S}from"../lib/OrderIndependentTransparency.js";import{stencilToolMaskBaseParams as y,stencilBaseAllZerosParams as j,stencilWriteMaskOn as x}from"../lib/StencilUtils.js";import{getRenderInstanceDataLayout as T}from"../lib/lodRendering/RenderInstanceData.js";import{advancedMRRFactors as C}from"../materials/pbrUtils.js";import{D as P}from"../../../../chunks/DefaultMaterial.glsl.js";import{makePipelineState as O,cullingParams as D,defaultColorWrite as w}from"../../../webgl/renderState.js";import{alphaCutoff as V}from"../../../../webscene/support/AlphaCutoff.js";class A extends c{constructor(){super(...arguments),this.isSchematic=!1,this.usePBR=!1,this.mrrFactors=C,this.hasVertexColors=!1,this.hasSymbolColors=!1,this.doubleSided=!1,this.doubleSidedType="normal",this.cullFace=2,this.instanced=!1,this.instancedFeatureAttribute=!1,this.instancedColor=!1,this.instanceColorEncodesAlphaIgnore=!1,this.emissiveStrengthFromSymbol=0,this.emissiveStrengthKHR=1,this.emissiveSource=1,this.emissiveBaseColor=i,this.instancedDoublePrecision=!1,this.normalType=0,this.receiveShadows=!0,this.receiveAmbientOcclusion=!0,this.castShadows=!0,this.ambient=s(.2,.2,.2),this.diffuse=s(.8,.8,.8),this.externalColor=o(1,1,1,1),this.colorMixMode="multiply",this.opacity=1,this.layerOpacity=1,this.origin=r(),this.hasSlicePlane=!1,this.offsetTransparentBackfaces=!1,this.vvSize=null,this.vvColor=null,this.vvOpacity=null,this.vvSymbolAnchor=null,this.vvSymbolRotationMatrix=null,this.modelTransformation=null,this.drivenOpacity=!1,this.writeDepth=!0,this.customDepthTest=0,this.textureAlphaMode=0,this.textureAlphaCutoff=V,this.textureAlphaPremultiplied=!1,this.renderOccluded=1,this.testsTransparentRenderOrder=0,this.isDecoration=!1}get hasVVSize(){return!!this.vvSize}get hasVVColor(){return!!this.vvColor}get hasVVOpacity(){return!!this.vvOpacity}}class M extends h{constructor(){super(...arguments),this.origin=r(),this.slicePlaneLocalOrigin=this.origin}}let R=class extends m{constructor(e,t){let i=l(k(t));t.instanced&&t.instancedDoublePrecision&&(i=i.concat(l(T(t)))),super(e,t,i),this.shader=new u(P,()=>import("./DefaultMaterial.glsl.js")),this.ignoreUnused=!0}_makePipeline(e,t){const{oitPass:i,output:s,hasEmission:r,transparent:o,cullFace:l,customDepthTest:n,hasOccludees:c}=e;return O({blending:a(s)&&o?S(i):null,culling:F(e)?D(l):null,depthTest:g(i,z(n)),depthWrite:v(e),drawBuffers:p(s,b(i,r)),colorWrite:w,stencilWrite:c?x:null,stencilTest:c?t?y:j:null,polygonOffset:f(e)})}initializePipeline(e){return this._occludeePipelineState=this._makePipeline(e,!0),this._makePipeline(e,!1)}getPipeline(e,t){return t?this._occludeePipelineState:super.getPipeline(e)}};function z(e){switch(e){case 1:return 515;case 0:case 3:return 513;case 2:return 516}}function F(e){return 0!==e.cullFace||!e.hasSlicePlane&&(!e.transparent&&!e.doubleSidedMode)}function k(e){const t=n().vec3f("position");return 1===e.normalType?t.vec2i16("normalCompressed",{glNormalized:!0}):t.vec3f("normal"),e.hasVertexTangents&&t.vec4f("tangent"),e.hasTextures&&t.vec2f16("uv0"),e.hasVertexColors&&t.vec4u8("color",{glNormalized:!0}),e.hasSymbolColors&&t.vec4u8("symbolColor"),!e.instanced&&d()&&t.vec4u8("olidColor"),t}R=e([t("esri.views.3d.webgl-engine.shaders.DefaultMaterialTechnique")],R);export{M as DefaultMaterialDrawParameters,A as DefaultMaterialPassParameters,R as DefaultMaterialTechnique,k as getLayout};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
|
|
2
|
-
import{__decorate as e}from"tslib";import{subclass as r}from"../../../../core/accessorSupport/decorators.js";import{glLayout as t}from"../../support/buffer/glUtil.js";import{newLayout as o}from"../../support/buffer/InterleavedLayout.js";import{isColor as s}from"../core/shaderLibrary/ShaderOutput.js";import{ReloadableShader as i}from"../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as a}from"../core/shaderTechnique/ShaderTechnique.js";import{olidEnabled as
|
|
2
|
+
import{__decorate as e}from"tslib";import{subclass as r}from"../../../../core/accessorSupport/decorators.js";import{glLayout as t}from"../../support/buffer/glUtil.js";import{newLayout as o}from"../../support/buffer/InterleavedLayout.js";import{isColor as s}from"../core/shaderLibrary/ShaderOutput.js";import{ReloadableShader as i}from"../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as a}from"../core/shaderTechnique/ShaderTechnique.js";import{olidEnabled as n}from"../effects/geometry/olidUtils.js";import{drawBuffers as l,blending as c}from"../lib/OrderIndependentTransparency.js";import{H as f}from"../../../../chunks/HUDMaterial.glsl.js";import{PrimitiveType as u}from"../../../webgl/enums.js";import{makePipelineState as p,defaultColorWrite as m,defaultDepthWrite as d}from"../../../webgl/renderState.js";let h=class extends a{constructor(e,r){super(e,r,t(v).concat(t(b(r)))),this.shader=new i(f,()=>import("./HUDMaterial.glsl.js")),this.ignoreUnused=!0,this.primitiveType=r.occlusionPass?u.POINTS:u.TRIANGLE_STRIP}initializePipeline(e){const{oitPass:r,hasEmission:t,hasPolygonOffset:o,draped:i,output:a,depthTestEnabled:n,occlusionPass:f}=e,u=n&&!i&&!(1===r)&&!f&&!(8===a);return p({blending:s(a)?c(r,!0):null,depthTest:n&&!i?{func:515}:null,depthWrite:u?d:null,drawBuffers:l(r,t),colorWrite:m,polygonOffset:o?g:null})}};h=e([r("esri.views.3d.webgl-engine.shaders.HUDMaterialTechnique")],h);const g={factor:0,units:-4},v=o().vec2u8("uv0",{glNormalized:!0});function b(e){let r=o().vec3f("position").vec3f("normal").f32("groundDistance");return e.hasVertexCenterOffset&&(r=r.vec3f("centerOffset")),e.hasVertexColor&&(r=r.vec4u8("color",{glNormalized:!0})),e.hasVertexSize&&(r=r.vec2f("size")),e.hasVertexRotation&&(r=r.f32("rotation")),(e.hasVVColor||e.hasVVSize)&&(r=r.vec4f("featureAttribute")),e.hasVertexUVi&&(r=r.vec4i16("uvi")),n()?r.vec4u8("olidColor"):r}export{h as HUDMaterialTechnique,v as baseLayout,b as getInstanceLayout};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
|
|
2
|
-
import{__decorate as e}from"tslib";import{subclass as r}from"../../../../core/accessorSupport/decorators.js";import{glLayout as t}from"../../support/buffer/glUtil.js";import{isColor as i}from"../core/shaderLibrary/ShaderOutput.js";import{ReloadableShader as s}from"../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as l}from"../core/shaderTechnique/ShaderTechnique.js";import{oitPolygonOffset as o,drawBuffers as n,depthWrite as a,depthTest as p,blending as c}from"../lib/OrderIndependentTransparency.js";import{stencilToolMaskBaseParams as u,stencilBaseAllZerosParams as m,stencilWriteMaskOn as d}from"../lib/StencilUtils.js";import{PositionUvLayout as h}from"../materials/DefaultLayouts.js";import{I as f}from"../../../../chunks/ImageMaterial.glsl.js";import{makePipelineState as g,defaultColorWrite as j,cullingParams as b}from"../../../webgl/renderState.js";let P=class extends l{constructor(e,r){super(e,r,t(S(r))),this.shader=new s(f,()=>import("./ImageMaterial.glsl.js"))}_getPipelineState(e,r){const{oitPass:t,output:s,hasEmission:l,hasOccludees:h,cullFace:f}=e;return g({blending:i(s)?c(t,!0):null,culling:b(f),depthTest:p(t),depthWrite:a(e),drawBuffers:n(t,l),colorWrite:j,stencilWrite:h?d:null,stencilTest:h?r?u:m:null,polygonOffset:o(e)})}initializePipeline(e){return this._occludeePipeline=this._getPipelineState(e,!0),this._getPipelineState(e,!1)}getPipeline(e,r){return r?this._occludeePipeline:super.getPipeline(e)}};function S(e){let r=h;return e.perspectiveInterpolation&&(r=r.clone().f32("perspectiveDivide")),r}P=e([r("esri.views.3d.webgl-engine.shaders.ImageMaterialTechnique")],P);export{P as ImageMaterialTechnique,S as getLayout};
|
|
2
|
+
import{__decorate as e}from"tslib";import{subclass as r}from"../../../../core/accessorSupport/decorators.js";import{glLayout as t}from"../../support/buffer/glUtil.js";import{isColor as i}from"../core/shaderLibrary/ShaderOutput.js";import{ReloadableShader as s}from"../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as l}from"../core/shaderTechnique/ShaderTechnique.js";import{oitPolygonOffset as o,drawBuffers as n,depthWrite as a,depthTest as p,blending as c}from"../lib/OrderIndependentTransparency.js";import{stencilToolMaskBaseParams as u,stencilBaseAllZerosParams as m,stencilWriteMaskOn as d}from"../lib/StencilUtils.js";import{PositionUvLayout as h}from"../materials/DefaultLayouts.js";import{I as f}from"../../../../chunks/ImageMaterial.glsl.js";import{makePipelineState as g,defaultColorWrite as j,cullingParams as b}from"../../../webgl/renderState.js";let P=class extends l{constructor(e,r){super(e,r,t(S(r))),this.shader=new s(f,()=>import("./ImageMaterial.glsl.js")),this.ignoreUnused=!0}_getPipelineState(e,r){const{oitPass:t,output:s,hasEmission:l,hasOccludees:h,cullFace:f}=e;return g({blending:i(s)?c(t,!0):null,culling:b(f),depthTest:p(t),depthWrite:a(e),drawBuffers:n(t,l),colorWrite:j,stencilWrite:h?d:null,stencilTest:h?r?u:m:null,polygonOffset:o(e)})}initializePipeline(e){return this._occludeePipeline=this._getPipelineState(e,!0),this._getPipelineState(e,!1)}getPipeline(e,r){return r?this._occludeePipeline:super.getPipeline(e)}};function S(e){let r=h;return e.perspectiveInterpolation&&(r=r.clone().f32("perspectiveDivide")),r}P=e([r("esri.views.3d.webgl-engine.shaders.ImageMaterialTechnique")],P);export{P as ImageMaterialTechnique,S as getLayout};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
|
|
2
|
-
import{__decorate as e}from"tslib";import{subclass as r}from"../../../../core/accessorSupport/decorators.js";import{ReloadableShader as s}from"../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as o}from"../core/shaderTechnique/ShaderTechnique.js";import{a as i}from"../../../../chunks/OverlayCompositing.glsl.js";let t=class extends o{constructor(){super(...arguments),this.shader=new s(i,()=>import("./OverlayCompositing.glsl.js"))}};t=e([r("esri.views.3d.webgl-engine.shaders.OverlayCompositingTechnique")],t);export{t as OverlayCompositingTechnique};
|
|
2
|
+
import{__decorate as e}from"tslib";import{subclass as r}from"../../../../core/accessorSupport/decorators.js";import{ReloadableShader as s}from"../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as o}from"../core/shaderTechnique/ShaderTechnique.js";import{a as i}from"../../../../chunks/OverlayCompositing.glsl.js";let t=class extends o{constructor(){super(...arguments),this.shader=new s(i,()=>import("./OverlayCompositing.glsl.js")),this.ignoreUnused=!0}};t=e([r("esri.views.3d.webgl-engine.shaders.OverlayCompositingTechnique")],t);export{t as OverlayCompositingTechnique};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
|
|
2
|
-
import{__decorate as e}from"tslib";import{subclass as t}from"../../../../core/accessorSupport/decorators.js";import{glLayout as r}from"../../support/buffer/glUtil.js";import{isColor as i}from"../core/shaderLibrary/ShaderOutput.js";import{ReloadableShader as s}from"../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as o,depthOnlyOutputBuffersOr as
|
|
2
|
+
import{__decorate as e}from"tslib";import{subclass as t}from"../../../../core/accessorSupport/decorators.js";import{glLayout as r}from"../../support/buffer/glUtil.js";import{isColor as i}from"../core/shaderLibrary/ShaderOutput.js";import{ReloadableShader as s}from"../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as o,depthOnlyOutputBuffersOr as n}from"../core/shaderTechnique/ShaderTechnique.js";import{oitPolygonOffset as l,drawBuffers as a,depthWrite as p,depthTest as c,blending as u}from"../lib/OrderIndependentTransparency.js";import{stencilToolMaskBaseParams as d,stencilBaseAllZerosParams as m,stencilWriteMaskOn as h}from"../lib/StencilUtils.js";import{P as f}from"../../../../chunks/Pattern.glsl.js";import{getLayout as P}from"./PatternLayouts.js";import{makePipelineState as g,defaultColorWrite as j,cullingParams as S}from"../../../webgl/renderState.js";let b=class extends o{constructor(e,t){super(e,t,r(P(t))),this.shader=new s(f,()=>import("./Pattern.glsl.js")),this.ignoreUnused=!0}_setPipelineState(e,t){const{oitPass:r,output:s,hasEmission:o,cullFace:f,draped:P,hasOccludees:b,polygonOffset:w}=e,y=0===r;return g({blending:i(s)?u(r):null,culling:S(f),depthTest:P?null:c(r),depthWrite:p(e),drawBuffers:n(s,a(r,o)),colorWrite:j,stencilWrite:b?h:null,stencilTest:b?t?d:m:null,polygonOffset:y?w?T:null:l(e)})}initializePipeline(e){return this._occludeePipelineState=this._setPipelineState(e,!0),this._setPipelineState(e,!1)}getPipeline(e,t){return t?this._occludeePipelineState:super.getPipeline(e)}};b=e([t("esri.views.3d.webgl-engine.shaders.PatternTechnique")],b);const T={factor:1,units:1};export{b as PatternTechnique};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
|
|
2
|
-
import{__decorate as e}from"tslib";import{subclass as t}from"../../../../core/accessorSupport/decorators.js";import{glLayout as i}from"../../support/buffer/glUtil.js";import{newLayout as r}from"../../support/buffer/InterleavedLayout.js";import{isColor as
|
|
2
|
+
import{__decorate as e}from"tslib";import{subclass as t}from"../../../../core/accessorSupport/decorators.js";import{glLayout as i}from"../../support/buffer/glUtil.js";import{newLayout as r}from"../../support/buffer/InterleavedLayout.js";import{isColor as s}from"../core/shaderLibrary/ShaderOutput.js";import{ReloadableShader as l}from"../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as n,depthOnlyOutputBuffersOr as o}from"../core/shaderTechnique/ShaderTechnique.js";import{olidEnabled as u}from"../effects/geometry/olidUtils.js";import{OITPolygonOffset as c,drawBuffers as p,depthWrite as a,depthTest as f,blending as d}from"../lib/OrderIndependentTransparency.js";import{stencilToolMaskBaseParams as h,stencilBaseAllZerosParams as m,stencilWriteMaskOn as g,stencilToolTransparentOccluderParams as b,depthCompareAlways as P,stencilToolMaskOccluderParams as T,stencilWriteMaskOff as W,depthCompareLess as j}from"../lib/StencilUtils.js";import{R as y}from"../../../../chunks/RibbonLine.glsl.js";import{PrimitiveType as O}from"../../../webgl/enums.js";import{makePipelineState as S,defaultColorWrite as v,unpremultipliedAlphaToPremultipliedAlpha as _}from"../../../webgl/renderState.js";let w=class extends n{constructor(e,t){super(e,t,i(R(t))),this.shader=new l(y,()=>import("./RibbonLine.glsl.js")),this.ignoreUnused=!0,this.primitiveType=t.wireframe?O.LINES:O.TRIANGLE_STRIP}_makePipelineState(e,t){const{oitPass:i,output:r,hasEmission:l,hasOccludees:n,hasPolygonOffset:u}=e,b=0===i,P=2===i;return S({blending:s(r)?d(i):null,depthTest:f(i),depthWrite:a(e),drawBuffers:o(r,p(i,l)),colorWrite:v,stencilWrite:n?g:null,stencilTest:n?t?h:m:null,polygonOffset:b||P?u?L:null:c})}initializePipeline(e){if(e.occluder){const t=e.hasPolygonOffset?L:null,{output:i,hasOccludees:r}=e;this._occluderPipelineTransparent=S({blending:_,polygonOffset:t,depthTest:P,depthWrite:null,colorWrite:v,stencilWrite:null,stencilTest:r?b:null,drawBuffers:o(i)}),this._occluderPipelineOpaque=S({blending:_,polygonOffset:t,depthTest:r?P:j,depthWrite:null,colorWrite:v,stencilWrite:r?W:null,stencilTest:r?T:null,drawBuffers:o(i)}),this._occluderPipelineMaskWrite=S({blending:null,polygonOffset:t,depthTest:j,depthWrite:null,colorWrite:null,stencilWrite:r?g:null,stencilTest:r?h:null,drawBuffers:o(i)})}return this._occludeePipeline=this._makePipelineState(e,!0),this._makePipelineState(e,!1)}getPipeline(e,t){if(t)return this._occludeePipeline;switch(e.occluder){case 12:return this._occluderPipelineTransparent??super.getPipeline(e);case 11:return this._occluderPipelineOpaque??super.getPipeline(e);default:e.occluder;case void 0:case null:return this._occluderPipelineMaskWrite??super.getPipeline(e)}}};w=e([t("esri.views.3d.webgl-engine.shaders.RibbonLineTechnique")],w);const L={factor:0,units:-4};function R(e){const t=r().vec3f("position").vec4f16("previousDelta").vec4f16("nextDelta").f32("u0").vec2f16("lineParameters");return e.hasVVColor?t.f32("colorFeatureAttribute"):t.vec4u8("color",{glNormalized:!0}),e.hasVVSize?t.f32("sizeFeatureAttribute"):t.f32("size"),e.hasVVOpacity&&t.f32("opacityFeatureAttribute"),u()&&t.vec4u8("olidColor"),e.hasAnimation&&t.vec4f16("timeStamps"),t}export{w as RibbonLineTechnique,R as getLayout};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
|
|
2
|
-
import{__decorate as e}from"tslib";import{subclass as r}from"../../../../core/accessorSupport/decorators.js";import{ReloadableShader as s}from"../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as t}from"../core/shaderTechnique/ShaderTechnique.js";import{a as i}from"../../../../chunks/ShadowCastAccumulate.glsl.js";import{PrimitiveType as o}from"../../../webgl/enums.js";import{makePipelineState as a,add as
|
|
2
|
+
import{__decorate as e}from"tslib";import{subclass as r}from"../../../../core/accessorSupport/decorators.js";import{ReloadableShader as s}from"../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as t}from"../core/shaderTechnique/ShaderTechnique.js";import{a as i}from"../../../../chunks/ShadowCastAccumulate.glsl.js";import{PrimitiveType as o}from"../../../webgl/enums.js";import{makePipelineState as a,add as n}from"../../../webgl/renderState.js";let l=class extends t{constructor(){super(...arguments),this.shader=new s(i,()=>import("./ShadowCastAccumulate.glsl.js")),this.ignoreUnused=!0,this.primitiveType=o.TRIANGLE_STRIP}initializePipeline(e){const r={r:0===e.index,g:1===e.index,b:!1,a:!1};return a({blending:n,colorWrite:r,depthTest:null,depthWrite:null})}};l=e([r("esri.views.3d.webgl-engine.shaders.ShadowCastAccumulateTechnique")],l);export{l as ShadowCastAccumulateTechnique};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
|
|
2
|
-
import{__decorate as e}from"tslib";import{subclass as r}from"../../../../core/accessorSupport/decorators.js";import{ReloadableShader as s}from"../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as i}from"../core/shaderTechnique/ShaderTechnique.js";import{S as o}from"../../../../chunks/ShadowCastClear.glsl.js";import{PrimitiveType as t}from"../../../webgl/enums.js";import{makePipelineState as l}from"../../../webgl/renderState.js";let
|
|
2
|
+
import{__decorate as e}from"tslib";import{subclass as r}from"../../../../core/accessorSupport/decorators.js";import{ReloadableShader as s}from"../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as i}from"../core/shaderTechnique/ShaderTechnique.js";import{S as o}from"../../../../chunks/ShadowCastClear.glsl.js";import{PrimitiveType as t}from"../../../webgl/enums.js";import{makePipelineState as l}from"../../../webgl/renderState.js";let n=class extends i{constructor(){super(...arguments),this.shader=new s(o,()=>import("./ShadowCastClear.glsl.js")),this.ignoreUnused=!0,this.primitiveType=t.TRIANGLE_STRIP}initializePipeline(e){const r={r:0===e.index,g:1===e.index,b:!1,a:!1};return l({blending:null,colorWrite:r,depthTest:null,depthWrite:null})}};n=e([r("esri.views.3d.webgl-engine.shaders.ShadowCastClearTechnique")],n);export{n as ShadowCastClearTechnique};
|