Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1554)

Side by Side Diff: cc/tiles/tile_manager.cc

Issue 2525453002: Raster: Allow a RasterSource to specify its color space (Closed)
Patch Set: Only set implied space when color correct rendering is disabled Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2012 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/tiles/tile_manager.h" 5 #include "cc/tiles/tile_manager.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <algorithm> 10 #include <algorithm>
(...skipping 808 matching lines...) Expand 10 before | Expand all | Expand 10 after
819 819
820 // Track the number of dependents for each *_done task. 820 // Track the number of dependents for each *_done task.
821 size_t required_for_activate_count = 0; 821 size_t required_for_activate_count = 0;
822 size_t required_for_draw_count = 0; 822 size_t required_for_draw_count = 0;
823 size_t all_count = 0; 823 size_t all_count = 0;
824 824
825 size_t priority = kTileTaskPriorityBase; 825 size_t priority = kTileTaskPriorityBase;
826 826
827 graph_.Reset(); 827 graph_.Reset();
828 828
829 gfx::ColorSpace color_space = client_->GetTileColorSpace(); 829 gfx::ColorSpace target_color_space = client_->GetTileColorSpace();
830 830
831 scoped_refptr<TileTask> required_for_activation_done_task = 831 scoped_refptr<TileTask> required_for_activation_done_task =
832 CreateTaskSetFinishedTask( 832 CreateTaskSetFinishedTask(
833 &TileManager::DidFinishRunningTileTasksRequiredForActivation); 833 &TileManager::DidFinishRunningTileTasksRequiredForActivation);
834 scoped_refptr<TileTask> required_for_draw_done_task = 834 scoped_refptr<TileTask> required_for_draw_done_task =
835 CreateTaskSetFinishedTask( 835 CreateTaskSetFinishedTask(
836 &TileManager::DidFinishRunningTileTasksRequiredForDraw); 836 &TileManager::DidFinishRunningTileTasksRequiredForDraw);
837 scoped_refptr<TileTask> all_done_task = 837 scoped_refptr<TileTask> all_done_task =
838 CreateTaskSetFinishedTask(&TileManager::DidFinishRunningAllTileTasks); 838 CreateTaskSetFinishedTask(&TileManager::DidFinishRunningAllTileTasks);
839 839
840 // Build a new task queue containing all task currently needed. Tasks 840 // Build a new task queue containing all task currently needed. Tasks
841 // are added in order of priority, highest priority task first. 841 // are added in order of priority, highest priority task first.
842 for (auto& prioritized_tile : tiles_that_need_to_be_rasterized) { 842 for (auto& prioritized_tile : tiles_that_need_to_be_rasterized) {
843 Tile* tile = prioritized_tile.tile(); 843 Tile* tile = prioritized_tile.tile();
844 844
845 DCHECK(tile->draw_info().requires_resource()); 845 DCHECK(tile->draw_info().requires_resource());
846 DCHECK(!tile->draw_info().resource_); 846 DCHECK(!tile->draw_info().resource_);
847 847
848 if (!tile->raster_task_) 848 if (!tile->raster_task_)
849 tile->raster_task_ = CreateRasterTask(prioritized_tile, color_space); 849 tile->raster_task_ = CreateRasterTask(
850 prioritized_tile,
851 prioritized_tile.raster_source()->HasImpliedColorSpace()
852 ? prioritized_tile.raster_source()->GetImpliedColorSpace()
853 : target_color_space);
850 854
851 TileTask* task = tile->raster_task_.get(); 855 TileTask* task = tile->raster_task_.get();
852 856
853 DCHECK(!task->HasCompleted()); 857 DCHECK(!task->HasCompleted());
854 858
855 if (tile->required_for_activation()) { 859 if (tile->required_for_activation()) {
856 required_for_activate_count++; 860 required_for_activate_count++;
857 graph_.edges.push_back( 861 graph_.edges.push_back(
858 TaskGraph::Edge(task, required_for_activation_done_task.get())); 862 TaskGraph::Edge(task, required_for_activation_done_task.get()));
859 } 863 }
(...skipping 491 matching lines...) Expand 10 before | Expand all | Expand 10 after
1351 all_tile_tasks_completed = false; 1355 all_tile_tasks_completed = false;
1352 did_notify_all_tile_tasks_completed = false; 1356 did_notify_all_tile_tasks_completed = false;
1353 } 1357 }
1354 1358
1355 TileManager::PrioritizedWorkToSchedule::PrioritizedWorkToSchedule() = default; 1359 TileManager::PrioritizedWorkToSchedule::PrioritizedWorkToSchedule() = default;
1356 TileManager::PrioritizedWorkToSchedule::PrioritizedWorkToSchedule( 1360 TileManager::PrioritizedWorkToSchedule::PrioritizedWorkToSchedule(
1357 PrioritizedWorkToSchedule&& other) = default; 1361 PrioritizedWorkToSchedule&& other) = default;
1358 TileManager::PrioritizedWorkToSchedule::~PrioritizedWorkToSchedule() = default; 1362 TileManager::PrioritizedWorkToSchedule::~PrioritizedWorkToSchedule() = default;
1359 1363
1360 } // namespace cc 1364 } // namespace cc
OLDNEW
« no previous file with comments | « cc/resources/resource_provider.cc ('k') | third_party/WebKit/Source/platform/graphics/ContentLayerDelegate.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698