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

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

Issue 2594843002: Implementing promise-based commit for driving OffscreenCanvas animations (Closed)
Patch Set: test fix Created 3 years, 12 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
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/page_sets/pixel_tests.py. This will ensure 5 associated test in content/test/gpu/page_sets/pixel_tests.py. This will ensure
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 commit flow on worker thread: red square on white backgro und.</title> 11 <title>OffscreenCanvas commit flow on worker thread: red square on white backgro und.</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 <script id="myWorker" type="text/worker"> 17 <script id="myWorker" type="text/worker">
18 function drawTriangle(canvas) 18
19 var g_frameNumber = 0;
20 var gl;
21
22 function drawTriangle()
19 { 23 {
20 var gl = canvas.getContext("webgl");
21 gl.clearColor(0, 1, 0, 1); 24 gl.clearColor(0, 1, 0, 1);
22 gl.clear(gl.COLOR_BUFFER_BIT); 25 gl.clear(gl.COLOR_BUFFER_BIT);
23 26
24 var prog = gl.createProgram(); 27 var prog = gl.createProgram();
25 var vs = gl.createShader(gl.VERTEX_SHADER); 28 var vs = gl.createShader(gl.VERTEX_SHADER);
26 gl.shaderSource(vs, ['attribute vec2 pos;', 29 gl.shaderSource(vs, ['attribute vec2 pos;',
27 'void main() {', 30 'void main() {',
28 ' gl_Position = vec4(pos, 0., 1.);', 31 ' gl_Position = vec4(pos, 0., 1.);',
29 '}'].join('\n')); 32 '}'].join('\n'));
30 gl.compileShader(vs); 33 gl.compileShader(vs);
(...skipping 22 matching lines...) Expand all
53 gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([-.5,0, 0,.5, .5,0]), gl.STATI C_DRAW); 56 gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([-.5,0, 0,.5, .5,0]), gl.STATI C_DRAW);
54 var attr = gl.getAttribLocation(prog, 'pos'); 57 var attr = gl.getAttribLocation(prog, 'pos');
55 gl.enableVertexAttribArray(attr); 58 gl.enableVertexAttribArray(attr);
56 gl.vertexAttribPointer(attr, 2, gl.FLOAT, false, 0, 0); 59 gl.vertexAttribPointer(attr, 2, gl.FLOAT, false, 0, 0);
57 60
58 gl.drawArrays(gl.TRIANGLE_STRIP, 0, 3); 61 gl.drawArrays(gl.TRIANGLE_STRIP, 0, 3);
59 62
60 gl.commit(); 63 gl.commit();
61 } 64 }
62 65
66 function drawLoop()
67 {
68 if (g_frameNumber < 3) {
69 gl.clearColor(1, 0, 0, 1);
70 gl.clear(gl.COLOR_BUFFER_BIT);
71 g_frameNumber++;
72 gl.commit().then(drawLoop);
73 } else {
74 drawTriangle(offscreenCanvas);
75 gl.commit();
76
77 // The following clear is never committed
78 gl.clearColor(0, 0, 1, 1);
79 gl.clear(gl.COLOR_BUFFER_BIT);
80
81 self.postMessage("");
82 }
83 }
84
63 self.onmessage = function(e) { 85 self.onmessage = function(e) {
64 var transferredOffscreenCanvas = e.data; 86 var transferredOffscreenCanvas = e.data;
65 drawTriangle(transferredOffscreenCanvas); 87 gl = transferredOffscreenCanvas.getContext("webgl");
66 self.postMessage(""); 88 drawLoop();
67 }; 89 };
68 </script> 90 </script>
69 <script> 91 <script>
70 var g_swapsBeforeAck = 15; 92 var g_swapsBeforeAck = 15;
71 93
72 function makeWorker(script) { 94 function makeWorker(script) {
73 var blob = new Blob([script]); 95 var blob = new Blob([script]);
74 return new Worker(URL.createObjectURL(blob)); 96 return new Worker(URL.createObjectURL(blob));
75 } 97 }
76 98
(...skipping 27 matching lines...) Expand all
104 </script> 126 </script>
105 </head> 127 </head>
106 <body onload="main()"> 128 <body onload="main()">
107 <div style="position:relative; width:300px; height:300px; background-color:white "> 129 <div style="position:relative; width:300px; height:300px; background-color:white ">
108 </div> 130 </div>
109 <div id="container" style="position:absolute; top:0px; left:0px"> 131 <div id="container" style="position:absolute; top:0px; left:0px">
110 <canvas id="c" width="300" height="300" class="nomargin"></canvas> 132 <canvas id="c" width="300" height="300" class="nomargin"></canvas>
111 </div> 133 </div>
112 </body> 134 </body>
113 </html> 135 </html>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698