| OLD | NEW |
| 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 Loading... |
| 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 Loading... |
| 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 |
| OLD | NEW |