OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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/raster/tile_task_runner.h" | 5 #include "cc/raster/tile_task_runner.h" |
6 #include "cc/resources/platform_color.h" | 6 #include "cc/resources/platform_color.h" |
7 | 7 |
8 namespace cc { | 8 namespace cc { |
9 | 9 |
10 TileTask::TileTask() : did_schedule_(false), did_complete_(false) { | 10 TileTask::TileTask(bool supports_concurrent_execution) |
11 } | 11 : supports_concurrent_execution_(supports_concurrent_execution), |
| 12 did_schedule_(false), |
| 13 did_complete_(false) {} |
| 14 |
| 15 TileTask::TileTask(bool supports_concurrent_execution, |
| 16 TileTask::Vector* dependencies) |
| 17 : supports_concurrent_execution_(supports_concurrent_execution), |
| 18 dependencies_(std::move(*dependencies)), |
| 19 did_schedule_(false), |
| 20 did_complete_(false) {} |
12 | 21 |
13 TileTask::~TileTask() { | 22 TileTask::~TileTask() { |
14 DCHECK(!did_schedule_); | 23 DCHECK(!did_schedule_); |
15 DCHECK(!did_run_ || did_complete_); | 24 DCHECK(!did_run_ || did_complete_); |
16 } | 25 } |
17 | 26 |
| 27 bool TileTask::SupportsConcurrentExecution() const { |
| 28 return supports_concurrent_execution_; |
| 29 } |
| 30 |
18 void TileTask::WillSchedule() { | 31 void TileTask::WillSchedule() { |
19 DCHECK(!did_schedule_); | 32 DCHECK(!did_schedule_); |
20 } | 33 } |
21 | 34 |
22 void TileTask::DidSchedule() { | 35 void TileTask::DidSchedule() { |
23 did_schedule_ = true; | 36 did_schedule_ = true; |
24 did_complete_ = false; | 37 did_complete_ = false; |
25 } | 38 } |
26 | 39 |
27 bool TileTask::HasBeenScheduled() const { | 40 bool TileTask::HasBeenScheduled() const { |
28 return did_schedule_; | 41 return did_schedule_; |
29 } | 42 } |
30 | 43 |
31 void TileTask::WillComplete() { | 44 void TileTask::WillComplete() { |
32 DCHECK(!did_complete_); | 45 DCHECK(!did_complete_); |
33 } | 46 } |
34 | 47 |
35 void TileTask::DidComplete() { | 48 void TileTask::DidComplete() { |
36 DCHECK(did_schedule_); | 49 DCHECK(did_schedule_); |
37 DCHECK(!did_complete_); | 50 DCHECK(!did_complete_); |
38 did_schedule_ = false; | 51 did_schedule_ = false; |
39 did_complete_ = true; | 52 did_complete_ = true; |
40 } | 53 } |
41 | 54 |
42 bool TileTask::HasCompleted() const { | 55 bool TileTask::HasCompleted() const { |
43 return did_complete_; | 56 return did_complete_; |
44 } | 57 } |
45 | 58 |
46 ImageDecodeTask::ImageDecodeTask() { | |
47 } | |
48 | |
49 ImageDecodeTask::ImageDecodeTask(scoped_refptr<ImageDecodeTask> dependency) | |
50 : dependency_(std::move(dependency)) {} | |
51 | |
52 ImageDecodeTask::~ImageDecodeTask() { | |
53 } | |
54 | |
55 bool ImageDecodeTask::SupportsConcurrentExecution() const { | |
56 return true; | |
57 } | |
58 | |
59 RasterTask::RasterTask(ImageDecodeTask::Vector* dependencies) { | |
60 dependencies_.swap(*dependencies); | |
61 } | |
62 | |
63 RasterTask::~RasterTask() { | |
64 } | |
65 | |
66 bool TileTaskRunner::ResourceFormatRequiresSwizzle(ResourceFormat format) { | 59 bool TileTaskRunner::ResourceFormatRequiresSwizzle(ResourceFormat format) { |
67 switch (format) { | 60 switch (format) { |
68 case RGBA_8888: | 61 case RGBA_8888: |
69 case BGRA_8888: | 62 case BGRA_8888: |
70 // Initialize resource using the preferred PlatformColor component | 63 // Initialize resource using the preferred PlatformColor component |
71 // order and swizzle in the shader instead of in software. | 64 // order and swizzle in the shader instead of in software. |
72 return !PlatformColor::SameComponentOrder(format); | 65 return !PlatformColor::SameComponentOrder(format); |
73 case RGBA_4444: | 66 case RGBA_4444: |
74 case ETC1: | 67 case ETC1: |
75 case ALPHA_8: | 68 case ALPHA_8: |
76 case LUMINANCE_8: | 69 case LUMINANCE_8: |
77 case RGB_565: | 70 case RGB_565: |
78 case RED_8: | 71 case RED_8: |
79 case LUMINANCE_F16: | 72 case LUMINANCE_F16: |
80 return false; | 73 return false; |
81 } | 74 } |
82 NOTREACHED(); | 75 NOTREACHED(); |
83 return false; | 76 return false; |
84 } | 77 } |
85 | 78 |
86 } // namespace cc | 79 } // namespace cc |
OLD | NEW |