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

Side by Side Diff: skia/ext/benchmarking_canvas.cc

Issue 787803004: Update from https://crrev.com/307664 (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Rebase. Created 6 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
« no previous file with comments | « skia/ext/analysis_canvas.cc ('k') | skia/ext/bitmap_platform_device_cairo.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 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 "base/containers/hash_tables.h" 5 #include "base/containers/hash_tables.h"
6 #include "base/logging.h" 6 #include "base/logging.h"
7 #include "base/time/time.h" 7 #include "base/time/time.h"
8 #include "skia/ext/benchmarking_canvas.h" 8 #include "skia/ext/benchmarking_canvas.h"
9 #include "third_party/skia/include/core/SkSurface.h"
9 #include "third_party/skia/include/utils/SkProxyCanvas.h" 10 #include "third_party/skia/include/utils/SkProxyCanvas.h"
10 11
11 namespace skia { 12 namespace skia {
12 13
13 class AutoStamper { 14 class AutoStamper {
14 public: 15 public:
15 AutoStamper(TimingCanvas* timing_canvas); 16 AutoStamper(TimingCanvas* timing_canvas);
16 ~AutoStamper(); 17 ~AutoStamper();
17 18
18 private: 19 private:
19 TimingCanvas* timing_canvas_; 20 TimingCanvas* timing_canvas_;
20 base::TimeTicks start_ticks_; 21 base::TimeTicks start_ticks_;
21 }; 22 };
22 23
23 class TimingCanvas : public SkProxyCanvas { 24 class TimingCanvas : public SkProxyCanvas {
24 public: 25 public:
25 TimingCanvas(int width, int height, const BenchmarkingCanvas* track_canvas) 26 TimingCanvas(int width, int height, const BenchmarkingCanvas* track_canvas)
26 : tracking_canvas_(track_canvas) { 27 : tracking_canvas_(track_canvas) {
27 canvas_ = skia::AdoptRef(SkCanvas::NewRasterN32(width, height)); 28 surface_ = skia::AdoptRef(SkSurface::NewRasterPMColor(width, height));
28 29
29 setProxy(canvas_.get()); 30 setProxy(surface_->getCanvas());
30 } 31 }
31 32
32 ~TimingCanvas() override {} 33 ~TimingCanvas() override {}
33 34
34 double GetTime(size_t index) { 35 double GetTime(size_t index) {
35 TimingsMap::const_iterator timing_info = timings_map_.find(index); 36 TimingsMap::const_iterator timing_info = timings_map_.find(index);
36 return timing_info != timings_map_.end() 37 return timing_info != timings_map_.end()
37 ? timing_info->second.InMillisecondsF() 38 ? timing_info->second.InMillisecondsF()
38 : 0.0; 39 : 0.0;
39 } 40 }
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
99 100
100 void drawBitmapRectToRect(const SkBitmap& bitmap, 101 void drawBitmapRectToRect(const SkBitmap& bitmap,
101 const SkRect* src, 102 const SkRect* src,
102 const SkRect& dst, 103 const SkRect& dst,
103 const SkPaint* paint, 104 const SkPaint* paint,
104 DrawBitmapRectFlags flags) override { 105 DrawBitmapRectFlags flags) override {
105 AutoStamper stamper(this); 106 AutoStamper stamper(this);
106 SkProxyCanvas::drawBitmapRectToRect(bitmap, src, dst, paint, flags); 107 SkProxyCanvas::drawBitmapRectToRect(bitmap, src, dst, paint, flags);
107 } 108 }
108 109
109 void drawBitmapMatrix(const SkBitmap& bitmap,
110 const SkMatrix& m,
111 const SkPaint* paint = NULL) override {
112 AutoStamper stamper(this);
113 SkProxyCanvas::drawBitmapMatrix(bitmap, m, paint);
114 }
115
116 void drawSprite(const SkBitmap& bitmap, 110 void drawSprite(const SkBitmap& bitmap,
117 int left, 111 int left,
118 int top, 112 int top,
119 const SkPaint* paint = NULL) override { 113 const SkPaint* paint = NULL) override {
120 AutoStamper stamper(this); 114 AutoStamper stamper(this);
121 SkProxyCanvas::drawSprite(bitmap, left, top, paint); 115 SkProxyCanvas::drawSprite(bitmap, left, top, paint);
122 } 116 }
123 117
124 void drawVertices(VertexMode vmode, 118 void drawVertices(VertexMode vmode,
125 int vertexCount, 119 int vertexCount,
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
206 const SkMatrix* matrix, 200 const SkMatrix* matrix,
207 const SkPaint* paint) override { 201 const SkPaint* paint) override {
208 AutoStamper stamper(this); 202 AutoStamper stamper(this);
209 SkProxyCanvas::onDrawPicture(picture, matrix, paint); 203 SkProxyCanvas::onDrawPicture(picture, matrix, paint);
210 } 204 }
211 205
212 private: 206 private:
213 typedef base::hash_map<size_t, base::TimeDelta> TimingsMap; 207 typedef base::hash_map<size_t, base::TimeDelta> TimingsMap;
214 TimingsMap timings_map_; 208 TimingsMap timings_map_;
215 209
216 skia::RefPtr<SkCanvas> canvas_; 210 skia::RefPtr<SkSurface> surface_;
217 211
218 friend class AutoStamper; 212 friend class AutoStamper;
219 const BenchmarkingCanvas* tracking_canvas_; 213 const BenchmarkingCanvas* tracking_canvas_;
220 }; 214 };
221 215
222 AutoStamper::AutoStamper(TimingCanvas *timing_canvas) 216 AutoStamper::AutoStamper(TimingCanvas *timing_canvas)
223 : timing_canvas_(timing_canvas) { 217 : timing_canvas_(timing_canvas) {
224 start_ticks_ = base::TimeTicks::HighResNow(); 218 start_ticks_ = base::TimeTicks::HighResNow();
225 } 219 }
226 220
(...skipping 25 matching lines...) Expand all
252 DCHECK_LT(index, static_cast<size_t>(debug_canvas_->getSize())); 246 DCHECK_LT(index, static_cast<size_t>(debug_canvas_->getSize()));
253 return debug_canvas_->getDrawCommandAt(index); 247 return debug_canvas_->getDrawCommandAt(index);
254 } 248 }
255 249
256 double BenchmarkingCanvas::GetTime(size_t index) { 250 double BenchmarkingCanvas::GetTime(size_t index) {
257 DCHECK_LT(index, static_cast<size_t>(debug_canvas_->getSize())); 251 DCHECK_LT(index, static_cast<size_t>(debug_canvas_->getSize()));
258 return timing_canvas_->GetTime(index); 252 return timing_canvas_->GetTime(index);
259 } 253 }
260 254
261 } // namespace skia 255 } // namespace skia
OLDNEW
« no previous file with comments | « skia/ext/analysis_canvas.cc ('k') | skia/ext/bitmap_platform_device_cairo.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698