[carnelian] Implement update area tracking

Create an iterator to iterate over all included pixels in an update
area. The use case for this iteration is to allow canvas to update only
the portions of the pixel map that have changed.

One specific use case for this feature is to avoid redrawing the entire
background of the recovery UI when just the two strings have changed.
The single call to fill_rect() that redraws the background can have its
pixel iteration limited to the area that the labels occupied before
updating.

This update area feature is off by default, as it isn’t generally
useful to programs using canvas.

I feel this change is in the spirit of the testing hackathon, as the
new feature includes a number of tests. If the testability review
disagrees, this can wait another week to be merged.

Change-Id: I8b676a5e1715a6fe3c41a4be470c2d1aadf2cce5
5 files changed
tree: e6ac0132464ec0c47fbc05608b985eb87754e137
  1. boards/
  2. build/
  3. buildtools/
  4. bundles/
  5. docs/
  6. examples/
  7. garnet/
  8. infra/
  9. peridot/
  10. products/
  11. scripts/
  12. sdk/
  13. src/
  14. third_party/
  15. tools/
  16. zircon/
  17. .clang-format
  18. .clang-tidy
  19. .dir-locals.el
  20. .gitattributes
  21. .gitignore
  22. .gn
  23. AUTHORS
  24. BUILD.gn
  25. CODE_OF_CONDUCT.md
  26. CONTRIBUTING.md
  27. LICENSE
  28. OWNERS
  29. PATENTS
  30. README.md
  31. rustfmt.toml
README.md

Fuchsia

Pink + Purple == Fuchsia (a new operating system)

What is Fuchsia?

Fuchsia is a modular, capability-based operating system. Fuchsia runs on modern 64-bit Intel and ARM processors.

Fuchsia is an open source project with a code of conduct that we expect everyone who interacts with the project to respect.

How can I build and run Fuchsia?

See Getting Started.

Where can I learn more about Fuchsia?

See the documentation.