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

Side by Side Diff: conformance/glsl/misc/shared.html

Issue 8342021: Add webgl conformance tests r15841. (Closed) Base URL: svn://chrome-svn/chrome/trunk/deps/third_party/webgl/sdk/tests/
Patch Set: Created 9 years, 2 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
Property Changes:
Added: svn:executable
+ *
Added: svn:eol-style
+ LF
OLDNEW
(Empty)
1 <!--
2 Copyright (c) 2011 The Chromium Authors. All rights reserved.
3 Use of this source code is governed by a BSD-style license that can be
4 found in the LICENSE file.
5 -->
6 <!DOCTYPE html>
7 <html>
8 <head>
9 <meta charset="utf-8">
10 <title>WebGL GLSL Conformance Tests</title>
11 <link rel="stylesheet" href="../../../resources/js-test-style.css"/>
12 <script src="../../../resources/js-test-pre.js"></script>
13 <script src="../../resources/webgl-test-utils.js"></script>
14 <script src="../../resources/glsl-conformance-test.js"></script>
15 </head>
16 <body>
17 <div id="description"></div>
18 <div id="console"></div>
19 <script id="sharedVertexShader" type="text/something-not-javascript">
20 // shared vertex shader should succeed.
21 uniform mat4 viewProjection;
22 uniform vec3 worldPosition;
23 uniform vec3 nextPosition;
24 uniform float fishLength;
25 uniform float fishWaveLength;
26 uniform float fishBendAmount;
27 attribute vec4 position;
28 attribute vec2 texCoord;
29 varying vec4 v_position;
30 varying vec2 v_texCoord;
31 varying vec3 v_surfaceToLight;
32 void main() {
33 vec3 vz = normalize(worldPosition - nextPosition);
34 vec3 vx = normalize(cross(vec3(0,1,0), vz));
35 vec3 vy = cross(vz, vx);
36 mat4 orientMat = mat4(
37 vec4(vx, 0),
38 vec4(vy, 0),
39 vec4(vz, 0),
40 vec4(worldPosition, 1));
41 mat4 world = orientMat;
42 mat4 worldViewProjection = viewProjection * world;
43 mat4 worldInverseTranspose = world;
44
45 v_texCoord = texCoord;
46 // NOTE:If you change this you need to change the laser code to match!
47 float mult = position.z > 0.0 ?
48 (position.z / fishLength) :
49 (-position.z / fishLength * 2.0);
50 float s = sin(mult * fishWaveLength);
51 float a = sign(s);
52 float offset = pow(mult, 2.0) * s * fishBendAmount;
53 v_position = (
54 worldViewProjection *
55 (position +
56 vec4(offset, 0, 0, 0)));
57 v_surfaceToLight = (world * position).xyz;
58 gl_Position = v_position;
59 }
60 </script>
61 <script id="fragmentShaderA" type="text/something-not-javascript">
62 // shared fragment shader should succeed.
63 precision mediump float;
64 uniform vec4 lightColor;
65 varying vec4 v_position;
66 varying vec2 v_texCoord;
67 varying vec3 v_surfaceToLight;
68
69 uniform vec4 ambient;
70 uniform sampler2D diffuse;
71 uniform vec4 specular;
72 uniform float shininess;
73 uniform float specularFactor;
74 // #fogUniforms
75
76 vec4 lit(float l ,float h, float m) {
77 return vec4(1.0,
78 max(l, 0.0),
79 (l > 0.0) ? pow(max(0.0, h), m) : 0.0,
80 1.0);
81 }
82 void main() {
83 vec4 diffuseColor = texture2D(diffuse, v_texCoord);
84 vec4 normalSpec = vec4(0,0,0,0); // #noNormalMap
85 vec3 surfaceToLight = normalize(v_surfaceToLight);
86 vec3 halfVector = normalize(surfaceToLight);
87 vec4 litR = lit(1.0, 1.0, shininess);
88 vec4 outColor = vec4(
89 (lightColor * (diffuseColor * litR.y + diffuseColor * ambient +
90 specular * litR.z * specularFactor * normalSpec.a)).rgb,
91 diffuseColor.a);
92 // #fogCode
93 gl_FragColor = outColor;
94 }
95 </script>
96 <script id="fragmentShaderB" type="text/something-not-javascript">
97 // shared fragment shader should succeed.
98 precision mediump float;
99 varying vec4 v_position;
100 varying vec2 v_texCoord;
101 varying vec3 v_surfaceToLight;
102
103 // #fogUniforms
104
105 vec4 lit(float l ,float h, float m) {
106 return vec4(1.0,
107 max(l, 0.0),
108 (l > 0.0) ? pow(max(0.0, h), m) : 0.0,
109 1.0);
110 }
111 void main() {
112 vec4 normalSpec = vec4(0,0,0,0); // #noNormalMap
113 vec4 reflection = vec4(0,0,0,0); // #noReflection
114 vec3 surfaceToLight = normalize(v_surfaceToLight);
115 vec4 skyColor = vec4(0.5,0.5,1,1); // #noReflection
116
117 vec3 halfVector = normalize(surfaceToLight);
118 vec4 litR = lit(1.0, 1.0, 10.0);
119 vec4 outColor = vec4(mix(
120 skyColor,
121 vec4(1,2,3,4) * (litR.y + litR.z * normalSpec.a),
122 1.0 - reflection.r).rgb,
123 1.0);
124 // #fogCode
125 gl_FragColor = outColor;
126 }
127 </script>
128 <script>
129 GLSLConformanceTester.runTests([
130 { vShaderSource: document.getElementById("sharedVertexShader").text,
131 vShaderSuccess: true,
132 fShaderSource: document.getElementById("fragmentShaderA").text,
133 fShaderSuccess: true,
134 linkSuccess: true,
135 passMsg: 'shared fragment shader should succeed',
136 },
137 { vShaderSource: document.getElementById("sharedVertexShader").text,
138 vShaderSuccess: true,
139 fShaderSource: document.getElementById("fragmentShaderB").text,
140 fShaderSuccess: true,
141 linkSuccess: true,
142 passMsg: 'shared fragment shader should succeed',
143 }
144 ]);
145 successfullyParsed = true;
146 </script>
147 </body>
148 </html>
149
OLDNEW
« no previous file with comments | « conformance/glsl/misc/shader-without-precision.frag.html ('k') | conformance/glsl/reserved/00_test_list.txt » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698