Skip to content

WorldWind Kotlin v2.0.4

Choose a tag to compare

@EMaksymenko EMaksymenko released this 30 Jun 22:38
· 84 commits to develop since this release

Release 2.0.4

43 commits since 2.0.3.

3D Tiles

  • Render KTX2 (KHR_texture_basisu) textures instead of dropping them.
  • Enable glb-wrapped Gaussian splats out of the box.
  • Throttle Gaussian-splat parses inside the layer, and move the Gaussian view-Z sort to Dispatchers.Default to keep it off the render thread.
  • Depth-pick now lands on the Gaussian-splat surface.
  • Expose the root bounding-volume sector for fly-to.
  • Priority-ordered fetch queue with off-permit cache writes.
  • Evict cold .json-grafted subtrees to bound the Tile3d node count.
  • Combine vbo + ebo + batchIds into one BufferObject per primitive; cache hot-path render-resource-cache refs in MeshSubmesh; inline traversal distance on Tile3d and drop the sortDistances HashMap.
  • GL-thread feedback for the adaptive install throttle.
  • Stencil-mask terrain inside mesh / point-cloud coverage so terrain no longer pokes through.
  • Mesh tiles cast into the sightline moments cube, and always pick the sightline-spliced program variant.
  • Reset the altitude-bake cache when a tileset drops on auth-expired; create the blob-store table on NGA's handle and fix the per-class DAO cache; report cached blob-store size from sizeBytesOf.

WFS

  • Viewport auto-refresh with a GeoPackage cache (download-once & tiled).
  • Retry transient fetch failures with linear backoff.

MVT

  • Shared TiledVectorLayer base, earcut polygon fills, progressive cut, and configurable background + label density.

GeoPackage

  • Read-only handle pool for concurrent feature reads.
  • Add deleteFeatureTable and narrow the features bbox to the actual extent.

Sightline

  • Bind benign textures on the no-sightline receiver path.
  • Clamp the moments texture wrap to edge.
  • Identity-keyed receiver cache; drop frameStamp.

Rendering & Performance

  • WebGL: per-target buffers for 3D Tiles and DPI-correct curved labels.
  • Cache: stale-while-revalidate on the cached-tile fast path, with discard-on-cancel.
  • Elevation: keep cache decode and miss-retry off the render thread.
  • RenderResourceCache: per-frame eviction time budget, and the Web path is now implemented.
  • BasicTessellator: stable BufferObject keys with a version bump on re-prepare.
  • Shapes: one-primitive outlines and exact (non-MSAA) surface-shape picking.
  • Placemark/Label: claim near-plane depth and discard transparent fragments; adaptive Label depth offset.
  • Texture: caller opt-out for mipmap generation.
  • Drawables: reference-only resets.
  • OSM Buildings: persist render config in the cache and filter redundant outlines.

Fixes & Internals

  • WMS capabilities: treat Layer attributes (queryable, cascaded, opaque, noSubsets, fixedWidth, fixedHeight) as unqualified per the XML standard, fixing parsing under xmlutil 1.0.0.
  • HttpClient: install socketTimeoutMillis on all platforms.
  • Tutorials (JVM): export sun.awt to silence JOGL AppContextInfo spam.
  • Fix unresolvable Dokka KDoc links.

Build & Dependencies

  • compileSdk / targetSdk raised to 37 (required by lifecycle-compose 2.11.0).
  • lifecycle-compose 2.10.02.11.0
  • ktor 3.5.03.5.1
  • xmlutil 0.91.31.0.0
  • mil-sym (android 2.11.02.11.1, java 2.8.02.8.1, ts 2.9.02.9.1)
  • javafx 21.0.526.0.1
  • webp-imageio 0.10.20.11.0