Index: cc/resources/tile.cc |
diff --git a/cc/resources/tile.cc b/cc/resources/tile.cc |
index 7b1f00aee760db3b0446bc2f3b45690059078ccd..65a17387dd3edeaf5e741053a11bbe9396bd14ff 100644 |
--- a/cc/resources/tile.cc |
+++ b/cc/resources/tile.cc |
@@ -4,6 +4,8 @@ |
#include "cc/resources/tile.h" |
+#include <algorithm> |
+ |
#include "cc/base/math_util.h" |
#include "cc/debug/traced_value.h" |
#include "cc/resources/tile_manager.h" |
@@ -81,4 +83,27 @@ size_t Tile::GPUMemoryUsageInBytes() const { |
return total_size; |
} |
+RasterMode Tile::DetermineRasterModeForTree(WhichTree tree) const { |
+ return DetermineRasterModeForResolution(priority(tree).resolution); |
+} |
+ |
+RasterMode Tile::DetermineOverallRasterMode() const { |
+ return DetermineRasterModeForResolution(managed_state_.resolution); |
+} |
+ |
+RasterMode Tile::DetermineRasterModeForResolution( |
+ TileResolution resolution) const { |
+ RasterMode current_mode = managed_state_.raster_mode; |
+ RasterMode raster_mode = HIGH_QUALITY_RASTER_MODE; |
+ if (resolution == LOW_RESOLUTION) |
+ raster_mode = LOW_QUALITY_RASTER_MODE; |
+ else if (can_use_lcd_text()) |
+ raster_mode = HIGH_QUALITY_RASTER_MODE; |
+ else if (managed_state_.tile_versions[current_mode].has_text_ || |
+ !managed_state_.tile_versions[current_mode].IsReadyToDraw()) |
+ raster_mode = HIGH_QUALITY_NO_LCD_RASTER_MODE; |
+ |
+ return std::min(raster_mode, current_mode); |
+} |
+ |
} // namespace cc |