Index: cc/raster/tile_task_worker_pool.cc |
diff --git a/cc/raster/tile_task_worker_pool.cc b/cc/raster/tile_task_worker_pool.cc |
deleted file mode 100644 |
index b14cd8363c8e0be6a9be26c84de379f81b5fb024..0000000000000000000000000000000000000000 |
--- a/cc/raster/tile_task_worker_pool.cc |
+++ /dev/null |
@@ -1,169 +0,0 @@ |
-// 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/raster/tile_task_worker_pool.h" |
- |
-#include <stddef.h> |
- |
-#include "base/trace_event/trace_event.h" |
-#include "cc/playback/raster_source.h" |
-#include "cc/raster/texture_compressor.h" |
-#include "cc/resources/platform_color.h" |
-#include "third_party/skia/include/core/SkCanvas.h" |
-#include "third_party/skia/include/core/SkSurface.h" |
- |
-namespace cc { |
- |
-TileTaskWorkerPool::TileTaskWorkerPool() {} |
- |
-TileTaskWorkerPool::~TileTaskWorkerPool() {} |
- |
-// static |
-void TileTaskWorkerPool::ScheduleTasksOnOriginThread( |
- RasterBufferProvider* provider, |
- TaskGraph* graph) { |
- TRACE_EVENT0("cc", "TileTaskWorkerPool::ScheduleTasksOnOriginThread"); |
- |
- for (TaskGraph::Node::Vector::iterator it = graph->nodes.begin(); |
- it != graph->nodes.end(); ++it) { |
- TaskGraph::Node& node = *it; |
- TileTask* task = static_cast<TileTask*>(node.task); |
- |
- if (!task->HasBeenScheduled()) { |
- task->WillSchedule(); |
- task->ScheduleOnOriginThread(provider); |
- task->DidSchedule(); |
- } |
- } |
-} |
- |
-namespace { |
- |
-bool IsSupportedPlaybackToMemoryFormat(ResourceFormat format) { |
- switch (format) { |
- case RGBA_4444: |
- case RGBA_8888: |
- case BGRA_8888: |
- case ETC1: |
- return true; |
- case ALPHA_8: |
- case LUMINANCE_8: |
- case RGB_565: |
- case RED_8: |
- case LUMINANCE_F16: |
- return false; |
- } |
- NOTREACHED(); |
- return false; |
-} |
- |
-} // anonymous namespace |
- |
-// static |
-void TileTaskWorkerPool::PlaybackToMemory( |
- void* memory, |
- ResourceFormat format, |
- const gfx::Size& size, |
- size_t stride, |
- const RasterSource* raster_source, |
- const gfx::Rect& canvas_bitmap_rect, |
- const gfx::Rect& canvas_playback_rect, |
- float scale, |
- const RasterSource::PlaybackSettings& playback_settings) { |
- TRACE_EVENT0("cc", "TileTaskWorkerPool::PlaybackToMemory"); |
- |
- DCHECK(IsSupportedPlaybackToMemoryFormat(format)) << format; |
- |
- // Uses kPremul_SkAlphaType since the result is not known to be opaque. |
- SkImageInfo info = |
- SkImageInfo::MakeN32(size.width(), size.height(), kPremul_SkAlphaType); |
- |
- // Use unknown pixel geometry to disable LCD text. |
- SkSurfaceProps surface_props(0, kUnknown_SkPixelGeometry); |
- if (raster_source->CanUseLCDText()) { |
- // LegacyFontHost will get LCD text and skia figures out what type to use. |
- surface_props = SkSurfaceProps(SkSurfaceProps::kLegacyFontHost_InitType); |
- } |
- |
- if (!stride) |
- stride = info.minRowBytes(); |
- DCHECK_GT(stride, 0u); |
- |
- switch (format) { |
- case RGBA_8888: |
- case BGRA_8888: { |
- sk_sp<SkSurface> surface = |
- SkSurface::MakeRasterDirect(info, memory, stride, &surface_props); |
- raster_source->PlaybackToCanvas(surface->getCanvas(), canvas_bitmap_rect, |
- canvas_playback_rect, scale, |
- playback_settings); |
- return; |
- } |
- case RGBA_4444: |
- case ETC1: { |
- sk_sp<SkSurface> surface = SkSurface::MakeRaster(info, &surface_props); |
- // TODO(reveman): Improve partial raster support by reducing the size of |
- // playback rect passed to PlaybackToCanvas. crbug.com/519070 |
- raster_source->PlaybackToCanvas(surface->getCanvas(), canvas_bitmap_rect, |
- canvas_bitmap_rect, scale, |
- playback_settings); |
- |
- if (format == ETC1) { |
- TRACE_EVENT0("cc", |
- "TileTaskWorkerPool::PlaybackToMemory::CompressETC1"); |
- DCHECK_EQ(size.width() % 4, 0); |
- DCHECK_EQ(size.height() % 4, 0); |
- std::unique_ptr<TextureCompressor> texture_compressor = |
- TextureCompressor::Create(TextureCompressor::kFormatETC1); |
- SkPixmap pixmap; |
- surface->peekPixels(&pixmap); |
- texture_compressor->Compress( |
- reinterpret_cast<const uint8_t*>(pixmap.addr()), |
- reinterpret_cast<uint8_t*>(memory), size.width(), size.height(), |
- TextureCompressor::kQualityHigh); |
- } else { |
- TRACE_EVENT0("cc", |
- "TileTaskWorkerPool::PlaybackToMemory::ConvertRGBA4444"); |
- SkImageInfo dst_info = |
- SkImageInfo::Make(info.width(), info.height(), |
- ResourceFormatToClosestSkColorType(format), |
- info.alphaType(), info.profileType()); |
- bool rv = surface->readPixels(dst_info, memory, stride, 0, 0); |
- DCHECK(rv); |
- } |
- return; |
- } |
- case ALPHA_8: |
- case LUMINANCE_8: |
- case RGB_565: |
- case RED_8: |
- case LUMINANCE_F16: |
- NOTREACHED(); |
- return; |
- } |
- |
- NOTREACHED(); |
-} |
- |
-bool TileTaskWorkerPool::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 |