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

Side by Side Diff: content/test/data/gpu/pixel_offscreenCanvas_2d_commit_main.html

Issue 2774423006: Shrink the reference image dimension in OffscreenCanvas tests (Closed)
Patch Set: update reference count Created 3 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
« no previous file with comments | « no previous file | content/test/data/gpu/pixel_offscreenCanvas_2d_commit_worker.html » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 <!DOCTYPE HTML> 1 <!DOCTYPE HTML>
2 2
3 <!-- READ BEFORE UPDATING: 3 <!-- READ BEFORE UPDATING:
4 If this test is updated make sure to increment the "revision" value of the 4 If this test is updated make sure to increment the "revision" value of the
5 associated test in content/test/gpu/gpu_tests/pixel_test_pages.py. This will ens ure 5 associated test in content/test/gpu/gpu_tests/pixel_test_pages.py. This will ens ure
6 that the baseline images are regenerated on the next run. 6 that the baseline images are regenerated on the next run.
7 --> 7 -->
8 8
9 <html> 9 <html>
10 <head> 10 <head>
11 <title>OffscreenCanvas 2d commit flow on main thread: Two Canvases</title> 11 <title>OffscreenCanvas 2d commit flow on main thread: Two Canvases</title>
12 <style type="text/css"> 12 <style type="text/css">
13 .nomargin { 13 .nomargin {
14 margin: 0px auto; 14 margin: 0px auto;
15 } 15 }
16 </style> 16 </style>
17 </head> 17 </head>
18 <body onload="main()"> 18 <body onload="main()">
19 <div style="position:relative; width:600px; height:300px; background-color:white "> 19 <div style="position:relative; width:400px; height:200px; background-color:white ">
20 </div> 20 </div>
21 <div id="container" style="position:absolute; top:0px; left:0px"> 21 <div id="container" style="position:absolute; top:0px; left:0px">
22 <canvas id="canvas1" width="300" height="300" class="nomargin"></canvas> 22 <canvas id="canvas1" width="200" height="200" class="nomargin"></canvas>
23 <canvas id="canvas2" width="300" height="300" class="nomargin"></canvas> 23 <canvas id="canvas2" width="200" height="200" class="nomargin"></canvas>
24 </div> 24 </div>
25 <script> 25 <script>
26 /* This pixel test checks the following: 26 /* This pixel test checks the following:
27 1. Whether submission of frames for multiple canvases happen about the same 27 1. Whether submission of frames for multiple canvases happen about the same
28 time for OffscreenCanvas.commit() that are invoked in the same JS task. 28 time for OffscreenCanvas.commit() that are invoked in the same JS task.
29 2. Whether overdraw frame in one animation loop is handled well. 29 2. Whether overdraw frame in one animation loop is handled well.
30 3. Whether the drawn 2d image is position upright in commit(). 30 3. Whether the drawn 2d image is position upright in commit().
31 4. Drawing to OffscreenCanvas without commit() has no rendering results. 31 4. Drawing to OffscreenCanvas without commit() has no rendering results.
32 32
33 Correct end result of this test: The left canvas shows a seven-spike skyblue 33 Correct end result of this test: The left canvas shows a seven-spike skyblue
34 star on the top-left corner of a green background and the right canvas shows 34 star on the top-left corner of a green background and the right canvas shows
35 a sky-blue fill. 35 a sky-blue fill.
36 */ 36 */
37 37
38 var g_swapsBeforeAck = 15; 38 var g_swapsBeforeAck = 15;
39 var g_asyncCallbackNumber = 2; 39 var g_asyncCallbackNumber = 2;
40 40
41 function getOffscreenContext(htmlCanvasId) { 41 function getOffscreenContext(htmlCanvasId) {
42 return document.getElementById(htmlCanvasId).transferControlToOffscreen().getC ontext("2d"); 42 return document.getElementById(htmlCanvasId).transferControlToOffscreen().getC ontext("2d");
43 } 43 }
44 44
45 function startTest() { 45 function startTest() {
46 var ctx1 = getOffscreenContext("canvas1"); 46 var ctx1 = getOffscreenContext("canvas1");
47 var ctx2 = getOffscreenContext("canvas2"); 47 var ctx2 = getOffscreenContext("canvas2");
48 48
49 ctx1.fillStyle = "green"; 49 ctx1.fillStyle = "green";
50 ctx1.fillRect(0, 0, 300, 300); 50 ctx1.fillRect(0, 0, 200, 200);
51 // The promise returned by this ctx1.commit() must be resolved at 51 // The promise returned by this ctx1.commit() must be resolved at
52 // about the same time as the other ctx2.commit() below as they are in the 52 // about the same time as the other ctx2.commit() below as they are in the
53 // same JS task. 53 // same JS task.
54 ctx1.commit().then(function() { 54 ctx1.commit().then(function() {
55 ctx2.fillRect(0, 0, 300, 300); 55 ctx2.fillRect(0, 0, 200, 200);
56 // This ctx2.commit() must happen after the other ctx2.commit() below. 56 // This ctx2.commit() must happen after the other ctx2.commit() below.
57 ctx2.commit(); 57 ctx2.commit();
58 if (--g_asyncCallbackNumber == 0) waitForFinish(); 58 if (--g_asyncCallbackNumber == 0) waitForFinish();
59 }); 59 });
60 60
61 function drawStar(ctx, cx, cy, spikes, outerRadius, innerRadius) { 61 function drawStar(ctx, cx, cy, spikes, outerRadius, innerRadius) {
62 var rot = Math.PI / 2 * 3; 62 var rot = Math.PI / 2 * 3;
63 var x = cx; 63 var x = cx;
64 var y = cy; 64 var y = cy;
65 var step = Math.PI / spikes; 65 var step = Math.PI / spikes;
(...skipping 15 matching lines...) Expand all
81 ctx.closePath(); 81 ctx.closePath();
82 ctx.lineWidth = 5; 82 ctx.lineWidth = 5;
83 ctx.strokeStyle = 'black'; 83 ctx.strokeStyle = 'black';
84 ctx.stroke(); 84 ctx.stroke();
85 ctx.fillStyle = 'skyblue'; 85 ctx.fillStyle = 'skyblue';
86 ctx.fill(); 86 ctx.fill();
87 } 87 }
88 88
89 // Do something complex to ctx2. 89 // Do something complex to ctx2.
90 ctx2.fillStyle = "blue"; 90 ctx2.fillStyle = "blue";
91 ctx2.fillRect(0, 0, 300, 300); 91 ctx2.fillRect(0, 0, 200, 200);
92 drawStar(ctx2, 150, 150, 25, 80, 60); 92 drawStar(ctx2, 100, 100, 25, 60, 40);
93 // This ctx2.commit() must be resolved at about the same time as the first 93 // This ctx2.commit() must be resolved at about the same time as the first
94 // ctx1.commit() above because they are in the same JS task, no matter how 94 // ctx1.commit() above because they are in the same JS task, no matter how
95 // complex the drawing operation is. 95 // complex the drawing operation is.
96 ctx2.commit().then(function() { 96 ctx2.commit().then(function() {
97 drawStar(ctx1, 100, 100, 7, 80, 30); 97 drawStar(ctx1, 80, 80, 7, 60, 30);
98 ctx1.commit(); 98 ctx1.commit();
99 99
100 // The following fill is never committed 100 // The following fill is never committed
101 ctx1.fillStyle = "red"; 101 ctx1.fillStyle = "red";
102 ctx1.fillRect(0, 0, 200, 200); 102 ctx1.fillRect(0, 0, 200, 200);
103 if (--g_asyncCallbackNumber == 0) waitForFinish(); 103 if (--g_asyncCallbackNumber == 0) waitForFinish();
104 }); 104 });
105 105
106 } 106 }
107 107
108 function main() { 108 function main() {
109 startTest(); 109 startTest();
110 } 110 }
111 111
112 function waitForFinish() 112 function waitForFinish()
113 { 113 {
114 if (g_swapsBeforeAck == 0) { 114 if (g_swapsBeforeAck == 0) {
115 domAutomationController.setAutomationId(1); 115 domAutomationController.setAutomationId(1);
116 domAutomationController.send("SUCCESS"); 116 domAutomationController.send("SUCCESS");
117 } else { 117 } else {
118 g_swapsBeforeAck--; 118 g_swapsBeforeAck--;
119 document.getElementById('container').style.zIndex = g_swapsBeforeAck + 1; 119 document.getElementById('container').style.zIndex = g_swapsBeforeAck + 1;
120 requestAnimationFrame(waitForFinish); 120 requestAnimationFrame(waitForFinish);
121 } 121 }
122 } 122 }
123 123
124 </script> 124 </script>
125 </body> 125 </body>
126 </html> 126 </html>
OLDNEW
« no previous file with comments | « no previous file | content/test/data/gpu/pixel_offscreenCanvas_2d_commit_worker.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698