This directory contains experimental code for providing SkCodec API for decoding PNG images using Rust png crate. See the following document for more details: https://docs.google.com/document/d/1glx5ue5JDlCld5WzWgTOGK3wsMErQFnkY5N5Dsbi91Y/edit?usp=sharing
To build and test the code from this directory from Chromium:
gn args out/... and set enable_rust_png = trueautoninja -C out/... gfx_unittests blink_platform_unittests chromeout/.../gfx_unittests --gtest_filter=RustEnabled*out/.../blink_platform_unittests --gtest_filter=RustEnabled*out/.../chrome --enable-features=RustyPngTo build the code from this directory from Skia (testing via Bazel is not supported yet):
$ cd skia-repo-root $ bazelisk build experimental/rust_png/decoder
To build the code from this directory from Skia:
gn args out/RustPng and set enable_rust_png_decode = truegn gen out/RustPngautoninja -C out/RustPng dm
To test the code (via `tests/SkPngRustDecoderTest.cpp`):
$ out/RustPng/dm --src tests --nogpu --match Codec_apng
TODO(https://crbug.com/356875275): Add support for running older tests (e.g. ones from `tests/CodecTest.cpp`) against `SkPngRustCodec`. ## Differences between `SkPngCodec` and `SkRustPngCodec` * `SkPngCodec`: - No APNG support. - No CICP support. * `SkPngRustCodec` differences - see https://issues.chromium.org/issues?q=parentid:362829876%2B):