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

Side by Side Diff: chrome/test/data/third_party/spaceport/js/tests/text.js

Issue 10134041: Add test data for spaceport benchmark. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 8 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
OLDNEW
(Empty)
1 define([ 'util/ensureCallback', 'util/bench' ], function (ensureCallback, bench) {
2 var texts = [ 'hello world', 'other text' ];
3 var CANVAS_WIDTH = 640;
4 var CANVAS_HEIGHT = 640;
5
6 var fontFamilies = {
7 sans: 'sans-serif',
8 serif: 'serif',
9 monospace: 'monospace'
10 };
11
12 var fontSizes = [ 8, 10, 12, 14, 16, 24 ];
13
14 var stylePreparers = {
15 outline: function (context) {
16 context.strokeStyle = 'red';
17 },
18
19 fill: function (context) {
20 context.fillStyle = 'green';
21 },
22
23 fillOutline: function (context) {
24 context.strokeStyle = 'red';
25 context.fillStyle = 'green';
26 }
27 };
28
29 var styleExecutors = {
30 outline: function (context, text) {
31 context.strokeText(text, 0, 0);
32 },
33
34 fill: function (context, text) {
35 context.fillText(text, 0, 0);
36 },
37
38 fillOutline: function (context, text) {
39 context.fillText(text, 0, 0);
40 context.strokeText(text, 0, 0);
41 }
42 };
43
44 var styles = Object.keys(styleExecutors);
45
46 function runTest(fontFamily, fontSize, style, callback) {
47 callback = ensureCallback(callback);
48
49 var canvas = document.createElement('canvas');
50 canvas.width = CANVAS_WIDTH;
51 canvas.height = CANVAS_HEIGHT;
52
53 var context = canvas.getContext('2d');
54 context.font = fontSize + 'pt ' + fontFamily;
55 context.textBaseline = 'top';
56 context.textAlign = 'left';
57 stylePreparers[style](context);
58
59 var execute = styleExecutors[style];
60 var score = bench(100, function (i) {
61 execute(context, texts[i % texts.length]);
62
63 // FIXME I'd like to be able to verify that the drawing operation
64 // actually executed (and didn't defer), but getImageData (below)
65 // is too slow to run in a loop like this.
66 //context.getImageData(0, 0, CANVAS_WIDTH, CANVAS_HEIGHT)[0];
67 });
68
69 callback(null, {
70 score: score.toFixed(2)
71 });
72 }
73
74 // family => size => style => test
75 var tests = { };
76 Object.keys(fontFamilies).forEach(function (fontFamilyKey) {
77 var fontFamily = fontFamilies[fontFamilyKey];
78
79 var subTests = { };
80 tests[fontFamilyKey] = subTests;
81 fontSizes.forEach(function (fontSize) {
82 var subSubTests = { };
83 subTests[fontSize] = subSubTests;
84 styles.forEach(function (style) {
85 subSubTests[style] = function (callback) {
86 runTest(fontFamily, fontSize, style, callback);
87 };
88 });
89 });
90 });
91
92 return tests;
93 });
OLDNEW
« no previous file with comments | « chrome/test/data/third_party/spaceport/js/tests/sprites.js ('k') | chrome/test/data/third_party/spaceport/js/unrequire.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698