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

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

Issue 664803003: Update from chromium a8e7c94b1b79a0948d05a1fcfff53391d22ce37a (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 6 years, 2 months 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/benchmarking_canvas.h ('k') | skia/ext/bitmap_platform_device_mac.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/utils/SkProxyCanvas.h" 9 #include "third_party/skia/include/utils/SkProxyCanvas.h"
10 10
(...skipping 11 matching lines...) Expand all
22 22
23 class TimingCanvas : public SkProxyCanvas { 23 class TimingCanvas : public SkProxyCanvas {
24 public: 24 public:
25 TimingCanvas(int width, int height, const BenchmarkingCanvas* track_canvas) 25 TimingCanvas(int width, int height, const BenchmarkingCanvas* track_canvas)
26 : tracking_canvas_(track_canvas) { 26 : tracking_canvas_(track_canvas) {
27 canvas_ = skia::AdoptRef(SkCanvas::NewRasterN32(width, height)); 27 canvas_ = skia::AdoptRef(SkCanvas::NewRasterN32(width, height));
28 28
29 setProxy(canvas_.get()); 29 setProxy(canvas_.get());
30 } 30 }
31 31
32 virtual ~TimingCanvas() { 32 ~TimingCanvas() override {}
33 }
34 33
35 double GetTime(size_t index) { 34 double GetTime(size_t index) {
36 TimingsMap::const_iterator timing_info = timings_map_.find(index); 35 TimingsMap::const_iterator timing_info = timings_map_.find(index);
37 return timing_info != timings_map_.end() 36 return timing_info != timings_map_.end()
38 ? timing_info->second.InMillisecondsF() 37 ? timing_info->second.InMillisecondsF()
39 : 0.0; 38 : 0.0;
40 } 39 }
41 40
42 // SkCanvas overrides. 41 // SkCanvas overrides.
43 virtual void willSave() override { 42 void willSave() override {
44 AutoStamper stamper(this); 43 AutoStamper stamper(this);
45 SkProxyCanvas::willSave(); 44 SkProxyCanvas::willSave();
46 } 45 }
47 46
48 virtual SaveLayerStrategy willSaveLayer(const SkRect* bounds, 47 SaveLayerStrategy willSaveLayer(const SkRect* bounds,
49 const SkPaint* paint, 48 const SkPaint* paint,
50 SaveFlags flags) override { 49 SaveFlags flags) override {
51 AutoStamper stamper(this); 50 AutoStamper stamper(this);
52 return SkProxyCanvas::willSaveLayer(bounds, paint, flags); 51 return SkProxyCanvas::willSaveLayer(bounds, paint, flags);
53 } 52 }
54 53
55 virtual void willRestore() override { 54 void willRestore() override {
56 AutoStamper stamper(this); 55 AutoStamper stamper(this);
57 SkProxyCanvas::willRestore(); 56 SkProxyCanvas::willRestore();
58 } 57 }
59 58
60 virtual void drawPaint(const SkPaint& paint) override { 59 void drawPaint(const SkPaint& paint) override {
61 AutoStamper stamper(this); 60 AutoStamper stamper(this);
62 SkProxyCanvas::drawPaint(paint); 61 SkProxyCanvas::drawPaint(paint);
63 } 62 }
64 63
65 virtual void drawPoints(PointMode mode, size_t count, const SkPoint pts[], 64 void drawPoints(PointMode mode,
66 const SkPaint& paint) override { 65 size_t count,
66 const SkPoint pts[],
67 const SkPaint& paint) override {
67 AutoStamper stamper(this); 68 AutoStamper stamper(this);
68 SkProxyCanvas::drawPoints(mode, count, pts, paint); 69 SkProxyCanvas::drawPoints(mode, count, pts, paint);
69 } 70 }
70 71
71 virtual void drawOval(const SkRect& rect, const SkPaint& paint) override { 72 void drawOval(const SkRect& rect, const SkPaint& paint) override {
72 AutoStamper stamper(this); 73 AutoStamper stamper(this);
73 SkProxyCanvas::drawOval(rect, paint); 74 SkProxyCanvas::drawOval(rect, paint);
74 } 75 }
75 76
76 virtual void drawRect(const SkRect& rect, const SkPaint& paint) override { 77 void drawRect(const SkRect& rect, const SkPaint& paint) override {
77 AutoStamper stamper(this); 78 AutoStamper stamper(this);
78 SkProxyCanvas::drawRect(rect, paint); 79 SkProxyCanvas::drawRect(rect, paint);
79 } 80 }
80 81
81 virtual void drawRRect(const SkRRect& rrect, const SkPaint& paint) override { 82 void drawRRect(const SkRRect& rrect, const SkPaint& paint) override {
82 AutoStamper stamper(this); 83 AutoStamper stamper(this);
83 SkProxyCanvas::drawRRect(rrect, paint); 84 SkProxyCanvas::drawRRect(rrect, paint);
84 } 85 }
85 86
86 virtual void drawPath(const SkPath& path, const SkPaint& paint) override { 87 void drawPath(const SkPath& path, const SkPaint& paint) override {
87 AutoStamper stamper(this); 88 AutoStamper stamper(this);
88 SkProxyCanvas::drawPath(path, paint); 89 SkProxyCanvas::drawPath(path, paint);
89 } 90 }
90 91
91 virtual void drawBitmap(const SkBitmap& bitmap, SkScalar left, SkScalar top, 92 void drawBitmap(const SkBitmap& bitmap,
92 const SkPaint* paint = NULL) override { 93 SkScalar left,
94 SkScalar top,
95 const SkPaint* paint = NULL) override {
93 AutoStamper stamper(this); 96 AutoStamper stamper(this);
94 SkProxyCanvas::drawBitmap(bitmap, left, top, paint); 97 SkProxyCanvas::drawBitmap(bitmap, left, top, paint);
95 } 98 }
96 99
97 virtual void drawBitmapRectToRect(const SkBitmap& bitmap, const SkRect* src, 100 void drawBitmapRectToRect(const SkBitmap& bitmap,
98 const SkRect& dst, 101 const SkRect* src,
99 const SkPaint* paint, 102 const SkRect& dst,
100 DrawBitmapRectFlags flags) override { 103 const SkPaint* paint,
104 DrawBitmapRectFlags flags) override {
101 AutoStamper stamper(this); 105 AutoStamper stamper(this);
102 SkProxyCanvas::drawBitmapRectToRect(bitmap, src, dst, paint, flags); 106 SkProxyCanvas::drawBitmapRectToRect(bitmap, src, dst, paint, flags);
103 } 107 }
104 108
105 virtual void drawBitmapMatrix(const SkBitmap& bitmap, const SkMatrix& m, 109 void drawBitmapMatrix(const SkBitmap& bitmap,
106 const SkPaint* paint = NULL) override { 110 const SkMatrix& m,
111 const SkPaint* paint = NULL) override {
107 AutoStamper stamper(this); 112 AutoStamper stamper(this);
108 SkProxyCanvas::drawBitmapMatrix(bitmap, m, paint); 113 SkProxyCanvas::drawBitmapMatrix(bitmap, m, paint);
109 } 114 }
110 115
111 virtual void drawSprite(const SkBitmap& bitmap, int left, int top, 116 void drawSprite(const SkBitmap& bitmap,
112 const SkPaint* paint = NULL) override { 117 int left,
118 int top,
119 const SkPaint* paint = NULL) override {
113 AutoStamper stamper(this); 120 AutoStamper stamper(this);
114 SkProxyCanvas::drawSprite(bitmap, left, top, paint); 121 SkProxyCanvas::drawSprite(bitmap, left, top, paint);
115 } 122 }
116 123
117 virtual void drawVertices(VertexMode vmode, int vertexCount, 124 void drawVertices(VertexMode vmode,
118 const SkPoint vertices[], const SkPoint texs[], 125 int vertexCount,
119 const SkColor colors[], SkXfermode* xmode, 126 const SkPoint vertices[],
120 const uint16_t indices[], int indexCount, 127 const SkPoint texs[],
121 const SkPaint& paint) override { 128 const SkColor colors[],
129 SkXfermode* xmode,
130 const uint16_t indices[],
131 int indexCount,
132 const SkPaint& paint) override {
122 AutoStamper stamper(this); 133 AutoStamper stamper(this);
123 SkProxyCanvas::drawVertices(vmode, vertexCount, vertices, texs, colors, 134 SkProxyCanvas::drawVertices(vmode, vertexCount, vertices, texs, colors,
124 xmode, indices, indexCount, paint); 135 xmode, indices, indexCount, paint);
125 } 136 }
126 137
127 virtual void drawData(const void* data, size_t length) override { 138 void drawData(const void* data, size_t length) override {
128 AutoStamper stamper(this); 139 AutoStamper stamper(this);
129 SkProxyCanvas::drawData(data, length); 140 SkProxyCanvas::drawData(data, length);
130 } 141 }
131 142
132 protected: 143 protected:
133 virtual void onDrawText(const void* text, size_t byteLength, SkScalar x, 144 void onDrawText(const void* text,
134 SkScalar y, const SkPaint& paint) override { 145 size_t byteLength,
146 SkScalar x,
147 SkScalar y,
148 const SkPaint& paint) override {
135 AutoStamper stamper(this); 149 AutoStamper stamper(this);
136 SkProxyCanvas::onDrawText(text, byteLength, x, y, paint); 150 SkProxyCanvas::onDrawText(text, byteLength, x, y, paint);
137 } 151 }
138 152
139 virtual void onDrawPosText(const void* text, size_t byteLength, 153 void onDrawPosText(const void* text,
140 const SkPoint pos[], 154 size_t byteLength,
141 const SkPaint& paint) override { 155 const SkPoint pos[],
156 const SkPaint& paint) override {
142 AutoStamper stamper(this); 157 AutoStamper stamper(this);
143 SkProxyCanvas::onDrawPosText(text, byteLength, pos, paint); 158 SkProxyCanvas::onDrawPosText(text, byteLength, pos, paint);
144 } 159 }
145 160
146 virtual void onDrawPosTextH(const void* text, size_t byteLength, 161 void onDrawPosTextH(const void* text,
147 const SkScalar xpos[], SkScalar constY, 162 size_t byteLength,
148 const SkPaint& paint) override { 163 const SkScalar xpos[],
164 SkScalar constY,
165 const SkPaint& paint) override {
149 AutoStamper stamper(this); 166 AutoStamper stamper(this);
150 SkProxyCanvas::onDrawPosTextH(text, byteLength, xpos, constY, paint); 167 SkProxyCanvas::onDrawPosTextH(text, byteLength, xpos, constY, paint);
151 } 168 }
152 169
153 virtual void onDrawTextOnPath(const void* text, size_t byteLength, 170 void onDrawTextOnPath(const void* text,
154 const SkPath& path, const SkMatrix* matrix, 171 size_t byteLength,
155 const SkPaint& paint) override { 172 const SkPath& path,
173 const SkMatrix* matrix,
174 const SkPaint& paint) override {
156 AutoStamper stamper(this); 175 AutoStamper stamper(this);
157 SkProxyCanvas::onDrawTextOnPath(text, byteLength, path, matrix, paint); 176 SkProxyCanvas::onDrawTextOnPath(text, byteLength, path, matrix, paint);
158 } 177 }
159 178
160 virtual void onClipRect(const SkRect& rect, SkRegion::Op op, 179 void onClipRect(const SkRect& rect,
161 ClipEdgeStyle edge_style) override { 180 SkRegion::Op op,
181 ClipEdgeStyle edge_style) override {
162 AutoStamper stamper(this); 182 AutoStamper stamper(this);
163 SkProxyCanvas::onClipRect(rect, op, edge_style); 183 SkProxyCanvas::onClipRect(rect, op, edge_style);
164 } 184 }
165 185
166 virtual void onClipRRect(const SkRRect& rrect, SkRegion::Op op, 186 void onClipRRect(const SkRRect& rrect,
167 ClipEdgeStyle edge_style) override { 187 SkRegion::Op op,
188 ClipEdgeStyle edge_style) override {
168 AutoStamper stamper(this); 189 AutoStamper stamper(this);
169 SkProxyCanvas::onClipRRect(rrect, op, edge_style); 190 SkProxyCanvas::onClipRRect(rrect, op, edge_style);
170 } 191 }
171 192
172 virtual void onClipPath(const SkPath& path, SkRegion::Op op, 193 void onClipPath(const SkPath& path,
173 ClipEdgeStyle edge_style) override { 194 SkRegion::Op op,
195 ClipEdgeStyle edge_style) override {
174 AutoStamper stamper(this); 196 AutoStamper stamper(this);
175 SkProxyCanvas::onClipPath(path, op, edge_style); 197 SkProxyCanvas::onClipPath(path, op, edge_style);
176 } 198 }
177 199
178 virtual void onClipRegion(const SkRegion& region, 200 void onClipRegion(const SkRegion& region, SkRegion::Op op) override {
179 SkRegion::Op op) override {
180 AutoStamper stamper(this); 201 AutoStamper stamper(this);
181 SkProxyCanvas::onClipRegion(region, op); 202 SkProxyCanvas::onClipRegion(region, op);
182 } 203 }
183 204
184 virtual void onDrawPicture(const SkPicture* picture, const SkMatrix* matrix, 205 void onDrawPicture(const SkPicture* picture,
185 const SkPaint* paint) override { 206 const SkMatrix* matrix,
207 const SkPaint* paint) override {
186 AutoStamper stamper(this); 208 AutoStamper stamper(this);
187 SkProxyCanvas::onDrawPicture(picture, matrix, paint); 209 SkProxyCanvas::onDrawPicture(picture, matrix, paint);
188 } 210 }
189 211
190 private: 212 private:
191 typedef base::hash_map<size_t, base::TimeDelta> TimingsMap; 213 typedef base::hash_map<size_t, base::TimeDelta> TimingsMap;
192 TimingsMap timings_map_; 214 TimingsMap timings_map_;
193 215
194 skia::RefPtr<SkCanvas> canvas_; 216 skia::RefPtr<SkCanvas> canvas_;
195 217
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
230 DCHECK_LT(index, static_cast<size_t>(debug_canvas_->getSize())); 252 DCHECK_LT(index, static_cast<size_t>(debug_canvas_->getSize()));
231 return debug_canvas_->getDrawCommandAt(index); 253 return debug_canvas_->getDrawCommandAt(index);
232 } 254 }
233 255
234 double BenchmarkingCanvas::GetTime(size_t index) { 256 double BenchmarkingCanvas::GetTime(size_t index) {
235 DCHECK_LT(index, static_cast<size_t>(debug_canvas_->getSize())); 257 DCHECK_LT(index, static_cast<size_t>(debug_canvas_->getSize()));
236 return timing_canvas_->GetTime(index); 258 return timing_canvas_->GetTime(index);
237 } 259 }
238 260
239 } // namespace skia 261 } // namespace skia
OLDNEW
« no previous file with comments | « skia/ext/benchmarking_canvas.h ('k') | skia/ext/bitmap_platform_device_mac.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698