| 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 |