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/raster/tile_task_worker_pool.h" | 5 #include "cc/raster/tile_task_worker_pool.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 | 8 |
9 #include "base/trace_event/trace_event.h" | 9 #include "base/trace_event/trace_event.h" |
10 #include "cc/playback/raster_source.h" | 10 #include "cc/playback/raster_source.h" |
11 #include "cc/raster/texture_compressor.h" | 11 #include "cc/raster/texture_compressor.h" |
12 #include "third_party/skia/include/core/SkCanvas.h" | 12 #include "third_party/skia/include/core/SkCanvas.h" |
13 #include "third_party/skia/include/core/SkSurface.h" | 13 #include "third_party/skia/include/core/SkSurface.h" |
14 | 14 |
15 namespace cc { | 15 namespace cc { |
16 | 16 |
17 TileTaskWorkerPool::TileTaskWorkerPool() {} | 17 TileTaskWorkerPool::TileTaskWorkerPool() {} |
18 | 18 |
19 TileTaskWorkerPool::~TileTaskWorkerPool() {} | 19 TileTaskWorkerPool::~TileTaskWorkerPool() {} |
20 | 20 |
21 // static | |
22 void TileTaskWorkerPool::ScheduleTasksOnOriginThread(TileTaskClient* client, | |
23 TaskGraph* graph) { | |
24 TRACE_EVENT0("cc", "TileTaskWorkerPool::ScheduleTasksOnOriginThread"); | |
25 | |
26 for (TaskGraph::Node::Vector::iterator it = graph->nodes.begin(); | |
27 it != graph->nodes.end(); ++it) { | |
28 TaskGraph::Node& node = *it; | |
29 TileTask* task = static_cast<TileTask*>(node.task); | |
30 | |
31 if (!task->HasBeenScheduled()) { | |
32 task->WillSchedule(); | |
33 task->ScheduleOnOriginThread(client); | |
34 task->DidSchedule(); | |
35 } | |
36 } | |
37 } | |
38 | |
39 namespace { | 21 namespace { |
40 | 22 |
41 bool IsSupportedPlaybackToMemoryFormat(ResourceFormat format) { | 23 bool IsSupportedPlaybackToMemoryFormat(ResourceFormat format) { |
42 switch (format) { | 24 switch (format) { |
43 case RGBA_4444: | 25 case RGBA_4444: |
44 case RGBA_8888: | 26 case RGBA_8888: |
45 case BGRA_8888: | 27 case BGRA_8888: |
46 case ETC1: | 28 case ETC1: |
47 return true; | 29 return true; |
48 case ALPHA_8: | 30 case ALPHA_8: |
(...skipping 20 matching lines...) Expand all Loading... |
69 const gfx::Rect& canvas_playback_rect, | 51 const gfx::Rect& canvas_playback_rect, |
70 float scale, | 52 float scale, |
71 const RasterSource::PlaybackSettings& playback_settings) { | 53 const RasterSource::PlaybackSettings& playback_settings) { |
72 TRACE_EVENT0("cc", "TileTaskWorkerPool::PlaybackToMemory"); | 54 TRACE_EVENT0("cc", "TileTaskWorkerPool::PlaybackToMemory"); |
73 | 55 |
74 DCHECK(IsSupportedPlaybackToMemoryFormat(format)) << format; | 56 DCHECK(IsSupportedPlaybackToMemoryFormat(format)) << format; |
75 | 57 |
76 // Uses kPremul_SkAlphaType since the result is not known to be opaque. | 58 // Uses kPremul_SkAlphaType since the result is not known to be opaque. |
77 SkImageInfo info = | 59 SkImageInfo info = |
78 SkImageInfo::MakeN32(size.width(), size.height(), kPremul_SkAlphaType); | 60 SkImageInfo::MakeN32(size.width(), size.height(), kPremul_SkAlphaType); |
79 | |
80 // Use unknown pixel geometry to disable LCD text. | 61 // Use unknown pixel geometry to disable LCD text. |
81 SkSurfaceProps surface_props(0, kUnknown_SkPixelGeometry); | 62 SkSurfaceProps surface_props(0, kUnknown_SkPixelGeometry); |
82 if (raster_source->CanUseLCDText()) { | 63 if (raster_source->CanUseLCDText()) { |
83 // LegacyFontHost will get LCD text and skia figures out what type to use. | 64 // LegacyFontHost will get LCD text and skia figures out what type to use. |
84 surface_props = SkSurfaceProps(SkSurfaceProps::kLegacyFontHost_InitType); | 65 surface_props = SkSurfaceProps(SkSurfaceProps::kLegacyFontHost_InitType); |
85 } | 66 } |
86 | 67 |
87 if (!stride) | 68 if (!stride) |
88 stride = info.minRowBytes(); | 69 stride = info.minRowBytes(); |
89 DCHECK_GT(stride, 0u); | 70 DCHECK_GT(stride, 0u); |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
136 case RED_8: | 117 case RED_8: |
137 case LUMINANCE_F16: | 118 case LUMINANCE_F16: |
138 NOTREACHED(); | 119 NOTREACHED(); |
139 return; | 120 return; |
140 } | 121 } |
141 | 122 |
142 NOTREACHED(); | 123 NOTREACHED(); |
143 } | 124 } |
144 | 125 |
145 } // namespace cc | 126 } // namespace cc |
OLD | NEW |