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

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

Issue 1804243002: Re-enable IOSurface Canvas2D. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Compile errors from rebase, still... Created 4 years, 9 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>WebGL Test: Green Triangle over Black Background</title> 11 <title>WebGL Test: Green Triangle over Black Background</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 17
18 <script id="shader-vs" type="x-shader/x-vertex"> 18 <script src="pixel_webgl_util.js"></script>
19 attribute vec3 pos;
20 void main(void)
21 {
22 gl_Position = vec4(pos, 1.0);
23 }
24 </script>
25
26 <script id="shader-fs" type="x-shader/x-fragment">
27 precision mediump float;
28 void main(void)
29 {
30 gl_FragColor = vec4(0.0, 1.0, 0.0, 1.0);
31 }
32 </script>
33 19
34 <script> 20 <script>
35 var g_swapsBeforeAck = 15; 21 var g_swapsBeforeAck = 15;
36 var gl; 22 var gl;
37 23
38 function main() 24 function main()
39 { 25 {
40 var canvas = document.getElementById("c"); 26 var canvas = document.getElementById("c");
41 gl = initGL(canvas); 27 gl = initGL(canvas);
42 if (gl && setup(gl)) { 28 if (gl && setup(gl)) {
43 drawSomeFrames(); 29 drawSomeFrames();
44 } else { 30 } else {
45 domAutomationController.setAutomationId(1); 31 domAutomationController.setAutomationId(1);
46 domAutomationController.send("FAILURE"); 32 domAutomationController.send("FAILURE");
47 } 33 }
48 } 34 }
49 35
50 function drawSomeFrames() 36 function drawSomeFrames()
51 { 37 {
52 if (g_swapsBeforeAck == 0) { 38 if (g_swapsBeforeAck == 0) {
53 domAutomationController.setAutomationId(1); 39 domAutomationController.setAutomationId(1);
54 domAutomationController.send("SUCCESS"); 40 domAutomationController.send("SUCCESS");
55 } else { 41 } else {
56 g_swapsBeforeAck--; 42 g_swapsBeforeAck--;
57 draw(gl); 43 drawTriangle(gl);
58 window.webkitRequestAnimationFrame(drawSomeFrames); 44 window.webkitRequestAnimationFrame(drawSomeFrames);
59 } 45 }
60 } 46 }
61 47
62 function initGL(canvas)
63 {
64 var gl = null;
65 try {
66 gl = canvas.getContext("experimental-webgl");
67 } catch (e) {}
68 if (!gl) {
69 try {
70 gl = canvas.getContext("webgl");
71 } catch (e) { }
72 }
73 return gl;
74 }
75 48
76 function setupShader(gl, source, type) {
77 var shader = gl.createShader(type);
78 gl.shaderSource(shader, source);
79 gl.compileShader(shader);
80 if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS))
81 return null;
82 return shader;
83 }
84 49
85 function setupProgram(gl, vs_id, fs_id) {
86 var vs_node = document.getElementById(vs_id);
87 var fs_node = document.getElementById(fs_id);
88 if (!vs_node || !fs_node)
89 return null;
90 var vs = setupShader(gl, vs_node.text, gl.VERTEX_SHADER);
91 var fs = setupShader(gl, fs_node.text, gl.FRAGMENT_SHADER);
92 if (!vs || !fs)
93 return null;
94 var program = gl.createProgram();
95 gl.attachShader(program, vs);
96 gl.attachShader(program, fs);
97 gl.linkProgram(program);
98 if (!gl.getProgramParameter(program, gl.LINK_STATUS))
99 return null;
100 gl.useProgram(program);
101 return program;
102 }
103
104 function setupBuffer(gl) {
105 var buffer = gl.createBuffer();
106 gl.bindBuffer(gl.ARRAY_BUFFER, buffer);
107 var vertexData = [
108 0.0, 0.6, 0.0, // Vertex 1 position
109 -0.6, -0.6, 0.0, // Vertex 2 position
110 0.6, -0.6, 0.0, // Vertex 3 position
111 ];
112 gl.bufferData(gl.ARRAY_BUFFER, new Float32Array(vertexData), gl.STATIC_DRAW);
113 }
114
115 function setup(gl) {
116 var program = setupProgram(gl, "shader-vs", "shader-fs");
117 if (!program)
118 return false;
119 var posAttr = gl.getAttribLocation(program, "pos");
120 gl.enableVertexAttribArray(posAttr);
121 setupBuffer(gl);
122 var stride = 3 * Float32Array.BYTES_PER_ELEMENT;
123 gl.vertexAttribPointer(posAttr, 3, gl.FLOAT, false, stride, 0);
124 gl.clearColor(0.0, 0.0, 0.0, 0.0);
125 gl.viewport(0, 0, 200, 200);
126 gl.disable(gl.DEPTH_TEST);
127 if (gl.getError() != gl.NO_ERROR)
128 return false;
129 return true;
130 }
131
132 function draw(gl) {
133 gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT);
134 gl.drawArrays(gl.TRIANGLES, 0, 3);
135 }
136 </script> 50 </script>
137 </head> 51 </head>
138 <body onload="main()"> 52 <body onload="main()">
139 <div style="position:relative; width:200px; height:200px; background-color:black "></div> 53 <div style="position:relative; width:200px; height:200px; background-color:black "></div>
140 <div style="position:absolute; top:0px; left:0px"> 54 <div style="position:absolute; top:0px; left:0px">
141 <canvas id="c" width="200" height="200" class="nomargin"></canvas> 55 <canvas id="c" width="200" height="200" class="nomargin"></canvas>
142 </div> 56 </div>
143 </body> 57 </body>
144 </html> 58 </html>
OLDNEW
« no previous file with comments | « content/test/data/gpu/pixel_canvas2d_webgl.html ('k') | content/test/data/gpu/pixel_webgl_util.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698