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

Unified Diff: cc/trees/layer_tree_host_impl.h

Issue 23171014: Fix UpdateTilePriorities viewport in Android WebView. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add tests Created 7 years, 3 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.h
diff --git a/cc/trees/layer_tree_host_impl.h b/cc/trees/layer_tree_host_impl.h
index f5d7384cf6a46e67faa4b8475bb59f358e2d00a7..356828a7d3d1e9e79e37768d9d2928421f8facf8 100644
--- a/cc/trees/layer_tree_host_impl.h
+++ b/cc/trees/layer_tree_host_impl.h
@@ -176,7 +176,7 @@ class CC_EXPORT LayerTreeHostImpl
// Returns the currently visible viewport size in DIP. This value excludes
// the URL bar and non-overlay scrollbars.
- gfx::SizeF VisibleViewportSize() const;
+ gfx::SizeF UnscaledScrollableViewportSize() const;
// Evict all textures by enforcing a memory policy with an allocation of 0.
void EvictTexturesForTesting();
@@ -186,8 +186,13 @@ class CC_EXPORT LayerTreeHostImpl
// immediately if any notifications had been blocked while blocking.
virtual void BlockNotifyReadyToActivateForTesting(bool block);
+ bool device_viewport_valid_for_tile_management() const {
+ return device_viewport_valid_for_tile_management_;
+ }
+
// RendererClient implementation
virtual gfx::Rect DeviceViewport() const OVERRIDE;
+ virtual gfx::Rect DeviceClip() const OVERRIDE;
private:
virtual float DeviceScaleFactor() const OVERRIDE;
virtual const LayerTreeSettings& Settings() const OVERRIDE;
@@ -208,8 +213,11 @@ class CC_EXPORT LayerTreeHostImpl
virtual void ReleaseGL() OVERRIDE;
virtual void SetNeedsRedrawRect(gfx::Rect rect) OVERRIDE;
virtual void BeginFrame(const BeginFrameArgs& args) OVERRIDE;
- virtual void SetExternalDrawConstraints(const gfx::Transform& transform,
- gfx::Rect viewport) OVERRIDE;
+ virtual void SetExternalDrawConstraints(
+ const gfx::Transform& transform,
+ gfx::Rect viewport,
+ gfx::Rect clip,
+ bool valid_for_tile_management) OVERRIDE;
virtual void SetExternalStencilTest(bool enabled) OVERRIDE;
virtual void DidLoseOutputSurface() OVERRIDE;
virtual void OnSwapBuffersComplete(const CompositorFrameAck* ack) OVERRIDE;
@@ -273,7 +281,6 @@ class CC_EXPORT LayerTreeHostImpl
size_t memory_allocation_limit_bytes() const;
void SetViewportSize(gfx::Size device_viewport_size);
- gfx::Size device_viewport_size() const { return device_viewport_size_; }
void SetOverdrawBottomHeight(float overdraw_bottom_height);
float overdraw_bottom_height() const { return overdraw_bottom_height_; }
@@ -412,6 +419,8 @@ class CC_EXPORT LayerTreeHostImpl
return animation_registrar_->active_animation_controllers();
}
+ bool manage_tiles_needed() const { return manage_tiles_needed_; }
+
LayerTreeHostImplClient* client_;
Proxy* proxy_;
@@ -545,12 +554,18 @@ class CC_EXPORT LayerTreeHostImpl
// the page when the keyboard is up.
float overdraw_bottom_height_;
- // Optional top-level constraints that can be set by the OutputSurface. The
- // external_viewport_'s size takes precedence over device_viewport_size_ for
- // DrawQuad generation and Renderer; however, device_viewport_size_ is still
- // used for scrollable size.
+ // Optional top-level constraints that can be set by the OutputSurface.
+ // - external_transform_ applies a transform above the root layer
+ // - external_viewport_ is used DrawProperties, tile management and
+ // glViewport/window projection matrix.
+ // - external_clip_ specifies a top-level clip rect
+ // - external_stencil_test_enabled_ tells CC to respect existing stencil bits
+ // (When these are specified, device_viewport_size_ remains used only for
+ // scrollable size.)
gfx::Transform external_transform_;
gfx::Rect external_viewport_;
+ gfx::Rect external_clip_;
+ bool device_viewport_valid_for_tile_management_;
bool external_stencil_test_enabled_;
gfx::Rect viewport_damage_rect_;

Powered by Google App Engine
This is Rietveld 408576698