Skip to content

Add crisp zoom rendering#33

Merged
markm39 merged 1 commit into
mainfrom
feat/crisp-zoom-tiles
May 20, 2026
Merged

Add crisp zoom rendering#33
markm39 merged 1 commit into
mainfrom
feat/crisp-zoom-tiles

Conversation

@markm39
Copy link
Copy Markdown
Contributor

@markm39 markm39 commented May 20, 2026

Summary

  • Adds zoom-aware native render viewport props from JS through iOS, Android, and the shared Skia engine.
  • Renders completed strokes through scale-bucketed tiles so settled zoom stays crisp without re-rendering the whole path set each frame.
  • Keeps high-zoom performance bounded with native render-scale budgeting, tile cache invalidation, and an iOS drawable-size recursion fix.

Test plan

  • Manual iPad dev-build validation during implementation: drawing coordinates stayed accurate through zoom in/out, settled strokes rendered crisp, and the final lag profile was acceptable for shipping.
  • npm run validate
  • Full C++ render syntax check: clang++ -std=c++20 -fsyntax-only cpp/SkiaDrawingEngine.cpp cpp/SkiaDrawingEngineRendering.cpp cpp/SkiaDrawingEngineEraser.cpp cpp/SkiaDrawingEngineSelection.cpp cpp/ActiveStrokeRenderer.cpp cpp/PathRenderer.cpp cpp/PathRendererCrayon.cpp cpp/PathRendererCalligraphy.cpp cpp/DrawingTypes.cpp cpp/DrawingHistory.cpp cpp/DrawingSelection.cpp cpp/BackgroundRenderer.cpp cpp/DrawingSerialization.cpp cpp/ShapeRecognition.cpp cpp/EraserRenderer.cpp cpp/StrokeSplitter.cpp cpp/BatchExporter.cpp -I cpp -I node_modules/@shopify/react-native-skia/cpp/skia -I node_modules/@shopify/react-native-skia/cpp/skia/modules/pathops/include
  • git diff --check
  • Simplify review gate: no required changes.
  • Security review gate: no credential, authz, injection, or sensitive-data findings.

@markm39 markm39 merged commit e396200 into main May 20, 2026
1 check passed
@markm39 markm39 deleted the feat/crisp-zoom-tiles branch May 20, 2026 02:16
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

Successfully merging this pull request may close these issues.

1 participant