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

Side by Side 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 unified diff | Download patch
OLDNEW
1 // Copyright 2011 The Chromium Authors. All rights reserved. 1 // Copyright 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "cc/trees/layer_tree_host_impl.h" 5 #include "cc/trees/layer_tree_host_impl.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <limits> 8 #include <limits>
9 9
10 #include "base/basictypes.h" 10 #include "base/basictypes.h"
(...skipping 1327 matching lines...) Expand 10 before | Expand all | Expand 10 after
1338 } 1338 }
1339 1339
1340 if (needs_commit) 1340 if (needs_commit)
1341 client_->SetNeedsCommitOnImplThread(); 1341 client_->SetNeedsCommitOnImplThread();
1342 } 1342 }
1343 1343
1344 void LayerTreeHostImpl::SetExternalDrawConstraints( 1344 void LayerTreeHostImpl::SetExternalDrawConstraints(
1345 const gfx::Transform& transform, 1345 const gfx::Transform& transform,
1346 const gfx::Rect& viewport, 1346 const gfx::Rect& viewport,
1347 const gfx::Rect& clip, 1347 const gfx::Rect& clip,
1348 const gfx::Rect& device_rect_for_tiling,
1348 bool resourceless_software_draw) { 1349 bool resourceless_software_draw) {
1349 if (external_transform_ != transform || external_viewport_ != viewport || 1350 if (external_transform_ != transform || external_viewport_ != viewport ||
1350 resourceless_software_draw_ != resourceless_software_draw) { 1351 resourceless_software_draw_ != resourceless_software_draw) {
1351 active_tree_->set_needs_update_draw_properties(); 1352 active_tree_->set_needs_update_draw_properties();
1352 } 1353 }
1353 1354
1354 external_transform_ = transform;
1355 external_viewport_ = viewport; 1355 external_viewport_ = viewport;
1356 external_clip_ = clip; 1356 external_clip_ = clip;
1357 resourceless_software_draw_ = resourceless_software_draw; 1357 resourceless_software_draw_ = resourceless_software_draw;
1358
1359 // |external_transform_| for Android WebView child compositor hardware draw
1360 // is an identity matrix. For software draw, |external_transform_| is what's
1361 // passed in.
1362 if (!resourceless_software_draw_) {
1363 external_transform_ = gfx::Transform();
1364 external_viewport_rect_for_tiling_ = device_rect_for_tiling;
1365 external_transform_for_tiling_ = transform;
aelias_OOO_until_Jul13 2014/07/16 00:32:56 I find it confusing to repurpose the "transform" a
hush (inactive) 2014/07/16 20:45:32 I added external_tiling_transform as the parameter
1366 } else {
1367 external_transform_ = transform;
1368 }
1358 } 1369 }
1359 1370
1360 void LayerTreeHostImpl::SetNeedsRedrawRect(const gfx::Rect& damage_rect) { 1371 void LayerTreeHostImpl::SetNeedsRedrawRect(const gfx::Rect& damage_rect) {
1361 if (damage_rect.IsEmpty()) 1372 if (damage_rect.IsEmpty())
1362 return; 1373 return;
1363 NotifySwapPromiseMonitorsOfSetNeedsRedraw(); 1374 NotifySwapPromiseMonitorsOfSetNeedsRedraw();
1364 client_->SetNeedsRedrawRectOnImplThread(damage_rect); 1375 client_->SetNeedsRedrawRectOnImplThread(damage_rect);
1365 } 1376 }
1366 1377
1367 void LayerTreeHostImpl::BeginFrame(const BeginFrameArgs& args) { 1378 void LayerTreeHostImpl::BeginFrame(const BeginFrameArgs& args) {
(...skipping 791 matching lines...) Expand 10 before | Expand all | Expand 10 after
2159 device_scale_factor_ = device_scale_factor; 2170 device_scale_factor_ = device_scale_factor;
2160 2171
2161 UpdateInnerViewportContainerSize(); 2172 UpdateInnerViewportContainerSize();
2162 SetFullRootLayerDamage(); 2173 SetFullRootLayerDamage();
2163 } 2174 }
2164 2175
2165 gfx::Size LayerTreeHostImpl::DrawViewportSize() const { 2176 gfx::Size LayerTreeHostImpl::DrawViewportSize() const {
2166 return DeviceViewport().size(); 2177 return DeviceViewport().size();
2167 } 2178 }
2168 2179
2180 gfx::Rect LayerTreeHostImpl::TilingViewportRect() const {
2181 gfx::Rect empty;
2182 if (empty == external_viewport_rect_for_tiling_)
2183 return gfx::Rect(DrawViewportSize());
2184
2185 return external_viewport_rect_for_tiling_;
2186 }
2187
2188 const gfx::Transform& LayerTreeHostImpl::TilingTransform() const {
2189 return external_transform_for_tiling_;
2190 }
2191
2169 gfx::Rect LayerTreeHostImpl::DeviceViewport() const { 2192 gfx::Rect LayerTreeHostImpl::DeviceViewport() const {
2170 if (external_viewport_.IsEmpty()) 2193 if (external_viewport_.IsEmpty())
2171 return gfx::Rect(device_viewport_size_); 2194 return gfx::Rect(device_viewport_size_);
2172 2195
2173 return external_viewport_; 2196 return external_viewport_;
2174 } 2197 }
2175 2198
2176 gfx::Rect LayerTreeHostImpl::DeviceClip() const { 2199 gfx::Rect LayerTreeHostImpl::DeviceClip() const {
2177 if (external_clip_.IsEmpty()) 2200 if (external_clip_.IsEmpty())
2178 return DeviceViewport(); 2201 return DeviceViewport();
(...skipping 1086 matching lines...) Expand 10 before | Expand all | Expand 10 after
3265 } 3288 }
3266 3289
3267 void LayerTreeHostImpl::UnregisterPictureLayerImpl(PictureLayerImpl* layer) { 3290 void LayerTreeHostImpl::UnregisterPictureLayerImpl(PictureLayerImpl* layer) {
3268 std::vector<PictureLayerImpl*>::iterator it = 3291 std::vector<PictureLayerImpl*>::iterator it =
3269 std::find(picture_layers_.begin(), picture_layers_.end(), layer); 3292 std::find(picture_layers_.begin(), picture_layers_.end(), layer);
3270 DCHECK(it != picture_layers_.end()); 3293 DCHECK(it != picture_layers_.end());
3271 picture_layers_.erase(it); 3294 picture_layers_.erase(it);
3272 } 3295 }
3273 3296
3274 } // namespace cc 3297 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698