| // Copyright 2013 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "cc/resources/tile_draw_info.h" |
| |
| #include "cc/base/math_util.h" |
| |
| namespace cc { |
| |
| TileDrawInfo::TileDrawInfo() |
| : mode_(RESOURCE_MODE), solid_color_(SK_ColorWHITE) { |
| } |
| |
| TileDrawInfo::~TileDrawInfo() { |
| DCHECK(!resource_); |
| } |
| |
| bool TileDrawInfo::IsReadyToDraw() const { |
| switch (mode_) { |
| case RESOURCE_MODE: |
| return !!resource_; |
| case SOLID_COLOR_MODE: |
| case OOM_MODE: |
| return true; |
| } |
| NOTREACHED(); |
| return false; |
| } |
| |
| void TileDrawInfo::AsValueInto(base::trace_event::TracedValue* state) const { |
| state->SetBoolean("is_solid_color", mode_ == SOLID_COLOR_MODE); |
| state->SetBoolean("is_transparent", |
| mode_ == SOLID_COLOR_MODE && !SkColorGetA(solid_color_)); |
| } |
| |
| } // namespace cc |