Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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/resources/managed_tile_state.h" | 5 #include "cc/resources/managed_tile_state.h" |
| 6 | 6 |
| 7 #include <limits> | 7 #include <limits> |
| 8 #include <string> | 8 #include <string> |
| 9 | 9 |
| 10 #include "base/debug/trace_event_argument.h" | 10 #include "base/debug/trace_event_argument.h" |
| (...skipping 20 matching lines...) Expand all Loading... | |
| 31 case NEVER_BIN: | 31 case NEVER_BIN: |
| 32 return "NEVER_BIN"; | 32 return "NEVER_BIN"; |
| 33 case NUM_BINS: | 33 case NUM_BINS: |
| 34 NOTREACHED(); | 34 NOTREACHED(); |
| 35 return "Invalid Bin (NUM_BINS)"; | 35 return "Invalid Bin (NUM_BINS)"; |
| 36 } | 36 } |
| 37 return "Invalid Bin (UNKNOWN)"; | 37 return "Invalid Bin (UNKNOWN)"; |
| 38 } | 38 } |
| 39 | 39 |
| 40 ManagedTileState::ManagedTileState() | 40 ManagedTileState::ManagedTileState() |
| 41 : raster_mode(LOW_QUALITY_RASTER_MODE), | 41 : bin(NEVER_BIN), |
| 42 bin(NEVER_BIN), | |
| 43 resolution(NON_IDEAL_RESOLUTION), | 42 resolution(NON_IDEAL_RESOLUTION), |
| 44 required_for_activation(false), | 43 required_for_activation(false), |
| 45 priority_bin(TilePriority::EVENTUALLY), | 44 priority_bin(TilePriority::EVENTUALLY), |
| 46 distance_to_visible(std::numeric_limits<float>::infinity()), | 45 distance_to_visible(std::numeric_limits<float>::infinity()), |
| 47 visible_and_ready_to_draw(false), | 46 visible_and_ready_to_draw(false), |
| 48 scheduled_priority(0) {} | 47 scheduled_priority(0) { |
| 48 } | |
| 49 | 49 |
| 50 ManagedTileState::TileVersion::TileVersion() | 50 ManagedTileState::TileDrawInfo::TileDrawInfo() |
| 51 : mode_(RESOURCE_MODE), solid_color_(SK_ColorWHITE) { | 51 : mode_(RESOURCE_MODE), solid_color_(SK_ColorWHITE) { |
| 52 } | 52 } |
| 53 | 53 |
| 54 ManagedTileState::TileVersion::~TileVersion() { DCHECK(!resource_); } | 54 ManagedTileState::TileDrawInfo::~TileDrawInfo() { |
| 55 DCHECK(!resource_); | |
| 56 } | |
| 55 | 57 |
| 56 bool ManagedTileState::TileVersion::IsReadyToDraw() const { | 58 bool ManagedTileState::TileDrawInfo::IsReadyToDraw() const { |
| 57 switch (mode_) { | 59 switch (mode_) { |
| 58 case RESOURCE_MODE: | 60 case RESOURCE_MODE: |
| 59 return !!resource_; | 61 return !!resource_; |
| 60 case SOLID_COLOR_MODE: | 62 case SOLID_COLOR_MODE: |
| 61 case PICTURE_PILE_MODE: | 63 case PICTURE_PILE_MODE: |
| 62 return true; | 64 return true; |
| 63 } | 65 } |
| 64 NOTREACHED(); | 66 NOTREACHED(); |
| 65 return false; | 67 return false; |
| 66 } | 68 } |
| 67 | 69 |
| 68 size_t ManagedTileState::TileVersion::GPUMemoryUsageInBytes() const { | 70 size_t ManagedTileState::TileDrawInfo::GPUMemoryUsageInBytes() const { |
| 69 if (!resource_) | 71 if (!resource_) |
| 70 return 0; | 72 return 0; |
| 71 return resource_->bytes(); | 73 return resource_->bytes(); |
| 72 } | 74 } |
| 73 | 75 |
| 74 ManagedTileState::~ManagedTileState() {} | 76 ManagedTileState::~ManagedTileState() {} |
| 75 | 77 |
| 76 void ManagedTileState::AsValueInto(base::debug::TracedValue* state) const { | 78 void ManagedTileState::AsValueInto(base::debug::TracedValue* state) const { |
| 77 bool has_resource = false; | 79 bool has_resource = false; |
| 78 bool has_active_task = false; | 80 bool has_active_task = false; |
| 79 for (int mode = 0; mode < NUM_RASTER_MODES; ++mode) { | 81 has_resource |= (draw_info_.resource_.get() != 0); |
|
danakj
2014/09/26 22:38:21
just bool has_resource = ...
vmpstr
2014/09/26 22:51:39
Done.
| |
| 80 has_resource |= (tile_versions[mode].resource_.get() != 0); | 82 has_active_task |= (draw_info_.raster_task_.get() != 0); |
|
danakj
2014/09/26 22:38:21
ditto
vmpstr
2014/09/26 22:51:39
Done.
| |
| 81 has_active_task |= (tile_versions[mode].raster_task_.get() != 0); | |
| 82 } | |
| 83 | 83 |
| 84 bool is_using_gpu_memory = has_resource || has_active_task; | 84 bool is_using_gpu_memory = has_resource || has_active_task; |
| 85 | 85 |
| 86 state->SetBoolean("has_resource", has_resource); | 86 state->SetBoolean("has_resource", has_resource); |
| 87 state->SetBoolean("is_using_gpu_memory", is_using_gpu_memory); | 87 state->SetBoolean("is_using_gpu_memory", is_using_gpu_memory); |
| 88 state->SetString("bin", ManagedTileBinToString(bin)); | 88 state->SetString("bin", ManagedTileBinToString(bin)); |
| 89 state->SetString("resolution", TileResolutionToString(resolution)); | 89 state->SetString("resolution", TileResolutionToString(resolution)); |
| 90 state->SetString("priority_bin", TilePriorityBinToString(priority_bin)); | 90 state->SetString("priority_bin", TilePriorityBinToString(priority_bin)); |
| 91 state->SetDouble("distance_to_visible", | 91 state->SetDouble("distance_to_visible", |
| 92 MathUtil::AsFloatSafely(distance_to_visible)); | 92 MathUtil::AsFloatSafely(distance_to_visible)); |
| 93 state->SetBoolean("required_for_activation", required_for_activation); | 93 state->SetBoolean("required_for_activation", required_for_activation); |
| 94 state->SetBoolean( | 94 state->SetBoolean("is_solid_color", |
| 95 "is_solid_color", | 95 draw_info_.mode_ == TileDrawInfo::SOLID_COLOR_MODE); |
| 96 tile_versions[raster_mode].mode_ == TileVersion::SOLID_COLOR_MODE); | 96 state->SetBoolean("is_transparent", |
| 97 state->SetBoolean( | 97 draw_info_.mode_ == TileDrawInfo::SOLID_COLOR_MODE && |
| 98 "is_transparent", | 98 !SkColorGetA(draw_info_.solid_color_)); |
| 99 tile_versions[raster_mode].mode_ == TileVersion::SOLID_COLOR_MODE && | |
| 100 !SkColorGetA(tile_versions[raster_mode].solid_color_)); | |
| 101 state->SetInteger("scheduled_priority", scheduled_priority); | 99 state->SetInteger("scheduled_priority", scheduled_priority); |
| 102 } | 100 } |
| 103 | 101 |
| 104 } // namespace cc | 102 } // namespace cc |
| OLD | NEW |