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

Unified Diff: cc/trees/layer_tree_host_impl.cc

Issue 394113002: Tiling priorities in Android Webview. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: 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: 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 94b8bfa1cfac7e9daaa5cef94a4e41954d7a8880..3e3593b648008f310d14914c9e534c5a2971944a 100644
--- a/cc/trees/layer_tree_host_impl.cc
+++ b/cc/trees/layer_tree_host_impl.cc
@@ -66,6 +66,7 @@
#include "cc/trees/tree_synchronizer.h"
#include "gpu/GLES2/gl2extchromium.h"
#include "ui/gfx/frame_time.h"
+#include "ui/gfx/geometry/rect_conversions.h"
#include "ui/gfx/size_conversions.h"
#include "ui/gfx/vector2d_conversions.h"
@@ -1345,15 +1346,29 @@ void LayerTreeHostImpl::SetExternalDrawConstraints(
const gfx::Transform& transform,
const gfx::Rect& viewport,
const gfx::Rect& clip,
+ const gfx::Rect& external_tiling_rect,
+ const gfx::Transform& external_tiling_transform,
enne (OOO) 2014/07/25 18:44:30 Does cc even need to know about external_tiling_tr
bool resourceless_software_draw) {
+ gfx::Rect viewport_rect_for_tile_priority;
+ if (!resourceless_software_draw_) {
+ gfx::Transform screen_to_view(gfx::Transform::kSkipInitialization);
+ if (external_tiling_transform.GetInverse(&screen_to_view)) {
+ // Convert from screen space to view space.
+ viewport_rect_for_tile_priority = gfx::ToEnclosingRect(
+ MathUtil::ProjectClippedRect(screen_to_view, external_tiling_rect));
+ }
+ }
+
if (external_transform_ != transform || external_viewport_ != viewport ||
- resourceless_software_draw_ != resourceless_software_draw) {
+ resourceless_software_draw_ != resourceless_software_draw ||
+ viewport_rect_for_tile_priority_ != viewport_rect_for_tile_priority) {
active_tree_->set_needs_update_draw_properties();
}
external_transform_ = transform;
external_viewport_ = viewport;
external_clip_ = clip;
+ viewport_rect_for_tile_priority_ = viewport_rect_for_tile_priority;
resourceless_software_draw_ = resourceless_software_draw;
}
@@ -2162,6 +2177,10 @@ void LayerTreeHostImpl::SetDeviceScaleFactor(float device_scale_factor) {
SetFullRootLayerDamage();
}
+const gfx::Rect LayerTreeHostImpl::ViewportRectForTilePriority() const {
+ return viewport_rect_for_tile_priority_;
+}
+
gfx::Size LayerTreeHostImpl::DrawViewportSize() const {
return DeviceViewport().size();
}

Powered by Google App Engine
This is Rietveld 408576698