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

Side by Side Diff: bench/SkBenchmark.h

Issue 73643005: Implement a benchmark for GrResourceCache (Closed) Base URL: https://skia.googlecode.com/svn/trunk
Patch Set: address comments Created 7 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 | Annotate | Revision Log
« no previous file with comments | « bench/ScalarBench.cpp ('k') | bench/SkBenchmark.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 1
2 /* 2 /*
3 * Copyright 2011 Google Inc. 3 * Copyright 2011 Google Inc.
4 * 4 *
5 * Use of this source code is governed by a BSD-style license that can be 5 * Use of this source code is governed by a BSD-style license that can be
6 * found in the LICENSE file. 6 * found in the LICENSE file.
7 */ 7 */
8 #ifndef SkBenchmark_DEFINED 8 #ifndef SkBenchmark_DEFINED
9 #define SkBenchmark_DEFINED 9 #define SkBenchmark_DEFINED
10 10
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
42 42
43 class SkBenchmark : public SkRefCnt { 43 class SkBenchmark : public SkRefCnt {
44 public: 44 public:
45 SK_DECLARE_INST_COUNT(SkBenchmark) 45 SK_DECLARE_INST_COUNT(SkBenchmark)
46 46
47 SkBenchmark(); 47 SkBenchmark();
48 48
49 const char* getName(); 49 const char* getName();
50 SkIPoint getSize(); 50 SkIPoint getSize();
51 51
52 enum Backend {
53 kNonRendering_Backend,
54 kRaster_Backend,
55 kGPU_Backend,
56 kPDF_Backend,
57 };
58
59 // Call to determine whether the benchmark is intended for
60 // the rendering mode.
61 virtual bool isSuitableFor(Backend backend) {
62 return backend != kNonRendering_Backend;
63 }
64
52 // Call before draw, allows the benchmark to do setup work outside of the 65 // Call before draw, allows the benchmark to do setup work outside of the
53 // timer. When a benchmark is repeatedly drawn, this should be called once 66 // timer. When a benchmark is repeatedly drawn, this should be called once
54 // before the initial draw. 67 // before the initial draw.
55 void preDraw(); 68 void preDraw();
56 69
57 void draw(SkCanvas*); 70 void draw(SkCanvas*);
58 71
59 // Call after draw, allows the benchmark to do cleanup work outside of the 72 // Call after draw, allows the benchmark to do cleanup work outside of the
60 // timer. When a benchmark is repeatedly drawn, this is only called once 73 // timer. When a benchmark is repeatedly drawn, this is only called once
61 // after the last draw. 74 // after the last draw.
62 void postDraw(); 75 void postDraw();
63 76
64 void setForceAlpha(int alpha) { 77 void setForceAlpha(int alpha) {
65 fForceAlpha = alpha; 78 fForceAlpha = alpha;
66 } 79 }
67 80
68 void setForceAA(bool aa) { 81 void setForceAA(bool aa) {
69 fForceAA = aa; 82 fForceAA = aa;
70 } 83 }
71 84
72 void setForceFilter(bool filter) { 85 void setForceFilter(bool filter) {
73 fForceFilter = filter; 86 fForceFilter = filter;
74 } 87 }
75 88
76 void setDither(SkTriState::State state) { 89 void setDither(SkTriState::State state) {
77 fDither = state; 90 fDither = state;
78 } 91 }
79 92
80 /** If true; the benchmark does rendering; if false, the benchmark
81 doesn't, and so need not be re-run in every different rendering
82 mode. */
83 bool isRendering() {
84 return fIsRendering;
85 }
86
87 /** Assign masks for paint-flags. These will be applied when setupPaint() 93 /** Assign masks for paint-flags. These will be applied when setupPaint()
88 * is called. 94 * is called.
89 * 95 *
90 * Performs the following on the paint: 96 * Performs the following on the paint:
91 * uint32_t flags = paint.getFlags(); 97 * uint32_t flags = paint.getFlags();
92 * flags &= ~clearMask; 98 * flags &= ~clearMask;
93 * flags |= orMask; 99 * flags |= orMask;
94 * paint.setFlags(flags); 100 * paint.setFlags(flags);
95 */ 101 */
96 void setPaintMasks(uint32_t orMask, uint32_t clearMask) { 102 void setPaintMasks(uint32_t orMask, uint32_t clearMask) {
(...skipping 16 matching lines...) Expand all
113 119
114 protected: 120 protected:
115 virtual void setupPaint(SkPaint* paint); 121 virtual void setupPaint(SkPaint* paint);
116 122
117 virtual const char* onGetName() = 0; 123 virtual const char* onGetName() = 0;
118 virtual void onPreDraw() {} 124 virtual void onPreDraw() {}
119 virtual void onDraw(SkCanvas*) = 0; 125 virtual void onDraw(SkCanvas*) = 0;
120 virtual void onPostDraw() {} 126 virtual void onPostDraw() {}
121 127
122 virtual SkIPoint onGetSize(); 128 virtual SkIPoint onGetSize();
123 /// Defaults to true.
124 bool fIsRendering;
125 129
126 private: 130 private:
127 int fForceAlpha; 131 int fForceAlpha;
128 bool fForceAA; 132 bool fForceAA;
129 bool fForceFilter; 133 bool fForceFilter;
130 SkTriState::State fDither; 134 SkTriState::State fDither;
131 uint32_t fOrMask, fClearMask; 135 uint32_t fOrMask, fClearMask;
132 int fLoops; 136 int fLoops;
133 static SkString gResourcePath; 137 static SkString gResourcePath;
134 138
135 typedef SkRefCnt INHERITED; 139 typedef SkRefCnt INHERITED;
136 }; 140 };
137 141
138 typedef SkTRegistry<SkBenchmark*(*)()> BenchRegistry; 142 typedef SkTRegistry<SkBenchmark*(*)()> BenchRegistry;
139 143
140 #endif 144 #endif
OLDNEW
« no previous file with comments | « bench/ScalarBench.cpp ('k') | bench/SkBenchmark.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698