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

Side by Side Diff: cc/resources/gpu_raster_worker_pool.cc

Issue 684543006: cc: Toggle LCD text at raster time instead of record time. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: lcdraster: initvar Created 6 years, 1 month 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 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/resources/gpu_raster_worker_pool.h" 5 #include "cc/resources/gpu_raster_worker_pool.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/debug/trace_event.h" 9 #include "base/debug/trace_event.h"
10 #include "cc/output/context_provider.h" 10 #include "cc/output/context_provider.h"
(...skipping 23 matching lines...) Expand all
34 use_distance_field_text_(use_distance_field_text) {} 34 use_distance_field_text_(use_distance_field_text) {}
35 35
36 // Overridden from RasterBuffer: 36 // Overridden from RasterBuffer:
37 void Playback(const RasterSource* raster_source, 37 void Playback(const RasterSource* raster_source,
38 const gfx::Rect& rect, 38 const gfx::Rect& rect,
39 float scale) override { 39 float scale) override {
40 // Turn on distance fields for layers that have ever animated. 40 // Turn on distance fields for layers that have ever animated.
41 bool use_distance_field_text = 41 bool use_distance_field_text =
42 use_distance_field_text_ || 42 use_distance_field_text_ ||
43 raster_source->ShouldAttemptToUseDistanceFieldText(); 43 raster_source->ShouldAttemptToUseDistanceFieldText();
44 SkSurface* sk_surface = lock_.GetSkSurface(use_distance_field_text); 44 SkSurface* sk_surface = lock_.GetSkSurface(use_distance_field_text,
45 raster_source->CanUseLCDText());
45 46
46 if (!sk_surface) 47 if (!sk_surface)
47 return; 48 return;
48 49
49 SkPictureRecorder recorder; 50 SkPictureRecorder recorder;
50 gfx::Size size = resource_->size(); 51 gfx::Size size = resource_->size();
51 const int flags = SkPictureRecorder::kComputeSaveLayerInfo_RecordFlag; 52 const int flags = SkPictureRecorder::kComputeSaveLayerInfo_RecordFlag;
52 skia::RefPtr<SkCanvas> canvas = 53 skia::RefPtr<SkCanvas> canvas =
53 skia::SharePtr(recorder.beginRecording(size.width(), size.height(), 54 skia::SharePtr(recorder.beginRecording(size.width(), size.height(),
54 NULL, flags)); 55 NULL, flags));
(...skipping 191 matching lines...) Expand 10 before | Expand all | Expand 10 after
246 247
247 ScopedGpuRaster gpu_raster(context_provider_); 248 ScopedGpuRaster gpu_raster(context_provider_);
248 task_graph_runner_->RunUntilIdle(); 249 task_graph_runner_->RunUntilIdle();
249 250
250 // Draw each all of the pictures that were collected. This will also clear 251 // Draw each all of the pictures that were collected. This will also clear
251 // the pictures and canvases added to |multi_picture_draw_| 252 // the pictures and canvases added to |multi_picture_draw_|
252 multi_picture_draw_.draw(); 253 multi_picture_draw_.draw();
253 } 254 }
254 255
255 } // namespace cc 256 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698