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 = true
autoninja -C out/... gfx_unittests blink_platform_unittests chrome
out/.../gfx_unittests --gtest_filter=RustEnabled*
out/.../blink_platform_unittests --gtest_filter=RustEnabled*
out/.../chrome --enable-features=RustyPng
To 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 = true
gn gen out/RustPng
autoninja -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):