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 |