Remove cullRect calculation on TransformLayers with a perspective transform. (flutter/engine#5693)

This commit is contained in:
Jonah Williams 2018-07-09 12:52:10 -07:00 committed by GitHub
parent d641c6da62
commit 6eab9d08be
2 changed files with 4 additions and 3 deletions

View File

@ -37,12 +37,13 @@ DefaultLayerBuilder::~DefaultLayerBuilder() = default;
void DefaultLayerBuilder::PushTransform(const SkMatrix& sk_matrix) {
SkMatrix inverse_sk_matrix;
SkRect cullRect;
if (sk_matrix.invert(&inverse_sk_matrix)) {
// Perspective projections don't produce rectangles that are useful for
// culling for some reason.
if (!sk_matrix.hasPerspective() && sk_matrix.invert(&inverse_sk_matrix)) {
inverse_sk_matrix.mapRect(&cullRect, cull_rects_.top());
} else {
cullRect = kGiantRect;
}
auto layer = std::make_unique<flow::TransformLayer>();
layer->set_transform(sk_matrix);
PushLayer(std::move(layer), cullRect);

View File

@ -129,7 +129,7 @@
- (BOOL)application:(UIApplication*)application
continueUserActivity:(NSUserActivity*)userActivity
restorationHandler:(void (^)(NSArray*))restorationHandler {
restorationHandler:(void (^)(NSArray<id<UIUserActivityRestoring>>*))restorationHandler {
return [_lifeCycleDelegate application:application
continueUserActivity:userActivity
restorationHandler:restorationHandler];