| // Copyright 2014 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/raster/tile_task_runner.h" |
| #include "cc/resources/platform_color.h" |
| |
| namespace cc { |
| |
| TileTask::TileTask() : did_schedule_(false), did_complete_(false) { |
| } |
| |
| TileTask::~TileTask() { |
| DCHECK(!did_schedule_); |
| DCHECK(!did_run_ || did_complete_); |
| } |
| |
| void TileTask::WillSchedule() { |
| DCHECK(!did_schedule_); |
| } |
| |
| void TileTask::DidSchedule() { |
| did_schedule_ = true; |
| did_complete_ = false; |
| } |
| |
| bool TileTask::HasBeenScheduled() const { |
| return did_schedule_; |
| } |
| |
| void TileTask::WillComplete() { |
| DCHECK(!did_complete_); |
| } |
| |
| void TileTask::DidComplete() { |
| DCHECK(did_schedule_); |
| DCHECK(!did_complete_); |
| did_schedule_ = false; |
| did_complete_ = true; |
| } |
| |
| bool TileTask::HasCompleted() const { |
| return did_complete_; |
| } |
| |
| ImageDecodeTask::ImageDecodeTask() { |
| } |
| |
| ImageDecodeTask::~ImageDecodeTask() { |
| } |
| |
| RasterTask::RasterTask(ImageDecodeTask::Vector* dependencies) { |
| dependencies_.swap(*dependencies); |
| } |
| |
| RasterTask::~RasterTask() { |
| } |
| |
| bool TileTaskRunner::ResourceFormatRequiresSwizzle(ResourceFormat format) { |
| switch (format) { |
| case RGBA_8888: |
| case BGRA_8888: |
| // Initialize resource using the preferred PlatformColor component |
| // order and swizzle in the shader instead of in software. |
| return !PlatformColor::SameComponentOrder(format); |
| case RGBA_4444: |
| case ETC1: |
| case ALPHA_8: |
| case LUMINANCE_8: |
| case RGB_565: |
| case RED_8: |
| case LUMINANCE_F16: |
| return false; |
| } |
| NOTREACHED(); |
| return false; |
| } |
| |
| } // namespace cc |