From f51e0ad3abbe3427456cfaf4eedd501829603fea Mon Sep 17 00:00:00 2001 From: gaaclarke <30870216+gaaclarke@users.noreply.github.com> Date: Wed, 5 Jun 2024 14:41:05 -0700 Subject: [PATCH] [Impeller] added test for bgra10xr png encoding (#53182) fixes: https://github.com/flutter/flutter/issues/148851 depends on: - https://skia-review.googlesource.com/c/skcms/+/861638 - https://skia-review.googlesource.com/c/skia/+/861516 ## Pre-launch Checklist - [x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs. - [x] I read the [Tree Hygiene] wiki page, which explains my responsibilities. - [x] I read and followed the [Flutter Style Guide] and the [C++, Objective-C, Java style guides]. - [x] I listed at least one issue that this PR fixes in the description above. - [x] I added new tests to check the change I am making or feature I am adding, or the PR is [test-exempt]. See [testing the engine] for instructions on writing and running engine tests. - [x] I updated/added relevant documentation (doc comments with `///`). - [x] I signed the [CLA]. - [x] All existing and new tests are passing. If you need help, consider asking for advice on the #hackers-new channel on [Discord]. [Contributor Guide]: https://github.com/flutter/flutter/wiki/Tree-hygiene#overview [Tree Hygiene]: https://github.com/flutter/flutter/wiki/Tree-hygiene [test-exempt]: https://github.com/flutter/flutter/wiki/Tree-hygiene#tests [Flutter Style Guide]: https://github.com/flutter/flutter/wiki/Style-guide-for-Flutter-repo [C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style [testing the engine]: https://github.com/flutter/flutter/wiki/Testing-the-engine [CLA]: https://cla.developers.google.com/ [flutter/tests]: https://github.com/flutter/tests [breaking change policy]: https://github.com/flutter/flutter/wiki/Tree-hygiene#handling-breaking-changes [Discord]: https://github.com/flutter/flutter/wiki/Chat --- lib/ui/painting/image_encoding_unittests.cc | 22 +++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/lib/ui/painting/image_encoding_unittests.cc b/lib/ui/painting/image_encoding_unittests.cc index bfd962fec1397..76c34e9629a70 100644 --- a/lib/ui/painting/image_encoding_unittests.cc +++ b/lib/ui/painting/image_encoding_unittests.cc @@ -469,6 +469,28 @@ TEST(ImageEncodingImpellerTest, PngEncoding10XR) { EXPECT_TRUE(png.ok()); } +TEST(ImageEncodingImpellerTest, PngEncodingBGRA10XR) { + int width = 100; + int height = 100; + SkImageInfo info = SkImageInfo::Make( + width, height, kBGRA_10101010_XR_SkColorType, kUnpremul_SkAlphaType); + + auto surface = SkSurfaces::Raster(info); + SkCanvas* canvas = surface->getCanvas(); + + SkPaint paint; + paint.setColor(SK_ColorBLUE); + paint.setAntiAlias(true); + + canvas->clear(SK_ColorWHITE); + canvas->drawCircle(width / 2, height / 2, 100, paint); + + sk_sp image = surface->makeImageSnapshot(); + + fml::StatusOr> png = EncodeImage(image, ImageByteFormat::kPNG); + EXPECT_TRUE(png.ok()); +} + #endif // IMPELLER_SUPPORTS_RENDERING } // namespace testing