Skip to content

WorldWind Kotlin v1.14.0

Choose a tag to compare

@EMaksymenko EMaksymenko released this 09 May 21:59
· 290 commits to develop since this release

WorldWindKotlin 1.14.0 — Release Notes

Highlights

  • iOS support — New Kotlin/Native target (iosX64, iosArm64, iosSimulatorArm64) across :worldwind, :worldwind-compose, :worldwind-compose-samples, and :worldwind-tutorials. SwiftUI tutorial shell included.
  • Toolchain bump — Migrated to AGP 9 / Gradle 9 / Kotlin 2.3.21.
  • Unified Compose API — Single @Composable WorldWindow that works across Android, JVM (Desktop), JS, and iOS.
  • 3D Ellipsoid shape — New tri-axial ellipsoid renderable with rotation and lighting.

New Features

  • Compose: @Composable WorldWindow unified across Android, JVM, and JS (b29cdc7)
  • Shapes: 3D rotation / tri-axial Ellipsoid with lighting (caeaa3f)
  • Sightline: embedded-receiver path for in-shader self-shadow (f584eaf)
  • Navigation: fling + zoom-anchor gestures for 2D projections (2bd48a0)
  • GeoTiff: unified reader/writer in commonMain, dropping the JVM-only mil.nga.tiff dependency (2815097)

Fixes

  • Sightline/Shadow: restore caller's framebuffer instead of unbinding to NONE (12ab237)
  • DrawableSightline: directional regression — re-run depth per face (faf7366)
  • Path: emit second trailing miter dummy so WebGL accepts surface lines (0a95ae0)
  • Shape: invalidate geometry cache on vertical-exaggeration change (938f30e)
  • Shapes: keep BoundingData across reset() to stop fall-through blinking (961a40d)
  • Placemark/Label: recompute placePoint each frame (drop stale cartesian cache) (b9c8fd1)
  • SelectDragDetector: placemark select/drag on macOS Safari (6aa7cb5)
  • SelectDragDetector: route depth-tested point into pick/context/double-tap (4117c83)
  • PickedObject: opt out of depth unprojection for surface shapes (696f18d)
  • WorldWind: 2D pan stuck when subclasses override gestureDidBegin (7c7426d)
  • WorldWind: skip COLLISION_THRESHOLD on globe-state reclamp (8b5c7ea)
  • RequestRedraw: don't block sequential calls from background threads (050602d)
  • Tutorials: request redraw after async COLLADA/glTF parse completes (4ed2c48)

Rendering / Performance

  • ViewshedSightline: multi-WorldWindow correctness + RRC-managed output texture (db3f54f)
  • Programs: per-WorldWindow shader-program storage (ccff546)
  • Programs: zero-overhead no-shadow variants for shadow receivers (2c2f4c8)
  • Shadows: per-platform MSM moment bias (66dcf51)
  • Atmosphere: drop shadow modulation from GroundProgram SECONDARY pass (ea3675d)
  • Shadow: route surface-shape rasterize-pass disable through helper (95f32a2)
  • DrawableSightline: dispatch SightlineReceiver in occlusion passes (7be1f70)
  • RenderContext: reified getShaderProgram overload; drop KEY companions (9bcb7c6)

Build / Tooling

  • JVM/macOS: tutorials run on Apple Silicon JBR (eaa1ef3)
  • Build: strip moko-resources iOS pack on non-Mac hosts (Windows/Linux CI) (79abeec)
  • JVM: bump vlcj to 4.12.1 + assorted dependency bumps (3e7e111)
  • GeoTiffReader: drop ignored-key/tag log spam to DEBUG (2c87ad9)
  • Skip signing for local MavenLocal publishes (56c2033)
  • Examples: drop day-night terminator from basic Android activities (e2d9a0e)

Full Changelog: v1.13.1...v1.14.0 (38 commits)