Skip to content

Commit b2dd389

Browse files
gaaclarkeromanejaquez
authored andcommitted
fixed impeller golden content scale (flutter#167308)
fixes flutter#162036 This fixes the problem my scaling the render texture by the content scalar. This means locally you'll probably be generating 2048x1536 images. This matches the rendering that is happening in playgrounds. On CI the content scalar should be one so there is no change there. ## 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], including [Features we expect every widget to implement]. - [x] I signed the [CLA]. - [x] I listed at least one issue that this PR fixes in the description above. - [x] I updated/added relevant documentation (doc comments with `///`). - [x] I added new tests to check the change I am making, or this PR is [test-exempt]. - [x] I followed the [breaking change policy] and added [Data Driven Fixes] where supported. - [x] All existing and new tests are passing. If you need help, consider asking for advice on the #hackers-new channel on [Discord]. <!-- Links --> [Contributor Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview [Tree Hygiene]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md [test-exempt]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests [Flutter Style Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md [Features we expect every widget to implement]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement [CLA]: https://cla.developers.google.com/ [flutter/tests]: https://github.com/flutter/tests [breaking change policy]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes [Discord]: https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md [Data Driven Fixes]: https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
1 parent c79a278 commit b2dd389

File tree

2 files changed

+14
-3
lines changed

2 files changed

+14
-3
lines changed

engine/src/flutter/impeller/golden_tests/golden_playground_test_mac.cc

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -222,10 +222,16 @@ bool GoldenPlaygroundTest::OpenPlaygroundHere(
222222
AiksContext renderer(GetContext(), typographer_context_);
223223

224224
std::unique_ptr<testing::Screenshot> screenshot;
225+
Point content_scale =
226+
pimpl_->screenshotter->GetPlayground().GetContentScale();
227+
228+
ISize physical_window_size(
229+
std::round(pimpl_->window_size.width * content_scale.x),
230+
std::round(pimpl_->window_size.height * content_scale.y));
225231
for (int i = 0; i < 2; ++i) {
226232
auto display_list = callback();
227233
auto texture =
228-
DisplayListToTexture(display_list, pimpl_->window_size, renderer);
234+
DisplayListToTexture(display_list, physical_window_size, renderer);
229235
screenshot = pimpl_->screenshotter->MakeScreenshot(renderer, texture);
230236
}
231237
return SaveScreenshot(std::move(screenshot));
@@ -320,9 +326,14 @@ fml::Status GoldenPlaygroundTest::SetCapabilities(
320326
std::unique_ptr<testing::Screenshot> GoldenPlaygroundTest::MakeScreenshot(
321327
const sk_sp<flutter::DisplayList>& list) {
322328
AiksContext renderer(GetContext(), typographer_context_);
329+
Point content_scale =
330+
pimpl_->screenshotter->GetPlayground().GetContentScale();
323331

332+
ISize physical_window_size(
333+
std::round(pimpl_->window_size.width * content_scale.x),
334+
std::round(pimpl_->window_size.height * content_scale.y));
324335
return pimpl_->screenshotter->MakeScreenshot(
325-
renderer, DisplayListToTexture(list, pimpl_->window_size, renderer));
336+
renderer, DisplayListToTexture(list, physical_window_size, renderer));
326337
}
327338

328339
} // namespace impeller

engine/src/flutter/impeller/golden_tests/metal_screenshotter.mm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@
4343
imageByApplyingOrientation:kCGImagePropertyOrientationDownMirrored];
4444

4545
CGImageRef cgImage = [cicontext createCGImage:flipped
46-
fromRect:[ciImage extent]];
46+
fromRect:[flipped extent]];
4747

4848
// NOLINTNEXTLINE(clang-analyzer-cplusplus.NewDeleteLeaks)
4949
return std::unique_ptr<MetalScreenshot>(new MetalScreenshot(cgImage));

0 commit comments

Comments
 (0)