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

Unified Diff: cc/trees/layer_tree_host_impl.cc

Issue 15579002: Implement transform/clip support for Android WebView. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Turn on fuzzy comparator for new SoftwareRenderer tests Created 7 years, 6 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: cc/trees/layer_tree_host_impl.cc
diff --git a/cc/trees/layer_tree_host_impl.cc b/cc/trees/layer_tree_host_impl.cc
index 7d8bf91363e4df25e2970fe334ca97f80bcdeb39..5d84fcd34aa3d13963840982887e1da864f0a7b5 100644
--- a/cc/trees/layer_tree_host_impl.cc
+++ b/cc/trees/layer_tree_host_impl.cc
@@ -165,8 +165,6 @@ LayerTreeHostImpl::LayerTreeHostImpl(
wheel_scrolling_(false),
root_layer_scroll_offset_delegate_(NULL),
settings_(settings),
- overdraw_bottom_height_(0.f),
- device_scale_factor_(1.f),
visible_(true),
managed_memory_policy_(
PrioritizedResourceManager::DefaultMemoryAllocationLimit(),
@@ -182,6 +180,8 @@ LayerTreeHostImpl::LayerTreeHostImpl(
last_sent_memory_visible_bytes_(0),
last_sent_memory_visible_and_nearby_bytes_(0),
last_sent_memory_use_bytes_(0),
+ device_scale_factor_(1.f),
+ overdraw_bottom_height_(0.f),
animation_registrar_(AnimationRegistrar::Create()),
rendering_stats_instrumentation_(rendering_stats_instrumentation) {
DCHECK(proxy_->IsImplThread());
@@ -1040,6 +1040,13 @@ void LayerTreeHostImpl::SetManagedMemoryPolicy(
client_->SetNeedsCommitOnImplThread();
}
+void LayerTreeHostImpl::SetExternalDrawConstraints(
+ const gfx::Transform& transform,
+ gfx::Rect viewport) {
+ external_transform_ = transform;
+ external_viewport_ = viewport;
+}
+
void LayerTreeHostImpl::SetNeedsRedrawRect(gfx::Rect damage_rect) {
client_->SetNeedsRedrawRectOnImplThread(damage_rect);
}
@@ -1221,17 +1228,13 @@ void LayerTreeHostImpl::SetNeedsBeginFrame(bool enable) {
output_surface_->SetNeedsBeginFrame(enable);
}
-gfx::Size LayerTreeHostImpl::DeviceViewportSize() const {
- return device_viewport_size();
-}
-
float LayerTreeHostImpl::DeviceScaleFactor() const {
return device_scale_factor_;
}
gfx::SizeF LayerTreeHostImpl::VisibleViewportSize() const {
gfx::SizeF dip_size =
- gfx::ScaleSize(DeviceViewportSize(), 1.f / device_scale_factor());
+ gfx::ScaleSize(device_viewport_size(), 1.f / device_scale_factor());
// The clip layer should be used if non-overlay scrollbars may exist since
// it adjusts for them.
@@ -1553,6 +1556,17 @@ void LayerTreeHostImpl::SetDeviceScaleFactor(float device_scale_factor) {
SetFullRootLayerDamage();
}
+gfx::Rect LayerTreeHostImpl::DeviceViewport() const {
+ if (external_viewport_.IsEmpty())
+ return gfx::Rect(device_viewport_size_);
+
+ return external_viewport_;
+}
+
+const gfx::Transform& LayerTreeHostImpl::DeviceTransform() const {
+ return external_transform_;
+}
+
void LayerTreeHostImpl::UpdateMaxScrollOffset() {
active_tree_->UpdateMaxScrollOffset();
}

Powered by Google App Engine
This is Rietveld 408576698