This repository was archived by the owner on Feb 25, 2025. It is now read-only.
File tree Expand file tree Collapse file tree
shell/platform/darwin/ios/framework/Source Expand file tree Collapse file tree Original file line number Diff line number Diff line change 4646 opaque : (BOOL )opaque
4747 enableWideGamut : (BOOL )isWideGamutEnabled NS_DESIGNATED_INITIALIZER;
4848
49+ - (UIScreen*)screen ;
50+
4951// Set by FlutterEngine or FlutterViewController to override software rendering.
5052@property (class , nonatomic ) BOOL forceSoftwareRendering;
5153@end
Original file line number Diff line number Diff line change @@ -100,7 +100,7 @@ - (void)layoutSubviews {
100100#pragma clang diagnostic ignored "-Wunguarded-availability-new"
101101 CAMetalLayer * layer = (CAMetalLayer *)self.layer ;
102102#pragma clang diagnostic pop
103- CGFloat screenScale = [UIScreen mainScreen ] .scale ;
103+ CGFloat screenScale = self. screen .scale ;
104104 layer.allowsGroupOpacity = YES ;
105105 layer.contentsScale = screenScale;
106106 layer.rasterizationScale = screenScale;
Original file line number Diff line number Diff line change @@ -69,4 +69,17 @@ - (void)testIgnoreWideColorWithoutImpeller {
6969 XCTAssertEqual (layer.pixelFormat , MTLPixelFormatBGRA8Unorm );
7070}
7171
72+ - (void )testLayerScalesMatchScreenAfterLayoutSubviews {
73+ FakeDelegate* delegate = [[[FakeDelegate alloc ] init ] autorelease ];
74+ FlutterView* view = [[FlutterView alloc ] initWithDelegate: delegate opaque: NO enableWideGamut: NO ];
75+ view.layer .contentsScale = CGFloat (-99.0 );
76+ view.layer .rasterizationScale = CGFloat (-99.0 );
77+ UIScreen* screen = [view screen ];
78+ XCTAssertNotEqual (view.layer .contentsScale , screen.scale );
79+ XCTAssertNotEqual (view.layer .rasterizationScale , screen.scale );
80+ [view layoutSubviews ];
81+ XCTAssertEqual (view.layer .contentsScale , screen.scale );
82+ XCTAssertEqual (view.layer .rasterizationScale , screen.scale );
83+ }
84+
7285@end
You can’t perform that action at this time.
0 commit comments