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

Side by Side Diff: bench/XfermodeBench.cpp

Issue 14818005: Add benches for all xfermodes. (Closed) Base URL: http://skia.googlecode.com/svn/trunk/
Patch Set: Created 7 years, 7 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 | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | 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 2013 Google Inc. 3 * Copyright 2013 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 8
9 #include "SkBenchmark.h" 9 #include "SkBenchmark.h"
10 #include "SkCanvas.h" 10 #include "SkCanvas.h"
(...skipping 28 matching lines...) Expand all
39 random.nextUScalar1() * (size.fHeight - h), 39 random.nextUScalar1() * (size.fHeight - h),
40 w, 40 w,
41 h 41 h
42 ); 42 );
43 canvas->drawRect(rect, paint); 43 canvas->drawRect(rect, paint);
44 } 44 }
45 } 45 }
46 46
47 private: 47 private:
48 enum { 48 enum {
49 kNumRects = SkBENCHLOOP(1000), 49 kNumRects = SkBENCHLOOP(75),
50 kMinSize = 10, 50 kMinSize = 50,
51 kMaxSize = 400, 51 kMaxSize = 100,
52 }; 52 };
53 SkAutoTUnref<SkXfermode> fXfermode; 53 SkAutoTUnref<SkXfermode> fXfermode;
54 SkString fName; 54 SkString fName;
55 55
56 typedef SkBenchmark INHERITED; 56 typedef SkBenchmark INHERITED;
57 }; 57 };
58 58
59 ////////////////////////////////////////////////////////////////////////////// 59 //////////////////////////////////////////////////////////////////////////////
60 60
61 static SkBenchmark* Fact00(void* p) { return new XfermodeBench(p, SkXfermode::kC lear_Mode); }
62 static SkBenchmark* Fact01(void* p) { return new XfermodeBench(p, SkXfermode::kS rc_Mode); }
63 static SkBenchmark* Fact02(void* p) { return new XfermodeBench(p, SkXfermode::kD st_Mode); }
64 static SkBenchmark* Fact03(void* p) { return new XfermodeBench(p, SkXfermode::kS rcOver_Mode); }
65 static SkBenchmark* Fact04(void* p) { return new XfermodeBench(p, SkXfermode::kD stOver_Mode); }
66 static SkBenchmark* Fact05(void* p) { return new XfermodeBench(p, SkXfermode::kS rcIn_Mode); }
67 static SkBenchmark* Fact06(void* p) { return new XfermodeBench(p, SkXfermode::kD stIn_Mode); }
68 static SkBenchmark* Fact07(void* p) { return new XfermodeBench(p, SkXfermode::kS rcOut_Mode); }
69 static SkBenchmark* Fact08(void* p) { return new XfermodeBench(p, SkXfermode::kD stOut_Mode); }
70 static SkBenchmark* Fact09(void* p) { return new XfermodeBench(p, SkXfermode::kS rcATop_Mode); }
71 static SkBenchmark* Fact10(void* p) { return new XfermodeBench(p, SkXfermode::kD stATop_Mode); }
72 static SkBenchmark* Fact11(void* p) { return new XfermodeBench(p, SkXfermode::kX or_Mode); }
73 static SkBenchmark* Fact12(void* p) { return new XfermodeBench(p, SkXfermode::kP lus_Mode); }
74 static SkBenchmark* Fact13(void* p) { return new XfermodeBench(p, SkXfermode::kM odulate_Mode); }
75 static SkBenchmark* Fact14(void* p) { return new XfermodeBench(p, SkXfermode::kS creen_Mode); }
76 static SkBenchmark* Fact15(void* p) { return new XfermodeBench(p, SkXfermode::kO verlay_Mode); }
77 static SkBenchmark* Fact16(void* p) { return new XfermodeBench(p, SkXfermode::kD arken_Mode); }
78 static SkBenchmark* Fact17(void* p) { return new XfermodeBench(p, SkXfermode::kL ighten_Mode); }
79 static SkBenchmark* Fact18(void* p) { return new XfermodeBench(p, SkXfermode::kC olorDodge_Mode); }
80 static SkBenchmark* Fact19(void* p) { return new XfermodeBench(p, SkXfermode::kC olorBurn_Mode); }
81 static SkBenchmark* Fact20(void* p) { return new XfermodeBench(p, SkXfermode::kH ardLight_Mode); }
82 static SkBenchmark* Fact21(void* p) { return new XfermodeBench(p, SkXfermode::kS oftLight_Mode); }
83 static SkBenchmark* Fact22(void* p) { return new XfermodeBench(p, SkXfermode::kD ifference_Mode); }
84 static SkBenchmark* Fact23(void* p) { return new XfermodeBench(p, SkXfermode::kE xclusion_Mode); }
85 static SkBenchmark* Fact24(void* p) { return new XfermodeBench(p, SkXfermode::kM ultiply_Mode); }
86 static SkBenchmark* Fact25(void* p) { return new XfermodeBench(p, SkXfermode::kH ue_Mode); }
87 static SkBenchmark* Fact26(void* p) { return new XfermodeBench(p, SkXfermode::kS aturation_Mode); }
88 static SkBenchmark* Fact27(void* p) { return new XfermodeBench(p, SkXfermode::kC olor_Mode); }
89 static SkBenchmark* Fact28(void* p) { return new XfermodeBench(p, SkXfermode::kL uminosity_Mode); }
61 90
62 // These modes were chosen because they are expected to be successively harder f or the GPU. 91 static BenchRegistry gReg00(Fact00);
63 // kSrc can disable blending, kSrcOver cannot, kDarken requires reading the dst pixel in the shader. 92 static BenchRegistry gReg01(Fact01);
64 static SkBenchmark* Fact0(void* p) { return new XfermodeBench(p, SkXfermode::kSr c_Mode); } 93 static BenchRegistry gReg02(Fact02);
65 static SkBenchmark* Fact1(void* p) { return new XfermodeBench(p, SkXfermode::kSr cOver_Mode); } 94 static BenchRegistry gReg03(Fact03);
66 static SkBenchmark* Fact2(void* p) { return new XfermodeBench(p, SkXfermode::kDa rken_Mode); } 95 static BenchRegistry gReg04(Fact04);
96 static BenchRegistry gReg05(Fact05);
97 static BenchRegistry gReg06(Fact06);
98 static BenchRegistry gReg07(Fact07);
99 static BenchRegistry gReg08(Fact08);
100 static BenchRegistry gReg09(Fact09);
101 static BenchRegistry gReg10(Fact10);
102 static BenchRegistry gReg11(Fact11);
103 static BenchRegistry gReg12(Fact12);
104 static BenchRegistry gReg13(Fact13);
105 static BenchRegistry gReg14(Fact14);
106 static BenchRegistry gReg15(Fact15);
107 static BenchRegistry gReg16(Fact16);
108 static BenchRegistry gReg17(Fact17);
109 static BenchRegistry gReg18(Fact18);
110 static BenchRegistry gReg19(Fact19);
111 static BenchRegistry gReg20(Fact20);
112 static BenchRegistry gReg21(Fact21);
113 static BenchRegistry gReg22(Fact22);
114 static BenchRegistry gReg23(Fact23);
115 static BenchRegistry gReg24(Fact24);
116 static BenchRegistry gReg25(Fact25);
117 static BenchRegistry gReg26(Fact26);
118 static BenchRegistry gReg27(Fact27);
119 static BenchRegistry gReg28(Fact28);
67 120
68 static BenchRegistry gReg0(Fact0);
69 static BenchRegistry gReg1(Fact1);
70 static BenchRegistry gReg2(Fact2);
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698