OLD | NEW |
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/resources/tile_manager.h" | 5 #include "cc/resources/tile_manager.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <limits> | 8 #include <limits> |
9 #include <string> | 9 #include <string> |
10 | 10 |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
50 contents_scale_(contents_scale), | 50 contents_scale_(contents_scale), |
51 tile_resolution_(tile_resolution), | 51 tile_resolution_(tile_resolution), |
52 layer_id_(layer_id), | 52 layer_id_(layer_id), |
53 tile_id_(tile_id), | 53 tile_id_(tile_id), |
54 source_frame_number_(source_frame_number), | 54 source_frame_number_(source_frame_number), |
55 analyze_picture_(analyze_picture), | 55 analyze_picture_(analyze_picture), |
56 rendering_stats_(rendering_stats), | 56 rendering_stats_(rendering_stats), |
57 reply_(reply) {} | 57 reply_(reply) {} |
58 | 58 |
59 // Overridden from Task: | 59 // Overridden from Task: |
60 virtual void RunOnWorkerThread() override { | 60 void RunOnWorkerThread() override { |
61 TRACE_EVENT0("cc", "RasterizerTaskImpl::RunOnWorkerThread"); | 61 TRACE_EVENT0("cc", "RasterizerTaskImpl::RunOnWorkerThread"); |
62 | 62 |
63 DCHECK(picture_pile_.get()); | 63 DCHECK(picture_pile_.get()); |
64 DCHECK(raster_buffer_); | 64 DCHECK(raster_buffer_); |
65 | 65 |
66 if (analyze_picture_) { | 66 if (analyze_picture_) { |
67 Analyze(picture_pile_.get()); | 67 Analyze(picture_pile_.get()); |
68 if (analysis_.is_solid_color) | 68 if (analysis_.is_solid_color) |
69 return; | 69 return; |
70 } | 70 } |
71 | 71 |
72 Raster(picture_pile_.get()); | 72 Raster(picture_pile_.get()); |
73 } | 73 } |
74 | 74 |
75 // Overridden from RasterizerTask: | 75 // Overridden from RasterizerTask: |
76 virtual void ScheduleOnOriginThread(RasterizerTaskClient* client) override { | 76 void ScheduleOnOriginThread(RasterizerTaskClient* client) override { |
77 DCHECK(!raster_buffer_); | 77 DCHECK(!raster_buffer_); |
78 raster_buffer_ = client->AcquireBufferForRaster(resource()); | 78 raster_buffer_ = client->AcquireBufferForRaster(resource()); |
79 } | 79 } |
80 virtual void CompleteOnOriginThread(RasterizerTaskClient* client) override { | 80 void CompleteOnOriginThread(RasterizerTaskClient* client) override { |
81 client->ReleaseBufferForRaster(raster_buffer_.Pass()); | 81 client->ReleaseBufferForRaster(raster_buffer_.Pass()); |
82 } | 82 } |
83 virtual void RunReplyOnOriginThread() override { | 83 void RunReplyOnOriginThread() override { |
84 DCHECK(!raster_buffer_); | 84 DCHECK(!raster_buffer_); |
85 reply_.Run(analysis_, !HasFinishedRunning()); | 85 reply_.Run(analysis_, !HasFinishedRunning()); |
86 } | 86 } |
87 | 87 |
88 protected: | 88 protected: |
89 virtual ~RasterTaskImpl() { DCHECK(!raster_buffer_); } | 89 ~RasterTaskImpl() override { DCHECK(!raster_buffer_); } |
90 | 90 |
91 private: | 91 private: |
92 void Analyze(const PicturePileImpl* picture_pile) { | 92 void Analyze(const PicturePileImpl* picture_pile) { |
93 frame_viewer_instrumentation::ScopedAnalyzeTask analyze_task( | 93 frame_viewer_instrumentation::ScopedAnalyzeTask analyze_task( |
94 tile_id_, tile_resolution_, source_frame_number_, layer_id_); | 94 tile_id_, tile_resolution_, source_frame_number_, layer_id_); |
95 | 95 |
96 DCHECK(picture_pile); | 96 DCHECK(picture_pile); |
97 | 97 |
98 picture_pile->AnalyzeInRect( | 98 picture_pile->AnalyzeInRect( |
99 content_rect_, contents_scale_, &analysis_, rendering_stats_); | 99 content_rect_, contents_scale_, &analysis_, rendering_stats_); |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
159 ImageDecodeTaskImpl(SkPixelRef* pixel_ref, | 159 ImageDecodeTaskImpl(SkPixelRef* pixel_ref, |
160 int layer_id, | 160 int layer_id, |
161 RenderingStatsInstrumentation* rendering_stats, | 161 RenderingStatsInstrumentation* rendering_stats, |
162 const base::Callback<void(bool was_canceled)>& reply) | 162 const base::Callback<void(bool was_canceled)>& reply) |
163 : pixel_ref_(skia::SharePtr(pixel_ref)), | 163 : pixel_ref_(skia::SharePtr(pixel_ref)), |
164 layer_id_(layer_id), | 164 layer_id_(layer_id), |
165 rendering_stats_(rendering_stats), | 165 rendering_stats_(rendering_stats), |
166 reply_(reply) {} | 166 reply_(reply) {} |
167 | 167 |
168 // Overridden from Task: | 168 // Overridden from Task: |
169 virtual void RunOnWorkerThread() override { | 169 void RunOnWorkerThread() override { |
170 TRACE_EVENT0("cc", "ImageDecodeTaskImpl::RunOnWorkerThread"); | 170 TRACE_EVENT0("cc", "ImageDecodeTaskImpl::RunOnWorkerThread"); |
171 | 171 |
172 devtools_instrumentation::ScopedImageDecodeTask image_decode_task( | 172 devtools_instrumentation::ScopedImageDecodeTask image_decode_task( |
173 pixel_ref_.get()); | 173 pixel_ref_.get()); |
174 // This will cause the image referred to by pixel ref to be decoded. | 174 // This will cause the image referred to by pixel ref to be decoded. |
175 pixel_ref_->lockPixels(); | 175 pixel_ref_->lockPixels(); |
176 pixel_ref_->unlockPixels(); | 176 pixel_ref_->unlockPixels(); |
177 } | 177 } |
178 | 178 |
179 // Overridden from RasterizerTask: | 179 // Overridden from RasterizerTask: |
180 virtual void ScheduleOnOriginThread(RasterizerTaskClient* client) override {} | 180 void ScheduleOnOriginThread(RasterizerTaskClient* client) override {} |
181 virtual void CompleteOnOriginThread(RasterizerTaskClient* client) override {} | 181 void CompleteOnOriginThread(RasterizerTaskClient* client) override {} |
182 virtual void RunReplyOnOriginThread() override { | 182 void RunReplyOnOriginThread() override { reply_.Run(!HasFinishedRunning()); } |
183 reply_.Run(!HasFinishedRunning()); | |
184 } | |
185 | 183 |
186 protected: | 184 protected: |
187 virtual ~ImageDecodeTaskImpl() {} | 185 ~ImageDecodeTaskImpl() override {} |
188 | 186 |
189 private: | 187 private: |
190 skia::RefPtr<SkPixelRef> pixel_ref_; | 188 skia::RefPtr<SkPixelRef> pixel_ref_; |
191 int layer_id_; | 189 int layer_id_; |
192 RenderingStatsInstrumentation* rendering_stats_; | 190 RenderingStatsInstrumentation* rendering_stats_; |
193 const base::Callback<void(bool was_canceled)> reply_; | 191 const base::Callback<void(bool was_canceled)> reply_; |
194 | 192 |
195 DISALLOW_COPY_AND_ASSIGN(ImageDecodeTaskImpl); | 193 DISALLOW_COPY_AND_ASSIGN(ImageDecodeTaskImpl); |
196 }; | 194 }; |
197 | 195 |
(...skipping 723 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
921 result -= other; | 919 result -= other; |
922 return result; | 920 return result; |
923 } | 921 } |
924 | 922 |
925 bool TileManager::MemoryUsage::Exceeds(const MemoryUsage& limit) const { | 923 bool TileManager::MemoryUsage::Exceeds(const MemoryUsage& limit) const { |
926 return memory_bytes_ > limit.memory_bytes_ || | 924 return memory_bytes_ > limit.memory_bytes_ || |
927 resource_count_ > limit.resource_count_; | 925 resource_count_ > limit.resource_count_; |
928 } | 926 } |
929 | 927 |
930 } // namespace cc | 928 } // namespace cc |
OLD | NEW |