Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(324)

Unified Diff: content/browser/compositor/browser_compositor_view_private_mac.mm

Issue 370513002: Mac ÜC: Make resize smooth (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@enable_uc_for_reals
Patch Set: Add comments Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/browser/compositor/browser_compositor_view_private_mac.mm
diff --git a/content/browser/compositor/browser_compositor_view_private_mac.mm b/content/browser/compositor/browser_compositor_view_private_mac.mm
index 97914d7e614592d2b6417acad506ba7359f20f4a..fb452fb4c9423ac6822cc3bf633598efb3fec00f 100644
--- a/content/browser/compositor/browser_compositor_view_private_mac.mm
+++ b/content/browser/compositor/browser_compositor_view_private_mac.mm
@@ -75,6 +75,15 @@
compositor_->ScheduleFullRedraw();
}
+- (bool)hasFrameWithSizeInDIP:(gfx::Size)desiredSizeInDIP {
+ gfx::Size layerSize;
+ if (accelerated_layer_)
+ layerSize = gfx::Rect([accelerated_layer_ bounds]).size();
+ if (software_layer_)
+ layerSize = gfx::Rect([software_layer_ bounds]).size();
+ return layerSize == desiredSizeInDIP;
+}
+
- (ui::Compositor*)compositor {
return compositor_.get();
}
@@ -89,6 +98,7 @@
accelerated_latency_info_.insert(accelerated_latency_info_.end(),
latency_info.begin(), latency_info.end());
+ // Disable the fade-in animation as the layer is added, removed, or resized.
ScopedCAActionDisabler disabler;
// If there is already an accelerated layer, but it has the wrong scale
@@ -103,8 +113,6 @@
// If there is not a layer for accelerated frames, create one.
if (!accelerated_layer_) {
- // Disable the fade-in animation as the layer is added.
- ScopedCAActionDisabler disabler;
scoped_refptr<content::CompositingIOSurfaceMac> iosurface =
content::CompositingIOSurfaceMac::Create();
accelerated_layer_.reset([[CompositingIOSurfaceLayer alloc]
@@ -135,7 +143,8 @@
bool bounds_changed = !CGRectEqualToRect(
new_layer_bounds, [accelerated_layer_ bounds]);
[accelerated_layer_ setBounds:new_layer_bounds];
- if (bounds_changed) {
+ if (bounds_changed ||
+ (client_ && client_->BrowserCompositorShouldDrawImmediately())) {
[accelerated_layer_ setNeedsDisplay];
[accelerated_layer_ displayIfNeeded];
}
@@ -143,7 +152,6 @@
// If there was a software layer or an old accelerated layer, remove it.
// Disable the fade-out animation as the layer is removed.
{
- ScopedCAActionDisabler disabler;
[software_layer_ removeFromSuperlayer];
software_layer_.reset();
[old_accelerated_layer resetClient];
« no previous file with comments | « content/browser/compositor/browser_compositor_view_private_mac.h ('k') | content/browser/gpu/gpu_process_host.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698