Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

The Roadmap #2

Open
28 of 93 tasks
CraigglesO opened this issue Mar 11, 2024 · 0 comments
Open
28 of 93 tasks

The Roadmap #2

CraigglesO opened this issue Mar 11, 2024 · 0 comments

Comments

@CraigglesO
Copy link
Contributor

CraigglesO commented Mar 11, 2024

Large scale progress tracker

Beta Phase

Sub Packages

  • React
  • Vue
  • Svelte

Render Mechanics

  • WebGPU Glyph-icon pairs not working
  • WebGPU cursor interactivity for Fills not working as intended
  • WebGPU cursor interactivity for Glyphs not working as intended
  • Glyphs text-along-path
  • WM Projection -> allow option to force minzoom to be limited to show whole map on canvas at a minimum
  • WM Projection -> duplicate on the x axis
  • Hash -> URL synced with map position
  • Tile flush working across workers to know when tiles are fully rendered
    • Source (used by most)
    • Marker source
    • Local source
  • awaitFullyRendered
  • screenshot

Stability

  • Zooming is smoother for WebGPU and tiles visually stay while zooming out.
  • Dashed lines is bugged
  • glyphs along path don't coexist with other glyphs yet.
  • WebGPU sometimes tries to render deleted tiles. Rare case and doesn't seem to inhibit user interaction?
  • tile duplicates on the x axis -> parent tiles don't show
  • Glyphs overlap as you zoom in (not killing parent glyphs correctly?)
  • Some WebGPU Workflows can be converted to async from the painter
  • Migrate the WebGL "Programs" to work the same way as "Workflows" from WebGPU
  • Get unicode/LTR/substitution Zig parser out of experimental to production ready
  • offscreen: false is blurrier than offscreen.
  • changing screen size doesn't update view if needed

Testing

  • All examples have WebGL1, WebGL2, and WebGPU tests to ensure they work before any more code is added.
    • All text/icon type tests
    • dashed lines

NOTE:

Upon completion of Beta, and before beginning work on a 1.0 release, there will be a waiting period to see if any major changes are required before deciding upon a complete product.


1.0 RELEASE

Features

  • zoom out keeps children tiles
  • Comments for all code
  • raster fade-in from parent
  • snapshot post flush
  • improve zooming in webgl1 for fill just like heatmap
  • webgl1 sorting fallback last doesnt work
  • Style/MapOptions converter for Mapbox
  • Style/MapOptions converter for Maplibre
  • S2 Clustering
  • Hillshade works correctly for 512x512 images
  • Unicode parsing via Zig module Completed
  • Glyphs Alpha fading
  • move mouse position over canvas and get visual changes
  • Fill pattern -> support scaling the image

API

  • getBounds/setBounds
  • getMaxBounds/setMaxBounds
  • setProjection/getProjection
  • addSource/deleteSource
  • addLayer/deleteLayer/updateLayer
  • getStyle
  • getFeatureState/DeleteFeatureState/setFeatureState

Build

  • Support a single file build that can use offscreen canvas new Worker(new URL(..., import.meta.url), { ... })
  • NodeJS/Bun local builds for webgpu
  • A foundation for native.

Stability

  • TODO - fill this section correctly
  • Webgpu Glyph filtering doesn't properly follow a robust ordered pattern like webgl does
  • Testing pipeline via actions (after release for free github actions, but first to fix)
  • zooming towards cursor is a bit off for both cases.

Testing (Excluding WebGL / WebGPU)

  • Server side rendering WebGPU tests
    • mouse interactions
    • zoom interactions
    • hover value
    • popup on hover
  • Plugins tests
  • UI
    • projector
      • getTiles
      • cursorToLonLat
      • mat4
    • animator
    • cache
    • dragPan
    • timeCache
  • Workers
    • process
      • glyph
      • util
      • fill
      • line
      • point
      • raster
    • source
      • json-vt
      • point-cluster / ClusterSource
      • glyphSource
      • imageSource
      • jsonSource
      • localSource
      • markerSource
      • s2tilesSource
      • spriteSource
      • texturePack

Documentation

  • TODO - fill this section correctly
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant