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

Unified Diff: cc/layers/picture_layer_impl.cc

Issue 15995033: cc: Low quality support for low res tiles (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase fix 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
« no previous file with comments | « no previous file | cc/resources/managed_tile_state.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/layers/picture_layer_impl.cc
diff --git a/cc/layers/picture_layer_impl.cc b/cc/layers/picture_layer_impl.cc
index 77d4bca44e465840526451da1a74fbe2a8a46718..c13058895f9ce4c5adcc29aa6fbe579b762fa7b7 100644
--- a/cc/layers/picture_layer_impl.cc
+++ b/cc/layers/picture_layer_impl.cc
@@ -163,8 +163,10 @@ void PictureLayerImpl::AppendQuads(QuadSink* quad_sink,
++iter) {
SkColor color;
float width;
- if (*iter && iter->tile_version().IsReadyToDraw()) {
- ManagedTileState::TileVersion::Mode mode = iter->tile_version().mode();
+ TileRasterMode raster_mode;
+ if (*iter && iter->IsReadyToDraw(&raster_mode)) {
+ ManagedTileState::TileVersion::Mode mode =
+ iter->tile_version(raster_mode).mode();
if (mode == ManagedTileState::TileVersion::SOLID_COLOR_MODE) {
color = DebugColors::SolidColorTileBorderColor();
width = DebugColors::SolidColorTileBorderWidth(layer_tree_impl());
@@ -207,7 +209,8 @@ void PictureLayerImpl::AppendQuads(QuadSink* quad_sink,
iter;
++iter) {
gfx::Rect geometry_rect = iter.geometry_rect();
- if (!*iter || !iter->tile_version().IsReadyToDraw()) {
+ TileRasterMode raster_mode;
+ if (!*iter || !iter->IsReadyToDraw(&raster_mode)) {
if (DrawCheckerboardForMissingTiles()) {
// TODO(enne): Figure out how to show debug "invalidated checker" color
scoped_ptr<CheckerboardDrawQuad> quad = CheckerboardDrawQuad::Create();
@@ -227,7 +230,8 @@ void PictureLayerImpl::AppendQuads(QuadSink* quad_sink,
continue;
}
- const ManagedTileState::TileVersion& tile_version = iter->tile_version();
+ const ManagedTileState::TileVersion& tile_version =
+ iter->tile_version(raster_mode);
switch (tile_version.mode()) {
case ManagedTileState::TileVersion::RESOURCE_MODE: {
gfx::RectF texture_rect = iter.texture_rect();
@@ -613,15 +617,19 @@ ResourceProvider::ResourceId PictureLayerImpl::ContentsResourceId() const {
iter;
++iter) {
// Mask resource not ready yet.
- if (!*iter ||
- iter->tile_version().mode() !=
- ManagedTileState::TileVersion::RESOURCE_MODE ||
- !iter->tile_version().IsReadyToDraw())
+ TileRasterMode raster_mode;
+ if (!*iter || !iter->IsReadyToDraw(&raster_mode))
return 0;
+
+ if (iter->tile_version(raster_mode).mode() !=
+ ManagedTileState::TileVersion::RESOURCE_MODE)
+ return 0;
+
// Masks only supported if they fit on exactly one tile.
if (iter.geometry_rect() != content_rect)
return 0;
- return iter->tile_version().get_resource_id();
+
+ return iter->tile_version(raster_mode).get_resource_id();
}
return 0;
}
@@ -671,7 +679,7 @@ void PictureLayerImpl::MarkVisibleResourcesAsRequired() const {
rect);
iter;
++iter) {
- if (!*iter || !iter->tile_version().IsReadyToDraw())
+ if (!*iter || !iter->IsReadyToDraw(NULL))
continue;
// This iteration is over the visible content rect which is potentially
« no previous file with comments | « no previous file | cc/resources/managed_tile_state.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698