Skip to content

fix(rendering): align cross-platform output and harden pipeline#299

Merged
JimmyDaddy merged 5 commits into
masterfrom
fix/image-rendering-consistency
Jul 11, 2026
Merged

fix(rendering): align cross-platform output and harden pipeline#299
JimmyDaddy merged 5 commits into
masterfrom
fix/image-rendering-consistency

Conversation

@JimmyDaddy

Copy link
Copy Markdown
Owner

Summary

  • align iOS and Android geometry, rotation, transparency, text defaults, and watermark orientation behavior
  • harden image loading, validation, output paths, atomic writes, concurrency, cancellation, and bitmap ownership
  • preserve legacy JavaScript API compatibility while adding native unit, instrumentation, and real JS-to-native E2E coverage
  • add an Expo clean-install bundle smoke check and archive the completed follow-up review

Root cause

The native rendering pipelines had diverged in coordinate scaling, defaults, orientation handling, URI decoding, and output persistence. Invalid parameters and unsafe file names were not rejected consistently, while concurrent jobs could retain large image resources longer than necessary. Existing coverage did not exercise enough public bridge and platform-specific behavior to catch these regressions.

Impact

  • makes rendering behavior more consistent across iOS and Android
  • restores expected transparent text/background output and watermark orientation
  • supports sampled content/resource URI and Base64 JPEG loading on Android
  • rejects invalid quality, alpha, size, and output file names before unsafe native work
  • bounds concurrent image work, improves cancellation cleanup, and avoids partial output files
  • keeps legacy watermarkImage callers working

Validation

  • ESLint
  • Jest: 13/13
  • root, API fixture, example, and Expo TypeScript checks
  • Android unit tests: 52/52
  • Android loader instrumentation: 8/8
  • Android renderer instrumentation: 17/17
  • Android public JS-to-native E2E: 2/2
  • iOS CI test whitelist: 27/27
  • Android release assemble and iOS simulator Release build
  • package prepack, generated docs, Expo Android export smoke
  • actionlint for the changed CI workflow and git diff checks

Closes #297
Closes #298

@JimmyDaddy JimmyDaddy marked this pull request as ready for review July 11, 2026 07:17
@JimmyDaddy JimmyDaddy merged commit 94b623f into master Jul 11, 2026
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant