diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 17:32:43 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 17:32:43 +0000 |
commit | 6bf0a5cb5034a7e684dcc3500e841785237ce2dd (patch) | |
tree | a68f146d7fa01f0134297619fbe7e33db084e0aa /dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests | |
parent | Initial commit. (diff) | |
download | thunderbird-upstream.tar.xz thunderbird-upstream.zip |
Adding upstream version 1:115.7.0.upstream/1%115.7.0upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests')
124 files changed, 3433 insertions, 0 deletions
diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/attach_shader/successfulcompile_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/attach_shader/successfulcompile_frag.frag new file mode 100644 index 0000000000..b251b07f03 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/attach_shader/successfulcompile_frag.frag @@ -0,0 +1,46 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +uniform float mortarThickness; +uniform vec3 brickColor; +uniform vec3 mortarColor; + +uniform float brickMortarWidth; +uniform float brickMortarHeight; +uniform float mwf; +uniform float mhf; + +varying vec3 Position; +varying float lightIntensity; + +void main (void) +{ + vec3 ct; + float ss, tt, w, h; + + vec3 pos = Position; + + ss = pos.x / brickMortarWidth; + tt = pos.z / brickMortarHeight; + + if (fract (tt * 0.5) > 0.5) + ss += 0.5; + + ss = fract (ss); + tt = fract (tt); + + w = step (mwf, ss) - step (1.0 - mwf, ss); + h = step (mhf, tt) - step (1.0 - mhf, tt); + + ct = clamp(mix (mortarColor, brickColor, w * h) * lightIntensity, 0.0, 1.0); + + gl_FragColor = vec4 (ct, 1.0); +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/attach_shader/successfulcompile_vert.vert b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/attach_shader/successfulcompile_vert.vert new file mode 100644 index 0000000000..19faf8698b --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/attach_shader/successfulcompile_vert.vert @@ -0,0 +1,26 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +attribute vec3 gtf_Normal; +attribute vec4 gtf_Vertex; +uniform mat3 gtf_NormalMatrix; +uniform mat4 gtf_ModelViewMatrix; +uniform mat4 gtf_ModelViewProjectionMatrix; + +varying float lightIntensity; +varying vec3 Position; +uniform vec3 LightPosition; +uniform float Scale; + +void main(void) { + vec4 pos = gtf_ModelViewMatrix * gtf_Vertex; + Position = vec3(gtf_Vertex) * Scale; + vec3 tnorm = normalize(gtf_NormalMatrix * gtf_Normal); + lightIntensity = dot(normalize(LightPosition - vec3(pos)), tnorm) * 1.5; + gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/attach_shader/unsuccessfulcompile_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/attach_shader/unsuccessfulcompile_frag.frag new file mode 100644 index 0000000000..4f3fe797b2 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/attach_shader/unsuccessfulcompile_frag.frag @@ -0,0 +1,66 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +uniform float GrainSize; +uniform vec3 DarkColor; +uniform vec3 colorSpread; + +varying float lightIntensity; +varying vec3 Position; + +void main (void) +{ + // + // cheap noise + // + vec3 location = Position; + + vec3 floorvec = vec3(floor(Position.x * 10.0), 0.0, floor(Position.z * 10.0)); + vec3 noise = Position * 10.0 - floorvec - 0.5; + noise *= noise; + location += noise * 0.12; + + // + // distance from axis + // + float dist = location.x * location.x + location.z * location.z; + float grain = dist / GrainSize; + + // + // grain effects as function of distance + // + float brightness = fract(grain); + if (brightness > 0.5) + brightness = (1.0 - brightness); + vec3 color = DarkColor + 0.5 * brightness * (colorSpread); + + brightness = fract(grain*7.0); + if (brightness > 0.5) + brightness = 1.0 - brightness; + color -= 0.5 * brightness * colorSpread; + + // + // also as a function of lines parallel to the axis + // + brightness = fract(grain*47.0); + float line = fract(Position.z + Position.x); + float snap = floor(line * 30.0) * (1.0/30.0); + if (line < snap + 0.004) + color -= 0.5 * brightness * colorSpread; + + // + // apply lighting effects from vertex processor + // + color *= lightIntensity; + color = clamp(color, 0.0, 1.0); + + gl_FragColor = vec4(color, 0.1) +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/attach_shader/unsuccessfulcompile_vert.vert b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/attach_shader/unsuccessfulcompile_vert.vert new file mode 100644 index 0000000000..b04c21efe3 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/attach_shader/unsuccessfulcompile_vert.vert @@ -0,0 +1,43 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +attribute vec3 gtf_Normal; +attribute vec4 gtf_Vertex; +uniform mat3 gtf_NormalMatrix; +uniform mat4 gtf_ModelViewMatrix; +uniform mat4 gtf_ModelViewProjectionMatrix; +varying float lightIntensity; +varying vec3 Position; +uniform vec3 LightPosition; +uniform vec3 NotActiveOne; +attribute float myAttribute1; +attribute float myAttribute2; + +const float specularContribution = 0.7; +const float diffuseContribution = (1.0 - specularContribution); + +void main(void) { + vec4 pos = gtf_ModelViewMatrix * gtf_Vertex_Color; + Position = vec3(gtf_Vertex); + vec3 tnorm = normalize(gtf_NormalMatrix * gtf_Normal); + vec3 lightVec = normalize(LightPosition - vec3(pos)); + vec3 reflectVec = reflect(lightVec, tnorm); + vec3 viewVec = normalize(vec3(pos)); + + //float spec = clamp(dot(reflectVec, viewVec), 0.0, 1.0); + float spec = clamp(dot(reflectVec, viewVec), myAttribute1, myAttribute2); + spec = spec * spec; + spec = spec * spec; + spec = spec * spec; + spec = spec * spec; + + lightIntensity = diffuseContribution * dot(lightVec, tnorm) + + specularContribution * spec; + + gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/bind_attribute_location/brick.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/bind_attribute_location/brick.frag new file mode 100644 index 0000000000..2d895c8c8c --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/bind_attribute_location/brick.frag @@ -0,0 +1,47 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif + +uniform float mortarThickness; +uniform vec3 brickColor; +uniform vec3 mortarColor; + +uniform float brickMortarWidth; +uniform float brickMortarHeight; +uniform float mwf; +uniform float mhf; + +varying vec3 Position; +varying float lightIntensity; + +void main (void) +{ + vec3 ct; + float ss, tt, w, h; + + vec3 pos = Position; + + ss = pos.x / brickMortarWidth; + tt = pos.z / brickMortarHeight; + + if (fract (tt * 0.5) > 0.5) + ss += 0.5; + + ss = fract (ss); + tt = fract (tt); + + w = step (mwf, ss) - step (1.0 - mwf, ss); + h = step (mhf, tt) - step (1.0 - mhf, tt); + + ct = clamp(mix (mortarColor, brickColor, w * h) * lightIntensity, 0.0, 1.0); + + gl_FragColor = vec4 (ct, 1.0); +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/bind_attribute_location/brick.vert b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/bind_attribute_location/brick.vert new file mode 100644 index 0000000000..44564ce7cd --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/bind_attribute_location/brick.vert @@ -0,0 +1,43 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +attribute vec3 gtf_Normal; +attribute vec4 gtf_Vertex; +uniform mat3 gtf_NormalMatrix; +uniform mat4 gtf_ModelViewMatrix; +uniform mat4 gtf_ModelViewProjectionMatrix; +varying float lightIntensity; +varying vec3 Position; +uniform vec3 LightPosition; +uniform vec3 NotActiveOne; +attribute float myAttribute1; +attribute vec3 myAttribute2; + +const float specularContribution = 0.7; +const float diffuseContribution = (1.0 - specularContribution); + +void main(void) { + vec4 pos = gtf_ModelViewMatrix * gtf_Vertex; + Position = vec3(gtf_Vertex); + vec3 tnorm = normalize(gtf_NormalMatrix * gtf_Normal); + vec3 lightVec = normalize(LightPosition - vec3(pos)); + vec3 reflectVec = reflect(lightVec, tnorm); + vec3 viewVec = normalize(vec3(pos)); + + //float spec = clamp(dot(reflectVec, viewVec), 0.0, 1.0); + float spec = clamp(dot(reflectVec, viewVec), myAttribute1, myAttribute2[1]); + spec = spec * spec; + spec = spec * spec; + spec = spec * spec; + spec = spec * spec; + + lightIntensity = diffuseContribution * dot(lightVec, tnorm) + + specularContribution * spec; + + gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/compile_shader/brick.vert b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/compile_shader/brick.vert new file mode 100644 index 0000000000..b04c21efe3 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/compile_shader/brick.vert @@ -0,0 +1,43 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +attribute vec3 gtf_Normal; +attribute vec4 gtf_Vertex; +uniform mat3 gtf_NormalMatrix; +uniform mat4 gtf_ModelViewMatrix; +uniform mat4 gtf_ModelViewProjectionMatrix; +varying float lightIntensity; +varying vec3 Position; +uniform vec3 LightPosition; +uniform vec3 NotActiveOne; +attribute float myAttribute1; +attribute float myAttribute2; + +const float specularContribution = 0.7; +const float diffuseContribution = (1.0 - specularContribution); + +void main(void) { + vec4 pos = gtf_ModelViewMatrix * gtf_Vertex_Color; + Position = vec3(gtf_Vertex); + vec3 tnorm = normalize(gtf_NormalMatrix * gtf_Normal); + vec3 lightVec = normalize(LightPosition - vec3(pos)); + vec3 reflectVec = reflect(lightVec, tnorm); + vec3 viewVec = normalize(vec3(pos)); + + //float spec = clamp(dot(reflectVec, viewVec), 0.0, 1.0); + float spec = clamp(dot(reflectVec, viewVec), myAttribute1, myAttribute2); + spec = spec * spec; + spec = spec * spec; + spec = spec * spec; + spec = spec * spec; + + lightIntensity = diffuseContribution * dot(lightVec, tnorm) + + specularContribution * spec; + + gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/compile_shader/texture.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/compile_shader/texture.frag new file mode 100644 index 0000000000..fdab13ace1 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/compile_shader/texture.frag @@ -0,0 +1,35 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +// +// wobble.frag: Fragment shader for wobbling a texture +// +// author: Antonio Tejada +// +// + +varying vec3 Position; +varying float lightIntensity; + +/* Constants */ + +uniform sampler2D sampler2d; // value of sampler2d = 0 +varying vec4 gtf_TexCoord[1]; + +void main (void) +{ + vec3 lightColor = vec3(texture2D(sampler2d, vec2(gtf_TexCoord[0]))) * lightIntensity; + + vec3 ct = clamp(lightColor, 0.0, 1.0); + + gl_FragColor = vec4 (ct, 1.0); +} + diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/compile_shader/wood.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/compile_shader/wood.frag new file mode 100644 index 0000000000..4f3fe797b2 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/compile_shader/wood.frag @@ -0,0 +1,66 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +uniform float GrainSize; +uniform vec3 DarkColor; +uniform vec3 colorSpread; + +varying float lightIntensity; +varying vec3 Position; + +void main (void) +{ + // + // cheap noise + // + vec3 location = Position; + + vec3 floorvec = vec3(floor(Position.x * 10.0), 0.0, floor(Position.z * 10.0)); + vec3 noise = Position * 10.0 - floorvec - 0.5; + noise *= noise; + location += noise * 0.12; + + // + // distance from axis + // + float dist = location.x * location.x + location.z * location.z; + float grain = dist / GrainSize; + + // + // grain effects as function of distance + // + float brightness = fract(grain); + if (brightness > 0.5) + brightness = (1.0 - brightness); + vec3 color = DarkColor + 0.5 * brightness * (colorSpread); + + brightness = fract(grain*7.0); + if (brightness > 0.5) + brightness = 1.0 - brightness; + color -= 0.5 * brightness * colorSpread; + + // + // also as a function of lines parallel to the axis + // + brightness = fract(grain*47.0); + float line = fract(Position.z + Position.x); + float snap = floor(line * 30.0) * (1.0/30.0); + if (line < snap + 0.004) + color -= 0.5 * brightness * colorSpread; + + // + // apply lighting effects from vertex processor + // + color *= lightIntensity; + color = clamp(color, 0.0, 1.0); + + gl_FragColor = vec4(color, 0.1) +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/compile_shader/wood.vert b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/compile_shader/wood.vert new file mode 100644 index 0000000000..19faf8698b --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/compile_shader/wood.vert @@ -0,0 +1,26 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +attribute vec3 gtf_Normal; +attribute vec4 gtf_Vertex; +uniform mat3 gtf_NormalMatrix; +uniform mat4 gtf_ModelViewMatrix; +uniform mat4 gtf_ModelViewProjectionMatrix; + +varying float lightIntensity; +varying vec3 Position; +uniform vec3 LightPosition; +uniform float Scale; + +void main(void) { + vec4 pos = gtf_ModelViewMatrix * gtf_Vertex; + Position = vec3(gtf_Vertex) * Scale; + vec3 tnorm = normalize(gtf_NormalMatrix * gtf_Normal); + lightIntensity = dot(normalize(LightPosition - vec3(pos)), tnorm) * 1.5; + gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/delete_object/successfulcompile_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/delete_object/successfulcompile_frag.frag new file mode 100644 index 0000000000..b251b07f03 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/delete_object/successfulcompile_frag.frag @@ -0,0 +1,46 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +uniform float mortarThickness; +uniform vec3 brickColor; +uniform vec3 mortarColor; + +uniform float brickMortarWidth; +uniform float brickMortarHeight; +uniform float mwf; +uniform float mhf; + +varying vec3 Position; +varying float lightIntensity; + +void main (void) +{ + vec3 ct; + float ss, tt, w, h; + + vec3 pos = Position; + + ss = pos.x / brickMortarWidth; + tt = pos.z / brickMortarHeight; + + if (fract (tt * 0.5) > 0.5) + ss += 0.5; + + ss = fract (ss); + tt = fract (tt); + + w = step (mwf, ss) - step (1.0 - mwf, ss); + h = step (mhf, tt) - step (1.0 - mhf, tt); + + ct = clamp(mix (mortarColor, brickColor, w * h) * lightIntensity, 0.0, 1.0); + + gl_FragColor = vec4 (ct, 1.0); +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/delete_object/successfulcompile_vert.vert b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/delete_object/successfulcompile_vert.vert new file mode 100644 index 0000000000..19faf8698b --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/delete_object/successfulcompile_vert.vert @@ -0,0 +1,26 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +attribute vec3 gtf_Normal; +attribute vec4 gtf_Vertex; +uniform mat3 gtf_NormalMatrix; +uniform mat4 gtf_ModelViewMatrix; +uniform mat4 gtf_ModelViewProjectionMatrix; + +varying float lightIntensity; +varying vec3 Position; +uniform vec3 LightPosition; +uniform float Scale; + +void main(void) { + vec4 pos = gtf_ModelViewMatrix * gtf_Vertex; + Position = vec3(gtf_Vertex) * Scale; + vec3 tnorm = normalize(gtf_NormalMatrix * gtf_Normal); + lightIntensity = dot(normalize(LightPosition - vec3(pos)), tnorm) * 1.5; + gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/detach_shader/successfulcompile_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/detach_shader/successfulcompile_frag.frag new file mode 100644 index 0000000000..b251b07f03 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/detach_shader/successfulcompile_frag.frag @@ -0,0 +1,46 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +uniform float mortarThickness; +uniform vec3 brickColor; +uniform vec3 mortarColor; + +uniform float brickMortarWidth; +uniform float brickMortarHeight; +uniform float mwf; +uniform float mhf; + +varying vec3 Position; +varying float lightIntensity; + +void main (void) +{ + vec3 ct; + float ss, tt, w, h; + + vec3 pos = Position; + + ss = pos.x / brickMortarWidth; + tt = pos.z / brickMortarHeight; + + if (fract (tt * 0.5) > 0.5) + ss += 0.5; + + ss = fract (ss); + tt = fract (tt); + + w = step (mwf, ss) - step (1.0 - mwf, ss); + h = step (mhf, tt) - step (1.0 - mhf, tt); + + ct = clamp(mix (mortarColor, brickColor, w * h) * lightIntensity, 0.0, 1.0); + + gl_FragColor = vec4 (ct, 1.0); +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/detach_shader/successfulcompile_vert.vert b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/detach_shader/successfulcompile_vert.vert new file mode 100644 index 0000000000..19faf8698b --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/detach_shader/successfulcompile_vert.vert @@ -0,0 +1,26 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +attribute vec3 gtf_Normal; +attribute vec4 gtf_Vertex; +uniform mat3 gtf_NormalMatrix; +uniform mat4 gtf_ModelViewMatrix; +uniform mat4 gtf_ModelViewProjectionMatrix; + +varying float lightIntensity; +varying vec3 Position; +uniform vec3 LightPosition; +uniform float Scale; + +void main(void) { + vec4 pos = gtf_ModelViewMatrix * gtf_Vertex; + Position = vec3(gtf_Vertex) * Scale; + vec3 tnorm = normalize(gtf_NormalMatrix * gtf_Normal); + lightIntensity = dot(normalize(LightPosition - vec3(pos)), tnorm) * 1.5; + gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/framebuffer_objects/fboShader0.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/framebuffer_objects/fboShader0.frag new file mode 100644 index 0000000000..03a0aa8703 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/framebuffer_objects/fboShader0.frag @@ -0,0 +1,29 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif + +varying vec4 color; +varying vec4 texCoord[1]; + +uniform sampler2D gtf_Texture0; +uniform int gtf_UseTexture; + +void main (void) +{ + if ( gtf_UseTexture == 1 ) + { + gl_FragColor = texture2D(gtf_Texture0, texCoord[0].xy); + } + else + { + gl_FragColor = color; + } +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/framebuffer_objects/fboShader0.vert b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/framebuffer_objects/fboShader0.vert new file mode 100644 index 0000000000..f1edf81011 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/framebuffer_objects/fboShader0.vert @@ -0,0 +1,23 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +attribute vec4 gtf_Color; +attribute vec4 gtf_Vertex; +attribute vec4 gtf_MultiTexCoord0; + +varying vec4 texCoord[1]; +varying vec4 color; + +uniform mat4 gtf_ModelViewProjectionMatrix; + +void main (void) +{ + color = gtf_Color; + texCoord[0] = gtf_MultiTexCoord0; + gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/get_active_attribute/brick.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/get_active_attribute/brick.frag new file mode 100644 index 0000000000..b251b07f03 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/get_active_attribute/brick.frag @@ -0,0 +1,46 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +uniform float mortarThickness; +uniform vec3 brickColor; +uniform vec3 mortarColor; + +uniform float brickMortarWidth; +uniform float brickMortarHeight; +uniform float mwf; +uniform float mhf; + +varying vec3 Position; +varying float lightIntensity; + +void main (void) +{ + vec3 ct; + float ss, tt, w, h; + + vec3 pos = Position; + + ss = pos.x / brickMortarWidth; + tt = pos.z / brickMortarHeight; + + if (fract (tt * 0.5) > 0.5) + ss += 0.5; + + ss = fract (ss); + tt = fract (tt); + + w = step (mwf, ss) - step (1.0 - mwf, ss); + h = step (mhf, tt) - step (1.0 - mhf, tt); + + ct = clamp(mix (mortarColor, brickColor, w * h) * lightIntensity, 0.0, 1.0); + + gl_FragColor = vec4 (ct, 1.0); +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/get_active_attribute/brick_mat2.vert b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/get_active_attribute/brick_mat2.vert new file mode 100644 index 0000000000..17102a01c5 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/get_active_attribute/brick_mat2.vert @@ -0,0 +1,45 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +attribute vec4 gtf_Vertex; +attribute vec3 gtf_Normal; +attribute mat2 myAttrib2m; + +uniform mat3 gtf_NormalMatrix; +varying float lightIntensity; +varying vec3 Position; +uniform vec3 LightPosition; + +uniform mat4 gtf_ModelViewMatrix; +uniform mat4 gtf_ModelViewProjectionMatrix; + +const float specularContribution = 0.7; +const float diffuseContribution = (1.0 - specularContribution); + +void main(void) { + vec4 pos = gtf_ModelViewMatrix * gtf_Vertex; + Position = vec3(gtf_Vertex); + vec3 tnorm = normalize(gtf_NormalMatrix * gtf_Normal); + vec3 lightVec = normalize(LightPosition - vec3(pos)); + vec3 reflectVec = reflect(lightVec, tnorm); + vec3 viewVec = normalize(vec3(pos)); + + float f = myAttrib2m[0][0]; + + float spec = clamp(dot(reflectVec, viewVec), f, 1.0); + //float spec = clamp(dot(reflectVec, viewVec), myAttribute1, myAttribute2); + spec = spec * spec; + spec = spec * spec; + spec = spec * spec; + spec = spec * spec; + + lightIntensity = diffuseContribution * dot(lightVec, tnorm) + + specularContribution * spec; + + gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/get_active_attribute/brick_mat3.vert b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/get_active_attribute/brick_mat3.vert new file mode 100644 index 0000000000..d6fea1125b --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/get_active_attribute/brick_mat3.vert @@ -0,0 +1,45 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +attribute vec4 gtf_Vertex; +attribute vec3 gtf_Normal; +attribute mat3 myAttrib3m; + +uniform mat3 gtf_NormalMatrix; +varying float lightIntensity; +varying vec3 Position; +uniform vec3 LightPosition; + +uniform mat4 gtf_ModelViewMatrix; +uniform mat4 gtf_ModelViewProjectionMatrix; + +const float specularContribution = 0.7; +const float diffuseContribution = (1.0 - specularContribution); + +void main(void) { + vec4 pos = gtf_ModelViewMatrix * gtf_Vertex; + Position = vec3(gtf_Vertex); + vec3 tnorm = normalize(gtf_NormalMatrix * gtf_Normal); + vec3 lightVec = normalize(LightPosition - vec3(pos)); + vec3 reflectVec = reflect(lightVec, tnorm); + vec3 viewVec = normalize(vec3(pos)); + + float f = myAttrib3m[0][0]; + + float spec = clamp(dot(reflectVec, viewVec), f, 1.0); + //float spec = clamp(dot(reflectVec, viewVec), myAttribute1, myAttribute2); + spec = spec * spec; + spec = spec * spec; + spec = spec * spec; + spec = spec * spec; + + lightIntensity = diffuseContribution * dot(lightVec, tnorm) + + specularContribution * spec; + + gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/get_active_attribute/brick_mat4.vert b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/get_active_attribute/brick_mat4.vert new file mode 100644 index 0000000000..5c28d78aaf --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/get_active_attribute/brick_mat4.vert @@ -0,0 +1,45 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +attribute vec4 gtf_Vertex; +attribute vec3 gtf_Normal; +attribute mat4 myAttrib4m; + +uniform mat3 gtf_NormalMatrix; +varying float lightIntensity; +varying vec3 Position; +uniform vec3 LightPosition; + +uniform mat4 gtf_ModelViewMatrix; +uniform mat4 gtf_ModelViewProjectionMatrix; + +const float specularContribution = 0.7; +const float diffuseContribution = (1.0 - specularContribution); + +void main(void) { + vec4 pos = gtf_ModelViewMatrix * gtf_Vertex; + Position = vec3(gtf_Vertex); + vec3 tnorm = normalize(gtf_NormalMatrix * gtf_Normal); + vec3 lightVec = normalize(LightPosition - vec3(pos)); + vec3 reflectVec = reflect(lightVec, tnorm); + vec3 viewVec = normalize(vec3(pos)); + + float f = myAttrib4m[0][0]; + + float spec = clamp(dot(reflectVec, viewVec), f, 1.0); + //float spec = clamp(dot(reflectVec, viewVec), myAttribute1, myAttribute2); + spec = spec * spec; + spec = spec * spec; + spec = spec * spec; + spec = spec * spec; + + lightIntensity = diffuseContribution * dot(lightVec, tnorm) + + specularContribution * spec; + + gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/get_active_attribute/brick_vec.vert b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/get_active_attribute/brick_vec.vert new file mode 100644 index 0000000000..c36a4e1133 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/get_active_attribute/brick_vec.vert @@ -0,0 +1,48 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +attribute vec4 gtf_Vertex; +attribute vec3 gtf_Normal; +attribute float myAttrib1f; +attribute vec2 myAttrib2f; +attribute vec3 myAttrib3f; +attribute vec4 myAttrib4f; + +uniform mat3 gtf_NormalMatrix; +varying float lightIntensity; +varying vec3 Position; +uniform vec3 LightPosition; + +uniform mat4 gtf_ModelViewMatrix; +uniform mat4 gtf_ModelViewProjectionMatrix; + +const float specularContribution = 0.7; +const float diffuseContribution = (1.0 - specularContribution); + +void main(void) { + vec4 pos = gtf_ModelViewMatrix * gtf_Vertex; + Position = vec3(gtf_Vertex); + vec3 tnorm = normalize(gtf_NormalMatrix * gtf_Normal); + vec3 lightVec = normalize(LightPosition - vec3(pos)); + vec3 reflectVec = reflect(lightVec, tnorm); + vec3 viewVec = normalize(vec3(pos)); + + float f = myAttrib1f + myAttrib2f[0] + myAttrib3f[0] + myAttrib4f[0]; + + float spec = clamp(dot(reflectVec, viewVec), f, 1.0); + //float spec = clamp(dot(reflectVec, viewVec), myAttribute1, myAttribute2); + spec = spec * spec; + spec = spec * spec; + spec = spec * spec; + spec = spec * spec; + + lightIntensity = diffuseContribution * dot(lightVec, tnorm) + + specularContribution * spec; + + gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/get_active_uniform/brick.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/get_active_uniform/brick.frag new file mode 100644 index 0000000000..3d926c53ea --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/get_active_uniform/brick.frag @@ -0,0 +1,45 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif + +uniform vec3 brickColor; +uniform vec3 mortarColor; +uniform float brickMortarWidth; +uniform float brickMortarHeight; +uniform float mwf; +uniform float mhf; + +varying vec3 Position; +varying float lightIntensity; + +void main (void) +{ + vec3 ct; + float ss, tt, w, h; + + vec3 pos = Position; + + ss = pos.x / brickMortarWidth; + tt = pos.z / brickMortarHeight; + + if (fract (tt * 0.5) > 0.5) + ss += 0.5; + + ss = fract (ss); + tt = fract (tt); + + w = step (mwf, ss) - step (1.0 - mwf, ss); + h = step (mhf, tt) - step (1.0 - mhf, tt); + + ct = clamp(mix (mortarColor, brickColor, w * h) * lightIntensity, 0.0, 1.0); + + gl_FragColor = vec4 (ct, 1.0); +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/get_active_uniform/brick.vert b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/get_active_uniform/brick.vert new file mode 100644 index 0000000000..8629782a45 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/get_active_uniform/brick.vert @@ -0,0 +1,71 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +attribute vec3 gtf_Normal; +attribute vec4 gtf_Vertex; +varying float lightIntensity; +varying vec3 Position; + + // Used in the vertex shader. +uniform mat3 gtf_NormalMatrix; //< 1 +uniform mat4 gtf_ModelViewMatrix; //< 2 +uniform mat4 gtf_ModelViewProjectionMatrix; //< 3 +uniform float myAttrib1f; //< 4 +uniform vec2 myAttrib2f; //< 5 +uniform vec3 LightPosition; //< 6 +uniform vec4 myAttrib4f; //< 7 +uniform int myAttrib1i; //< 8 +uniform ivec2 myAttrib2i; //< 9 +uniform ivec3 myAttrib3i; //< 10 +uniform ivec4 myAttrib4i; //< 11 +uniform bool myAttrib1b; //< 12 +uniform bvec2 myAttrib2b; //< 13 +uniform bvec3 myAttrib3b; //< 14 +uniform bvec4 myAttrib4b; //< 15 +uniform mat2 myAttrib2m; //< 16 +uniform mat3 myAttrib3m; //< 17 +uniform mat4 myAttrib4m; //< 18 +uniform float myUniformfv[5]; //< 19 + // Used in the fragment shader. +uniform vec3 brickColor; //< 20 +uniform vec3 mortarColor; //< 21 +uniform float brickMortarWidth; //< 22 +uniform float brickMortarHeight; //< 23 +uniform float mwf; //< 24 +uniform float mhf; //< 25 + + +const float specularContribution = 0.7; +const float diffuseContribution = (1.0 - specularContribution); + +void main(void) { + vec4 pos = gtf_ModelViewMatrix * gtf_Vertex; + Position = vec3(gtf_Vertex); + vec3 tnorm = normalize(gtf_NormalMatrix * gtf_Normal); + vec3 lightVec = normalize(LightPosition - vec3(pos)); + vec3 reflectVec = reflect(lightVec, tnorm); + vec3 viewVec = normalize(vec3(pos)); + + float f = myAttrib1f + myAttrib2f[0] + myAttrib4f[0] + + float(myAttrib1i) + float(myAttrib2i[0]) + float(myAttrib3i[0]) + float(myAttrib4i[0]) + + float(myAttrib1b) + float(myAttrib2b[0]) + float(myAttrib3b[0]) + float(myAttrib4b[0]) + + myAttrib2m[0][0] + myAttrib3m[0][0] + myAttrib4m[0][0] + + myUniformfv[0] + myUniformfv[1] + myUniformfv[2] + myUniformfv[3] + myUniformfv[4]; + + //float spec = clamp(dot(reflectVec, viewVec), 0.0, 1.0); + float spec = clamp(dot(reflectVec, viewVec), f, 1.0); + spec = spec * spec; + spec = spec * spec; + spec = spec * spec; + spec = spec * spec; + + lightIntensity = diffuseContribution * dot(lightVec, tnorm) + + specularContribution * spec; + + gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/get_attribute_location/brick.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/get_attribute_location/brick.frag new file mode 100644 index 0000000000..3d830261ca --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/get_attribute_location/brick.frag @@ -0,0 +1,17 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +varying vec3 colors; + +void main (void) +{ + gl_FragColor = vec4 (colors, 1.0); +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/get_attribute_location/brick.vert b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/get_attribute_location/brick.vert new file mode 100644 index 0000000000..3b0c0ba6f5 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/get_attribute_location/brick.vert @@ -0,0 +1,22 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +attribute vec4 gtf_Vertex; +uniform mat4 gtf_ModelViewProjectionMatrix; +attribute float myAttribute1; +attribute float myAttribute2; +attribute float myAttribute3; + +varying vec3 colors; + +void main(void) +{ + colors = vec3(myAttribute1, 0, 0); + + gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/get_handle/successfulcompile_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/get_handle/successfulcompile_frag.frag new file mode 100644 index 0000000000..b251b07f03 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/get_handle/successfulcompile_frag.frag @@ -0,0 +1,46 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +uniform float mortarThickness; +uniform vec3 brickColor; +uniform vec3 mortarColor; + +uniform float brickMortarWidth; +uniform float brickMortarHeight; +uniform float mwf; +uniform float mhf; + +varying vec3 Position; +varying float lightIntensity; + +void main (void) +{ + vec3 ct; + float ss, tt, w, h; + + vec3 pos = Position; + + ss = pos.x / brickMortarWidth; + tt = pos.z / brickMortarHeight; + + if (fract (tt * 0.5) > 0.5) + ss += 0.5; + + ss = fract (ss); + tt = fract (tt); + + w = step (mwf, ss) - step (1.0 - mwf, ss); + h = step (mhf, tt) - step (1.0 - mhf, tt); + + ct = clamp(mix (mortarColor, brickColor, w * h) * lightIntensity, 0.0, 1.0); + + gl_FragColor = vec4 (ct, 1.0); +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/get_handle/successfulcompile_vert.vert b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/get_handle/successfulcompile_vert.vert new file mode 100644 index 0000000000..19faf8698b --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/get_handle/successfulcompile_vert.vert @@ -0,0 +1,26 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +attribute vec3 gtf_Normal; +attribute vec4 gtf_Vertex; +uniform mat3 gtf_NormalMatrix; +uniform mat4 gtf_ModelViewMatrix; +uniform mat4 gtf_ModelViewProjectionMatrix; + +varying float lightIntensity; +varying vec3 Position; +uniform vec3 LightPosition; +uniform float Scale; + +void main(void) { + vec4 pos = gtf_ModelViewMatrix * gtf_Vertex; + Position = vec3(gtf_Vertex) * Scale; + vec3 tnorm = normalize(gtf_NormalMatrix * gtf_Normal); + lightIntensity = dot(normalize(LightPosition - vec3(pos)), tnorm) * 1.5; + gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/get_uniform_location/brick.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/get_uniform_location/brick.frag new file mode 100644 index 0000000000..b251b07f03 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/get_uniform_location/brick.frag @@ -0,0 +1,46 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +uniform float mortarThickness; +uniform vec3 brickColor; +uniform vec3 mortarColor; + +uniform float brickMortarWidth; +uniform float brickMortarHeight; +uniform float mwf; +uniform float mhf; + +varying vec3 Position; +varying float lightIntensity; + +void main (void) +{ + vec3 ct; + float ss, tt, w, h; + + vec3 pos = Position; + + ss = pos.x / brickMortarWidth; + tt = pos.z / brickMortarHeight; + + if (fract (tt * 0.5) > 0.5) + ss += 0.5; + + ss = fract (ss); + tt = fract (tt); + + w = step (mwf, ss) - step (1.0 - mwf, ss); + h = step (mhf, tt) - step (1.0 - mhf, tt); + + ct = clamp(mix (mortarColor, brickColor, w * h) * lightIntensity, 0.0, 1.0); + + gl_FragColor = vec4 (ct, 1.0); +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/get_uniform_location/brick.vert b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/get_uniform_location/brick.vert new file mode 100644 index 0000000000..35b8ecbafc --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/get_uniform_location/brick.vert @@ -0,0 +1,43 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +attribute vec3 gtf_Normal; +attribute vec4 gtf_Vertex; +uniform mat3 gtf_NormalMatrix; +uniform mat4 gtf_ModelViewMatrix; +uniform mat4 gtf_ModelViewProjectionMatrix; +varying float lightIntensity; +varying vec3 Position; +uniform vec3 LightPosition; +uniform vec3 NotActiveOne; +attribute float myAttribute1; +attribute float myAttribute2; + +const float specularContribution = 0.7; +const float diffuseContribution = (1.0 - specularContribution); + +void main(void) { + vec4 pos = gtf_ModelViewMatrix * gtf_Vertex; + Position = vec3(gtf_Vertex); + vec3 tnorm = normalize(gtf_NormalMatrix * gtf_Normal); + vec3 lightVec = normalize(LightPosition - vec3(pos)); + vec3 reflectVec = reflect(lightVec, tnorm); + vec3 viewVec = normalize(vec3(pos)); + + //float spec = clamp(dot(reflectVec, viewVec), 0.0, 1.0); + float spec = clamp(dot(reflectVec, viewVec), myAttribute1, myAttribute2); + spec = spec * spec; + spec = spec * spec; + spec = spec * spec; + spec = spec * spec; + + lightIntensity = diffuseContribution * dot(lightVec, tnorm) + + specularContribution * spec; + + gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glGetProgramInfoLog_2.0/simple.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glGetProgramInfoLog_2.0/simple.frag new file mode 100644 index 0000000000..3ee1988465 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glGetProgramInfoLog_2.0/simple.frag @@ -0,0 +1,18 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +varying vec3 tc; + +void main (void) +{ + vec3 foo = tc; + gl_FragColor = vec4 (foo, 1.0); +}
\ No newline at end of file diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glGetProgramInfoLog_2.0/simple.vert b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glGetProgramInfoLog_2.0/simple.vert new file mode 100644 index 0000000000..03666713db --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glGetProgramInfoLog_2.0/simple.vert @@ -0,0 +1,18 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +attribute vec4 gtf_Vertex; +uniform mat4 gtf_ModelViewProjectionMatrix; +uniform vec3 triangleColor; +varying vec3 tc; + +void main(void) +{ + tc = triangleColor; + gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glGetProgramiv_2.0/brick.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glGetProgramiv_2.0/brick.frag new file mode 100644 index 0000000000..b251b07f03 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glGetProgramiv_2.0/brick.frag @@ -0,0 +1,46 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +uniform float mortarThickness; +uniform vec3 brickColor; +uniform vec3 mortarColor; + +uniform float brickMortarWidth; +uniform float brickMortarHeight; +uniform float mwf; +uniform float mhf; + +varying vec3 Position; +varying float lightIntensity; + +void main (void) +{ + vec3 ct; + float ss, tt, w, h; + + vec3 pos = Position; + + ss = pos.x / brickMortarWidth; + tt = pos.z / brickMortarHeight; + + if (fract (tt * 0.5) > 0.5) + ss += 0.5; + + ss = fract (ss); + tt = fract (tt); + + w = step (mwf, ss) - step (1.0 - mwf, ss); + h = step (mhf, tt) - step (1.0 - mhf, tt); + + ct = clamp(mix (mortarColor, brickColor, w * h) * lightIntensity, 0.0, 1.0); + + gl_FragColor = vec4 (ct, 1.0); +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glGetProgramiv_2.0/brick.vert b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glGetProgramiv_2.0/brick.vert new file mode 100644 index 0000000000..35b8ecbafc --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glGetProgramiv_2.0/brick.vert @@ -0,0 +1,43 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +attribute vec3 gtf_Normal; +attribute vec4 gtf_Vertex; +uniform mat3 gtf_NormalMatrix; +uniform mat4 gtf_ModelViewMatrix; +uniform mat4 gtf_ModelViewProjectionMatrix; +varying float lightIntensity; +varying vec3 Position; +uniform vec3 LightPosition; +uniform vec3 NotActiveOne; +attribute float myAttribute1; +attribute float myAttribute2; + +const float specularContribution = 0.7; +const float diffuseContribution = (1.0 - specularContribution); + +void main(void) { + vec4 pos = gtf_ModelViewMatrix * gtf_Vertex; + Position = vec3(gtf_Vertex); + vec3 tnorm = normalize(gtf_NormalMatrix * gtf_Normal); + vec3 lightVec = normalize(LightPosition - vec3(pos)); + vec3 reflectVec = reflect(lightVec, tnorm); + vec3 viewVec = normalize(vec3(pos)); + + //float spec = clamp(dot(reflectVec, viewVec), 0.0, 1.0); + float spec = clamp(dot(reflectVec, viewVec), myAttribute1, myAttribute2); + spec = spec * spec; + spec = spec * spec; + spec = spec * spec; + spec = spec * spec; + + lightIntensity = diffuseContribution * dot(lightVec, tnorm) + + specularContribution * spec; + + gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glGetShaderInfoLog_2.0/simple.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glGetShaderInfoLog_2.0/simple.frag new file mode 100644 index 0000000000..3ee1988465 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glGetShaderInfoLog_2.0/simple.frag @@ -0,0 +1,18 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +varying vec3 tc; + +void main (void) +{ + vec3 foo = tc; + gl_FragColor = vec4 (foo, 1.0); +}
\ No newline at end of file diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glGetShaderInfoLog_2.0/simple.vert b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glGetShaderInfoLog_2.0/simple.vert new file mode 100644 index 0000000000..03666713db --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glGetShaderInfoLog_2.0/simple.vert @@ -0,0 +1,18 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +attribute vec4 gtf_Vertex; +uniform mat4 gtf_ModelViewProjectionMatrix; +uniform vec3 triangleColor; +varying vec3 tc; + +void main(void) +{ + tc = triangleColor; + gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glGetUniform/bvec_tests.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glGetUniform/bvec_tests.frag new file mode 100644 index 0000000000..2c0fc9e2c6 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glGetUniform/bvec_tests.frag @@ -0,0 +1,24 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +uniform bool funi1; +uniform bvec2 funi2; +uniform bvec3 funi3; +uniform bvec4 funi4; +varying vec4 color; + +void main (void) +{ + vec4 temp = vec4(0.0, 0.0, 0.0, 0.0); + if(funi1 || funi2[0] && funi2[1] && funi3[0] && funi3[1] && funi3[2] || funi4[0] && funi4[1] && funi4[2] && funi4[3]) + temp = vec4(1.0, 0.0, 0.5, 1.0); + gl_FragColor = temp + color; +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glGetUniform/bvec_tests.vert b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glGetUniform/bvec_tests.vert new file mode 100644 index 0000000000..33bcf06a9b --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glGetUniform/bvec_tests.vert @@ -0,0 +1,22 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +attribute vec4 gtf_Vertex; +uniform mat4 gtf_ModelViewProjectionMatrix; +uniform bool vuni1; +uniform bvec2 vuni2; +uniform bvec3 vuni3; +uniform bvec4 vuni4; +varying vec4 color; + +void main (void) +{ + if(vuni1 || vuni2[0] && vuni2[1] && vuni3[0] && vuni3[1] && vuni3[2] || vuni4[0] && vuni4[1] && vuni4[2] && vuni4[3]) + color = vec4(1.0, 0.0, 0.5, 1.0); + gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glGetUniform/ivec_tests.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glGetUniform/ivec_tests.frag new file mode 100644 index 0000000000..4d0cabe58d --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glGetUniform/ivec_tests.frag @@ -0,0 +1,22 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +uniform int funi1; +uniform ivec2 funi2; +uniform ivec3 funi3; +uniform ivec4 funi4; +varying vec4 color; + +void main (void) +{ + vec4 temp = vec4(float(funi1), float(funi2[0] + funi2[1]), float(funi3[0] + funi3[1] + funi3[2]), float(funi4[0] + funi4[1] + funi4[2] + funi4[3])); + gl_FragColor = temp + color; +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glGetUniform/ivec_tests.vert b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glGetUniform/ivec_tests.vert new file mode 100644 index 0000000000..ce7159c386 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glGetUniform/ivec_tests.vert @@ -0,0 +1,21 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +attribute vec4 gtf_Vertex; +uniform mat4 gtf_ModelViewProjectionMatrix; +uniform int vuni1; +uniform ivec2 vuni2; +uniform ivec3 vuni3; +uniform ivec4 vuni4; +varying vec4 color; + +void main (void) +{ + color = vec4(float(vuni1), float(vuni2[0] + vuni2[1]), float(vuni3[0] + vuni3[1] + vuni3[2]), float(vuni4[0] + vuni4[1] + vuni4[2] + vuni4[3]) ); + gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glGetUniform/mat_tests.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glGetUniform/mat_tests.frag new file mode 100644 index 0000000000..f963f96f36 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glGetUniform/mat_tests.frag @@ -0,0 +1,25 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +uniform mat2 funi2; +uniform mat3 funi3; +uniform mat4 funi4; +varying vec4 color; + +void main (void) +{ + vec4 temp = vec4( funi2[0][0] + funi2[0][1] + funi2[1][0] + funi2[1][1], + + funi3[0][0] + funi3[0][1] + funi3[0][2] + funi3[1][0] + funi3[1][1] + funi3[1][2] + funi3[2][0] + funi3[2][1] + funi3[2][2], + + funi4[0][0] + funi4[0][1] + funi4[0][2] + funi4[0][3] + funi4[1][0] + funi4[1][1] + funi4[1][2] + funi4[1][3] + funi4[2][0] + funi4[2][1] + funi4[2][2] + funi4[2][3] + funi4[3][0] + funi4[3][1] + funi4[3][2] + funi4[3][3], 1.0 ); + gl_FragColor = temp + color; +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glGetUniform/mat_tests.vert b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glGetUniform/mat_tests.vert new file mode 100644 index 0000000000..9479dc919b --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glGetUniform/mat_tests.vert @@ -0,0 +1,25 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +attribute vec4 gtf_Vertex; +uniform mat4 gtf_ModelViewProjectionMatrix; +uniform mat2 vuni2; +uniform mat3 vuni3; +uniform mat4 vuni4; +varying vec4 color; + +void main (void) +{ + color = vec4( vuni2[0][0] + vuni2[0][1] + vuni2[1][0] + vuni2[1][1], + + vuni3[0][0] + vuni3[0][1] + vuni3[0][2] + vuni3[1][0] + vuni3[1][1] + vuni3[1][2] + vuni3[2][0] + vuni3[2][1] + vuni3[2][2], + + vuni4[0][0] + vuni4[0][1] + vuni4[0][2] + vuni4[0][3] + vuni4[1][0] + vuni4[1][1] + vuni4[1][2] + vuni4[1][3] + vuni4[2][0] + vuni4[2][1] + vuni4[2][2] + vuni4[2][3] + vuni4[3][0] + vuni4[3][1] + vuni4[3][2] + vuni4[3][3], 1.0 ); + + gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glGetUniform/vec_tests.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glGetUniform/vec_tests.frag new file mode 100644 index 0000000000..18f3e349a4 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glGetUniform/vec_tests.frag @@ -0,0 +1,22 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +uniform float funi1; +uniform vec2 funi2; +uniform vec3 funi3; +uniform vec4 funi4; +varying vec4 color; + +void main (void) +{ + vec4 temp = vec4(funi1, funi2[0] + funi2[1], funi3[0] + funi3[1] + funi3[2], funi4[0] + funi4[1] + funi4[2] + funi4[3]); + gl_FragColor = temp + color; +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glGetUniform/vec_tests.vert b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glGetUniform/vec_tests.vert new file mode 100644 index 0000000000..25f96f4464 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glGetUniform/vec_tests.vert @@ -0,0 +1,21 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +attribute vec4 gtf_Vertex; +uniform mat4 gtf_ModelViewProjectionMatrix; +uniform float vuni1; +uniform vec2 vuni2; +uniform vec3 vuni3; +uniform vec4 vuni4; +varying vec4 color; + +void main (void) +{ + color = vec4(vuni1, vuni2[0] + vuni2[1], vuni3[0] + vuni3[1] + vuni3[2], vuni4[0] + vuni4[1] + vuni4[2] + vuni4[3]); + gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; +}
\ No newline at end of file diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glGetVertexAttrib/mat_tests.vert b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glGetVertexAttrib/mat_tests.vert new file mode 100644 index 0000000000..a9ba12e213 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glGetVertexAttrib/mat_tests.vert @@ -0,0 +1,24 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +attribute vec4 gtf_Vertex; +uniform mat4 gtf_ModelViewProjectionMatrix; +attribute mat3 att3; +attribute mat4 att4; +varying vec4 color; + +void main (void) +{ + color = vec4( 1.0, + + att3[0][0] + att3[0][1] + att3[0][2] + att3[1][0] + att3[1][1] + att3[1][2] + att3[2][0] + att3[2][1] + att3[2][2], + + att4[0][0] + att4[0][1] + att4[0][2] + att4[0][3] + att4[1][0] + att4[1][1] + att4[1][2] + att4[1][3] + att4[2][0] + att4[2][1] + att4[2][2] + att4[2][3] + att4[3][0] + att4[3][1] + att4[3][2] + att4[3][3], 1.0 ); + + gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glGetVertexAttrib/mat_tests2.vert b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glGetVertexAttrib/mat_tests2.vert new file mode 100644 index 0000000000..06bba63ae6 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glGetVertexAttrib/mat_tests2.vert @@ -0,0 +1,24 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +attribute vec4 gtf_Vertex; +uniform mat4 gtf_ModelViewProjectionMatrix; +attribute mat2 att2; +attribute mat3 att3; +varying vec4 color; + +void main (void) +{ + color = vec4( att2[0][0] + att2[0][1] + att2[1][0] + att2[1][1], + + att3[0][0] + att3[0][1] + att3[0][2] + att3[1][0] + att3[1][1] + att3[1][2] + att3[2][0] + att3[2][1] + att3[2][2], + + 1.0, 1.0 ); + + gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glGetVertexAttrib/vec_tests.vert b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glGetVertexAttrib/vec_tests.vert new file mode 100644 index 0000000000..3218e9a73f --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glGetVertexAttrib/vec_tests.vert @@ -0,0 +1,21 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +attribute vec4 gtf_Vertex; +uniform mat4 gtf_ModelViewProjectionMatrix; +attribute float att1; +attribute vec2 att2; +attribute vec3 att3; +attribute vec4 att4; +varying vec4 color; + +void main (void) +{ + color = vec4(att1, att2.x + att2.y, att3.x + att3.y + att3.z, att4.x + att4.y + att4.z + att4.w); + gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/1b_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/1b_frag.frag new file mode 100644 index 0000000000..b2813604c8 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/1b_frag.frag @@ -0,0 +1,17 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +uniform bool color; + +void main (void) +{ + gl_FragColor = vec4 (float(color), 0.0, 0.0, 1.0); +}
\ No newline at end of file diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/1b_vert.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/1b_vert.frag new file mode 100644 index 0000000000..fcd1d2e0d4 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/1b_vert.frag @@ -0,0 +1,17 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +varying float col; + +void main (void) +{ + gl_FragColor = vec4 (col, 0.0, 0.0, 1.0); +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/1b_vert.vert b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/1b_vert.vert new file mode 100644 index 0000000000..8fcd8c1bd2 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/1b_vert.vert @@ -0,0 +1,18 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +attribute vec4 gtf_Vertex; +uniform mat4 gtf_ModelViewProjectionMatrix; +attribute vec4 gtf_Color; +uniform bool color; +varying float col; +void main (void) +{ + col = float(color); + gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/1f_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/1f_frag.frag new file mode 100644 index 0000000000..8494f30c37 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/1f_frag.frag @@ -0,0 +1,17 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +uniform float color; + +void main (void) +{ + gl_FragColor = vec4 (color, 0.0, 0.0, 1.0); +}
\ No newline at end of file diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/1f_vert.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/1f_vert.frag new file mode 100644 index 0000000000..fdd9357a9d --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/1f_vert.frag @@ -0,0 +1,16 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +varying float col; +void main (void) +{ + gl_FragColor = vec4 (col, 0.0, 0.0, 1.0); +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/1f_vert.vert b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/1f_vert.vert new file mode 100644 index 0000000000..ece9ee5e84 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/1f_vert.vert @@ -0,0 +1,18 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +attribute vec4 gtf_Vertex; +uniform mat4 gtf_ModelViewProjectionMatrix; +attribute vec4 gtf_Color; +uniform float color; +varying float col; +void main (void) +{ + col = color; + gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/1i_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/1i_frag.frag new file mode 100644 index 0000000000..f733d43d48 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/1i_frag.frag @@ -0,0 +1,17 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +uniform int color; + +void main (void) +{ + gl_FragColor = vec4 (color, 0.0, 0.0, 1.0); +}
\ No newline at end of file diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/1i_vert.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/1i_vert.frag new file mode 100644 index 0000000000..fdd9357a9d --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/1i_vert.frag @@ -0,0 +1,16 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +varying float col; +void main (void) +{ + gl_FragColor = vec4 (col, 0.0, 0.0, 1.0); +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/1i_vert.vert b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/1i_vert.vert new file mode 100644 index 0000000000..5070175baf --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/1i_vert.vert @@ -0,0 +1,18 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +attribute vec4 gtf_Vertex; +uniform mat4 gtf_ModelViewProjectionMatrix; +attribute vec4 gtf_Color; +uniform int color; +varying float col; +void main (void) +{ + col = float(color); + gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/21f_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/21f_frag.frag new file mode 100644 index 0000000000..42a72c719e --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/21f_frag.frag @@ -0,0 +1,17 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +uniform float color[2]; + +void main (void) +{ + gl_FragColor = vec4 (color[0], color[1], 0.0, 1.0); +}
\ No newline at end of file diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/21i_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/21i_frag.frag new file mode 100644 index 0000000000..d222ed18cf --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/21i_frag.frag @@ -0,0 +1,19 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +uniform int color[2]; + +void main (void) +{ + float r = float(color[0]); + float g = float(color[1]); + gl_FragColor = vec4 (r/256.0, g/256.0, 0.0, 1.0); +}
\ No newline at end of file diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/22f_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/22f_frag.frag new file mode 100644 index 0000000000..b44a935cf4 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/22f_frag.frag @@ -0,0 +1,17 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +uniform vec2 color[2]; + +void main (void) +{ + gl_FragColor = vec4 (color[0][0], color[0][1], color[1][0], color[1][1]); +}
\ No newline at end of file diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/22i_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/22i_frag.frag new file mode 100644 index 0000000000..f2b0ae1b3e --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/22i_frag.frag @@ -0,0 +1,22 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +uniform ivec2 color[2]; + +void main (void) +{ + float r = float(color[0][0]); + float g = float(color[0][1]); + float b = float(color[1][0]); + float a = float(color[1][1]); + + gl_FragColor = vec4 (r/256.0, g/256.0, b/256.0, a/256.0); +}
\ No newline at end of file diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/23f_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/23f_frag.frag new file mode 100644 index 0000000000..c89502f293 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/23f_frag.frag @@ -0,0 +1,19 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +uniform vec3 color[2]; + +void main (void) +{ + gl_FragColor = vec4 (color[0][0] + color[0][1] + color[0][2], + color[1][0] + color[1][1] + color[1][2], + 0.0, 1.0); +}
\ No newline at end of file diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/23i_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/23i_frag.frag new file mode 100644 index 0000000000..b2fb09f2c8 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/23i_frag.frag @@ -0,0 +1,20 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +uniform ivec3 color[2]; + +void main (void) +{ + float r = float(color[0][0] + color[0][1] + color[0][2]); + float g = float(color[1][0] + color[1][1] + color[1][2]); + + gl_FragColor = vec4(r/256.0, g/256.0, 0.0, 1.0); +}
\ No newline at end of file diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/24f_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/24f_frag.frag new file mode 100644 index 0000000000..787ecba389 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/24f_frag.frag @@ -0,0 +1,19 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +uniform vec4 color[2]; + +void main (void) +{ + gl_FragColor = vec4 (color[0][0] + color[0][1] + color[0][2] + color[0][3], + color[1][0] + color[1][1] + color[1][2] + color[1][3], + 0.0, 1.0); +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/24i_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/24i_frag.frag new file mode 100644 index 0000000000..aef4a8489c --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/24i_frag.frag @@ -0,0 +1,20 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +uniform ivec4 color[2]; + +void main (void) +{ + float r = float(color[0][0] + color[0][1] + color[0][2] + color[0][3]); + float g = float(color[1][0] + color[1][1] + color[1][2] + color[1][3]); + + gl_FragColor = vec4 (r/256.0, g/256.0, 0.0, 1.0); +}
\ No newline at end of file diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/2b_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/2b_frag.frag new file mode 100644 index 0000000000..7b6eb3f2b1 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/2b_frag.frag @@ -0,0 +1,17 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +uniform bvec2 color; + +void main (void) +{ + gl_FragColor = vec4 (vec2(color), 0.0, 1.0); +}
\ No newline at end of file diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/2b_vert.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/2b_vert.frag new file mode 100644 index 0000000000..83bf3e6539 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/2b_vert.frag @@ -0,0 +1,17 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +varying vec2 col; + +void main (void) +{ + gl_FragColor = vec4 (col[0], col[1], 0.0, 1.0); +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/2b_vert.vert b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/2b_vert.vert new file mode 100644 index 0000000000..8285a0eb87 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/2b_vert.vert @@ -0,0 +1,18 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +attribute vec4 gtf_Vertex; +uniform mat4 gtf_ModelViewProjectionMatrix; +attribute vec4 gtf_Color; +uniform bvec2 color; +varying vec2 col; +void main (void) +{ + col = vec2(color); + gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/2f_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/2f_frag.frag new file mode 100644 index 0000000000..2039a887a2 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/2f_frag.frag @@ -0,0 +1,17 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +uniform vec2 color; + +void main (void) +{ + gl_FragColor = vec4 (color, 0.0, 1.0); +}
\ No newline at end of file diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/2f_vert.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/2f_vert.frag new file mode 100644 index 0000000000..44dac79c82 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/2f_vert.frag @@ -0,0 +1,17 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +varying vec2 col; + +void main (void) +{ + gl_FragColor = vec4 (col, 0.0, 1.0); +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/2f_vert.vert b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/2f_vert.vert new file mode 100644 index 0000000000..159d66c795 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/2f_vert.vert @@ -0,0 +1,18 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +attribute vec4 gtf_Vertex; +uniform mat4 gtf_ModelViewProjectionMatrix; +attribute vec4 gtf_Color; +uniform vec2 color; +varying vec2 col; +void main (void) +{ + col = color; + gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/2i_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/2i_frag.frag new file mode 100644 index 0000000000..4494014822 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/2i_frag.frag @@ -0,0 +1,17 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +uniform ivec2 color; + +void main (void) +{ + gl_FragColor = vec4 (color[0], color[1], 0.0, 1.0); +}
\ No newline at end of file diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/2i_vert.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/2i_vert.frag new file mode 100644 index 0000000000..44dac79c82 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/2i_vert.frag @@ -0,0 +1,17 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +varying vec2 col; + +void main (void) +{ + gl_FragColor = vec4 (col, 0.0, 1.0); +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/2i_vert.vert b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/2i_vert.vert new file mode 100644 index 0000000000..fd14f20c5a --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/2i_vert.vert @@ -0,0 +1,18 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +attribute vec4 gtf_Vertex; +uniform mat4 gtf_ModelViewProjectionMatrix; +attribute vec4 gtf_Color; +uniform ivec2 color; +varying vec2 col; +void main (void) +{ + col = vec2(color); + gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/2m_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/2m_frag.frag new file mode 100644 index 0000000000..fe562e63d0 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/2m_frag.frag @@ -0,0 +1,17 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +uniform mat2 color; + +void main (void) +{ + gl_FragColor = vec4 (color[0][0] + color[0][1], color[1][0] + color[1][1], 0.0, 1.0); +}
\ No newline at end of file diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/3b_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/3b_frag.frag new file mode 100644 index 0000000000..bd97506459 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/3b_frag.frag @@ -0,0 +1,17 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +uniform bvec3 color; + +void main (void) +{ + gl_FragColor = vec4 (vec3(color), 1.0); +}
\ No newline at end of file diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/3b_vert.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/3b_vert.frag new file mode 100644 index 0000000000..c17b9a1480 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/3b_vert.frag @@ -0,0 +1,17 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +varying vec3 col; + +void main (void) +{ + gl_FragColor = vec4 (col[0], col[1], col[2], 1.0); +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/3b_vert.vert b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/3b_vert.vert new file mode 100644 index 0000000000..b9b8fd4893 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/3b_vert.vert @@ -0,0 +1,18 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +attribute vec4 gtf_Vertex; +uniform mat4 gtf_ModelViewProjectionMatrix; +attribute vec4 gtf_Color; +uniform bvec3 color; +varying vec3 col; +void main (void) +{ + col = vec3(color); + gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/3f_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/3f_frag.frag new file mode 100644 index 0000000000..f0fa6853c7 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/3f_frag.frag @@ -0,0 +1,17 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +uniform vec3 color; + +void main (void) +{ + gl_FragColor = vec4 (color, 1.0); +}
\ No newline at end of file diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/3f_vert.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/3f_vert.frag new file mode 100644 index 0000000000..2e98a8660c --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/3f_vert.frag @@ -0,0 +1,17 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +varying vec3 col; + +void main (void) +{ + gl_FragColor = vec4 (col, 1.0); +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/3f_vert.vert b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/3f_vert.vert new file mode 100644 index 0000000000..c5562f04b2 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/3f_vert.vert @@ -0,0 +1,18 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +attribute vec4 gtf_Vertex; +uniform mat4 gtf_ModelViewProjectionMatrix; +attribute vec4 gtf_Color; +uniform vec3 color; +varying vec3 col; +void main (void) +{ + col = color; + gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/3i_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/3i_frag.frag new file mode 100644 index 0000000000..e17402b6da --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/3i_frag.frag @@ -0,0 +1,17 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +uniform ivec3 color; + +void main (void) +{ + gl_FragColor = vec4 (color[0], color[1], color[2], 1.0); +}
\ No newline at end of file diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/3i_vert.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/3i_vert.frag new file mode 100644 index 0000000000..2e98a8660c --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/3i_vert.frag @@ -0,0 +1,17 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +varying vec3 col; + +void main (void) +{ + gl_FragColor = vec4 (col, 1.0); +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/3i_vert.vert b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/3i_vert.vert new file mode 100644 index 0000000000..7b2aa4bb25 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/3i_vert.vert @@ -0,0 +1,18 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +attribute vec4 gtf_Vertex; +uniform mat4 gtf_ModelViewProjectionMatrix; +attribute vec4 gtf_Color; +uniform ivec3 color; +varying vec3 col; +void main (void) +{ + col = vec3(color); + gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/3m_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/3m_frag.frag new file mode 100644 index 0000000000..bcc8f4a5a8 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/3m_frag.frag @@ -0,0 +1,20 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +uniform mat3 color; + +void main (void) +{ + gl_FragColor = vec4 (color[0][0] + color[0][1] + color[0][2], + color[1][0] + color[1][1] + color[1][2], + color[2][0] + color[2][1] + color[2][2], + 1.0); +}
\ No newline at end of file diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/4b_firstthree_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/4b_firstthree_frag.frag new file mode 100644 index 0000000000..de9abd75bf --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/4b_firstthree_frag.frag @@ -0,0 +1,17 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +uniform bvec4 color; + +void main (void) +{ + gl_FragColor = vec4 (float(color[0]), float(color[1]), float(color[2]), 1.0); +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/4b_firstthree_vert.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/4b_firstthree_vert.frag new file mode 100644 index 0000000000..c6c01468a7 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/4b_firstthree_vert.frag @@ -0,0 +1,17 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +varying vec4 col; + +void main (void) +{ + gl_FragColor = vec4 (col[0], col[1], col[2], 1.0); +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/4b_lastthree_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/4b_lastthree_frag.frag new file mode 100644 index 0000000000..8d84731315 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/4b_lastthree_frag.frag @@ -0,0 +1,17 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +uniform bvec4 color; + +void main (void) +{ + gl_FragColor = vec4 (float(color[1]), float(color[2]), float(color[3]), 1.0); +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/4b_lastthree_vert.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/4b_lastthree_vert.frag new file mode 100644 index 0000000000..869d183e06 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/4b_lastthree_vert.frag @@ -0,0 +1,17 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +varying vec4 col; + +void main (void) +{ + gl_FragColor = vec4 (col[1], col[2], col[3], 1.0); +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/4b_vert.vert b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/4b_vert.vert new file mode 100644 index 0000000000..c09ce89491 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/4b_vert.vert @@ -0,0 +1,18 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +attribute vec4 gtf_Vertex; +uniform mat4 gtf_ModelViewProjectionMatrix; +attribute vec4 gtf_Color; +uniform bvec4 color; +varying vec4 col; +void main (void) +{ + col = vec4(color); + gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/4f_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/4f_frag.frag new file mode 100644 index 0000000000..7b071c0347 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/4f_frag.frag @@ -0,0 +1,17 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +uniform vec4 color; + +void main (void) +{ + gl_FragColor = vec4 (color[0], color[1], color[2], color[3]); +}
\ No newline at end of file diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/4f_vert.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/4f_vert.frag new file mode 100644 index 0000000000..96b06e0786 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/4f_vert.frag @@ -0,0 +1,17 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +varying vec4 col; + +void main (void) +{ + gl_FragColor = vec4 (col[0], col[1], col[2], col[3]); +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/4f_vert.vert b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/4f_vert.vert new file mode 100644 index 0000000000..71d88d9610 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/4f_vert.vert @@ -0,0 +1,18 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +attribute vec4 gtf_Vertex; +uniform mat4 gtf_ModelViewProjectionMatrix; +attribute vec4 gtf_Color; +uniform vec4 color; +varying vec4 col; +void main (void) +{ + col = color; + gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/4i_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/4i_frag.frag new file mode 100644 index 0000000000..55d9053c52 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/4i_frag.frag @@ -0,0 +1,17 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +uniform ivec4 color; + +void main (void) +{ + gl_FragColor = vec4 (color[0], color[1], color[2], color[3]); +}
\ No newline at end of file diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/4i_vert.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/4i_vert.frag new file mode 100644 index 0000000000..96b06e0786 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/4i_vert.frag @@ -0,0 +1,17 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +varying vec4 col; + +void main (void) +{ + gl_FragColor = vec4 (col[0], col[1], col[2], col[3]); +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/4i_vert.vert b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/4i_vert.vert new file mode 100644 index 0000000000..42cdfaa4e3 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/4i_vert.vert @@ -0,0 +1,18 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +attribute vec4 gtf_Vertex; +uniform mat4 gtf_ModelViewProjectionMatrix; +attribute vec4 gtf_Color; +uniform ivec4 color; +varying vec4 col; +void main (void) +{ + col = vec4(color); + gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/4m_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/4m_frag.frag new file mode 100644 index 0000000000..d0600049bc --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/4m_frag.frag @@ -0,0 +1,20 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +uniform mat4 color; + +void main (void) +{ + gl_FragColor = vec4 (color[0][0] + color[0][1] + color[0][2] + color[0][3], + color[1][0] + color[1][1] + color[1][2] + color[1][3], + color[2][0] + color[2][1] + color[2][2] + color[2][3], + color[3][0] + color[3][1] + color[3][2] + color[3][3]); +}
\ No newline at end of file diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/default.vert b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/default.vert new file mode 100644 index 0000000000..b62c57df92 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/default.vert @@ -0,0 +1,16 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +attribute vec4 gtf_Vertex; +uniform mat4 gtf_ModelViewProjectionMatrix; + +void main (void) +{ + gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; + gl_PointSize = 1.0; +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/matrix2VSU.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/matrix2VSU.frag new file mode 100644 index 0000000000..e08688b5a8 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/matrix2VSU.frag @@ -0,0 +1,17 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +varying vec4 color; + +void main (void) +{ + gl_FragColor = color; // Apply it on a per vertex level +}
\ No newline at end of file diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/matrix2VSU.vert b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/matrix2VSU.vert new file mode 100644 index 0000000000..b2edd70556 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/matrix2VSU.vert @@ -0,0 +1,22 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +attribute vec4 gtf_Vertex; +attribute vec4 gtf_Color; +uniform mat4 gtf_ModelViewProjectionMatrix; +uniform mat4 transforms; +uniform mat4 anotherMatrix; + +varying vec4 color; + +void main(void) +{ + color = gtf_Color; // color is per vertex and matches glColor already used by Vertex + + gl_Position = gtf_ModelViewProjectionMatrix* transforms * anotherMatrix * gtf_Vertex; +}
\ No newline at end of file diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/matrix2arrayVSU.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/matrix2arrayVSU.frag new file mode 100644 index 0000000000..e08688b5a8 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/matrix2arrayVSU.frag @@ -0,0 +1,17 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +varying vec4 color; + +void main (void) +{ + gl_FragColor = color; // Apply it on a per vertex level +}
\ No newline at end of file diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/matrix2arrayVSU.vert b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/matrix2arrayVSU.vert new file mode 100644 index 0000000000..59e6497387 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/matrix2arrayVSU.vert @@ -0,0 +1,21 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +attribute vec4 gtf_Vertex; +attribute vec4 gtf_Color; +uniform mat4 gtf_ModelViewProjectionMatrix; +uniform mat4 transforms[2]; + +varying vec4 color; + +void main(void) +{ + color = gtf_Color; // color is per vertex and matches glColor already used by Vertex + + gl_Position = gtf_ModelViewProjectionMatrix* transforms[0] * transforms[1] * gtf_Vertex; +}
\ No newline at end of file diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/matrixVSU.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/matrixVSU.frag new file mode 100644 index 0000000000..e08688b5a8 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/matrixVSU.frag @@ -0,0 +1,17 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +varying vec4 color; + +void main (void) +{ + gl_FragColor = color; // Apply it on a per vertex level +}
\ No newline at end of file diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/matrixVSU.vert b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/matrixVSU.vert new file mode 100644 index 0000000000..4643a15bec --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glUniform/matrixVSU.vert @@ -0,0 +1,21 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +attribute vec4 gtf_Vertex; +attribute vec4 gtf_Color; +uniform mat4 gtf_ModelViewProjectionMatrix; +uniform mat4 transforms; +varying vec4 color; + +void main(void) +{ + color = gtf_Color; // color is per vertex and matches glColor used + + gl_Position = gtf_ModelViewProjectionMatrix* transforms * gtf_Vertex; + +}
\ No newline at end of file diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/link_program/successfulcompile_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/link_program/successfulcompile_frag.frag new file mode 100644 index 0000000000..b251b07f03 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/link_program/successfulcompile_frag.frag @@ -0,0 +1,46 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +uniform float mortarThickness; +uniform vec3 brickColor; +uniform vec3 mortarColor; + +uniform float brickMortarWidth; +uniform float brickMortarHeight; +uniform float mwf; +uniform float mhf; + +varying vec3 Position; +varying float lightIntensity; + +void main (void) +{ + vec3 ct; + float ss, tt, w, h; + + vec3 pos = Position; + + ss = pos.x / brickMortarWidth; + tt = pos.z / brickMortarHeight; + + if (fract (tt * 0.5) > 0.5) + ss += 0.5; + + ss = fract (ss); + tt = fract (tt); + + w = step (mwf, ss) - step (1.0 - mwf, ss); + h = step (mhf, tt) - step (1.0 - mhf, tt); + + ct = clamp(mix (mortarColor, brickColor, w * h) * lightIntensity, 0.0, 1.0); + + gl_FragColor = vec4 (ct, 1.0); +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/link_program/successfulcompile_vert.vert b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/link_program/successfulcompile_vert.vert new file mode 100644 index 0000000000..19faf8698b --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/link_program/successfulcompile_vert.vert @@ -0,0 +1,26 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +attribute vec3 gtf_Normal; +attribute vec4 gtf_Vertex; +uniform mat3 gtf_NormalMatrix; +uniform mat4 gtf_ModelViewMatrix; +uniform mat4 gtf_ModelViewProjectionMatrix; + +varying float lightIntensity; +varying vec3 Position; +uniform vec3 LightPosition; +uniform float Scale; + +void main(void) { + vec4 pos = gtf_ModelViewMatrix * gtf_Vertex; + Position = vec3(gtf_Vertex) * Scale; + vec3 tnorm = normalize(gtf_NormalMatrix * gtf_Normal); + lightIntensity = dot(normalize(LightPosition - vec3(pos)), tnorm) * 1.5; + gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/link_program/unsuccessfulcompile_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/link_program/unsuccessfulcompile_frag.frag new file mode 100644 index 0000000000..4f3fe797b2 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/link_program/unsuccessfulcompile_frag.frag @@ -0,0 +1,66 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +uniform float GrainSize; +uniform vec3 DarkColor; +uniform vec3 colorSpread; + +varying float lightIntensity; +varying vec3 Position; + +void main (void) +{ + // + // cheap noise + // + vec3 location = Position; + + vec3 floorvec = vec3(floor(Position.x * 10.0), 0.0, floor(Position.z * 10.0)); + vec3 noise = Position * 10.0 - floorvec - 0.5; + noise *= noise; + location += noise * 0.12; + + // + // distance from axis + // + float dist = location.x * location.x + location.z * location.z; + float grain = dist / GrainSize; + + // + // grain effects as function of distance + // + float brightness = fract(grain); + if (brightness > 0.5) + brightness = (1.0 - brightness); + vec3 color = DarkColor + 0.5 * brightness * (colorSpread); + + brightness = fract(grain*7.0); + if (brightness > 0.5) + brightness = 1.0 - brightness; + color -= 0.5 * brightness * colorSpread; + + // + // also as a function of lines parallel to the axis + // + brightness = fract(grain*47.0); + float line = fract(Position.z + Position.x); + float snap = floor(line * 30.0) * (1.0/30.0); + if (line < snap + 0.004) + color -= 0.5 * brightness * colorSpread; + + // + // apply lighting effects from vertex processor + // + color *= lightIntensity; + color = clamp(color, 0.0, 1.0); + + gl_FragColor = vec4(color, 0.1) +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/link_program/unsuccessfulcompile_vert.vert b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/link_program/unsuccessfulcompile_vert.vert new file mode 100644 index 0000000000..b04c21efe3 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/link_program/unsuccessfulcompile_vert.vert @@ -0,0 +1,43 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +attribute vec3 gtf_Normal; +attribute vec4 gtf_Vertex; +uniform mat3 gtf_NormalMatrix; +uniform mat4 gtf_ModelViewMatrix; +uniform mat4 gtf_ModelViewProjectionMatrix; +varying float lightIntensity; +varying vec3 Position; +uniform vec3 LightPosition; +uniform vec3 NotActiveOne; +attribute float myAttribute1; +attribute float myAttribute2; + +const float specularContribution = 0.7; +const float diffuseContribution = (1.0 - specularContribution); + +void main(void) { + vec4 pos = gtf_ModelViewMatrix * gtf_Vertex_Color; + Position = vec3(gtf_Vertex); + vec3 tnorm = normalize(gtf_NormalMatrix * gtf_Normal); + vec3 lightVec = normalize(LightPosition - vec3(pos)); + vec3 reflectVec = reflect(lightVec, tnorm); + vec3 viewVec = normalize(vec3(pos)); + + //float spec = clamp(dot(reflectVec, viewVec), 0.0, 1.0); + float spec = clamp(dot(reflectVec, viewVec), myAttribute1, myAttribute2); + spec = spec * spec; + spec = spec * spec; + spec = spec * spec; + spec = spec * spec; + + lightIntensity = diffuseContribution * dot(lightVec, tnorm) + + specularContribution * spec; + + gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/precision_specifiers/precision_specifiers.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/precision_specifiers/precision_specifiers.frag new file mode 100644 index 0000000000..01fae5b25f --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/precision_specifiers/precision_specifiers.frag @@ -0,0 +1,14 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +varying mediump vec4 color; + +void main (void) +{ + gl_FragColor = color; +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/precision_specifiers/precision_specifiers.vert b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/precision_specifiers/precision_specifiers.vert new file mode 100644 index 0000000000..bc68fc3881 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/precision_specifiers/precision_specifiers.vert @@ -0,0 +1,25 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +attribute highp vec4 gtf_Color; +attribute highp vec4 gtf_Vertex; +uniform highp mat4 gtf_ModelViewProjectionMatrix; +varying highp vec4 color; + +void main (void) +{ + mediump int x = 5; + lowp int y = 3; + mediump float x2 = 5.0; + lowp float y2 = 1.0; + + color = vec4(x + y, x2 * y2, x, 1.0); + + color = gtf_Color; + gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/relink_program/simple.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/relink_program/simple.frag new file mode 100644 index 0000000000..863acf1776 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/relink_program/simple.frag @@ -0,0 +1,17 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +varying vec4 tc; + +void main (void) +{ + gl_FragColor = tc; +}
\ No newline at end of file diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/relink_program/simple.vert b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/relink_program/simple.vert new file mode 100644 index 0000000000..453cfeb4dd --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/relink_program/simple.vert @@ -0,0 +1,20 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +attribute vec4 gtf_Vertex; +uniform mat4 gtf_ModelViewProjectionMatrix; +attribute float gtf_Color; + +varying vec4 tc; + +void main (void) +{ + tc = vec4(gtf_Color, 0.0, 0.0, 1.0); + + gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; +}
\ No newline at end of file diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/shader_source/successfulcompile_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/shader_source/successfulcompile_frag.frag new file mode 100644 index 0000000000..b251b07f03 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/shader_source/successfulcompile_frag.frag @@ -0,0 +1,46 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +uniform float mortarThickness; +uniform vec3 brickColor; +uniform vec3 mortarColor; + +uniform float brickMortarWidth; +uniform float brickMortarHeight; +uniform float mwf; +uniform float mhf; + +varying vec3 Position; +varying float lightIntensity; + +void main (void) +{ + vec3 ct; + float ss, tt, w, h; + + vec3 pos = Position; + + ss = pos.x / brickMortarWidth; + tt = pos.z / brickMortarHeight; + + if (fract (tt * 0.5) > 0.5) + ss += 0.5; + + ss = fract (ss); + tt = fract (tt); + + w = step (mwf, ss) - step (1.0 - mwf, ss); + h = step (mhf, tt) - step (1.0 - mhf, tt); + + ct = clamp(mix (mortarColor, brickColor, w * h) * lightIntensity, 0.0, 1.0); + + gl_FragColor = vec4 (ct, 1.0); +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/shader_source/successfulcompile_vert.vert b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/shader_source/successfulcompile_vert.vert new file mode 100644 index 0000000000..19faf8698b --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/shader_source/successfulcompile_vert.vert @@ -0,0 +1,26 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +attribute vec3 gtf_Normal; +attribute vec4 gtf_Vertex; +uniform mat3 gtf_NormalMatrix; +uniform mat4 gtf_ModelViewMatrix; +uniform mat4 gtf_ModelViewProjectionMatrix; + +varying float lightIntensity; +varying vec3 Position; +uniform vec3 LightPosition; +uniform float Scale; + +void main(void) { + vec4 pos = gtf_ModelViewMatrix * gtf_Vertex; + Position = vec3(gtf_Vertex) * Scale; + vec3 tnorm = normalize(gtf_NormalMatrix * gtf_Normal); + lightIntensity = dot(normalize(LightPosition - vec3(pos)), tnorm) * 1.5; + gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/shader_source/unsuccessfulcompile_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/shader_source/unsuccessfulcompile_frag.frag new file mode 100644 index 0000000000..4f3fe797b2 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/shader_source/unsuccessfulcompile_frag.frag @@ -0,0 +1,66 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +uniform float GrainSize; +uniform vec3 DarkColor; +uniform vec3 colorSpread; + +varying float lightIntensity; +varying vec3 Position; + +void main (void) +{ + // + // cheap noise + // + vec3 location = Position; + + vec3 floorvec = vec3(floor(Position.x * 10.0), 0.0, floor(Position.z * 10.0)); + vec3 noise = Position * 10.0 - floorvec - 0.5; + noise *= noise; + location += noise * 0.12; + + // + // distance from axis + // + float dist = location.x * location.x + location.z * location.z; + float grain = dist / GrainSize; + + // + // grain effects as function of distance + // + float brightness = fract(grain); + if (brightness > 0.5) + brightness = (1.0 - brightness); + vec3 color = DarkColor + 0.5 * brightness * (colorSpread); + + brightness = fract(grain*7.0); + if (brightness > 0.5) + brightness = 1.0 - brightness; + color -= 0.5 * brightness * colorSpread; + + // + // also as a function of lines parallel to the axis + // + brightness = fract(grain*47.0); + float line = fract(Position.z + Position.x); + float snap = floor(line * 30.0) * (1.0/30.0); + if (line < snap + 0.004) + color -= 0.5 * brightness * colorSpread; + + // + // apply lighting effects from vertex processor + // + color *= lightIntensity; + color = clamp(color, 0.0, 1.0); + + gl_FragColor = vec4(color, 0.1) +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/shader_source/unsuccessfulcompile_vert.vert b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/shader_source/unsuccessfulcompile_vert.vert new file mode 100644 index 0000000000..514042bd8f --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/shader_source/unsuccessfulcompile_vert.vert @@ -0,0 +1,44 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +attribute vec3 gtf_Normal; +attribute vec4 gtf_Vertex; +attribute vec4 gtf_Vertex_Color; +uniform mat3 gtf_NormalMatrix; +uniform mat4 gtf_ModelViewMatrix; +uniform mat4 gtf_ModelViewProjectionMatrix; +varying float lightIntensity; +varying vec3 Position; +uniform vec3 LightPosition; +uniform vec3 NotActiveOne; +attribute float myAttribute1; +attribute float myAttribute2; + +const float specularContribution = 0.7; +const float diffuseContribution = (1.0 - specularContribution); + +void main(void) { + vec4 pos = gtf_ModelViewMatrix * gtf_Vertex_Color; + Position = vec3(gtf_Vertex); + vec3 tnorm = normalize(gtf_NormalMatrix * gtf_Normal); + vec3 lightVec = normalize(LightPosition - vec3(pos); + vec3 reflectVec = reflect(lightVec, tnorm); + vec3 viewVec = normalize(vec3(pos)); + + //float spec = clamp(dot(reflectVec, viewVec), 0.0, 1.0); + float spec = clamp(dot(reflectVec, viewVec), myAttribute1, myAttribute2); + spec = spec * spec; + spec = spec * spec; + spec = spec * spec; + spec = spec * spec; + + lightIntensity = diffuseContribution * dot(lightVec, tnorm) + + specularContribution * spec; + + gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/three_uniforms/4f_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/three_uniforms/4f_frag.frag new file mode 100644 index 0000000000..a0493e9158 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/three_uniforms/4f_frag.frag @@ -0,0 +1,22 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +uniform vec4 color; +uniform ivec4 icolor; +uniform bool flag; + +void main (void) +{ + if(flag) + gl_FragColor = vec4 (icolor[0], icolor[1], icolor[2], icolor[3]); + else + gl_FragColor = vec4 (color[0], color[1], color[2], color[3]); +}
\ No newline at end of file diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/use_program/successfulcompile_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/use_program/successfulcompile_frag.frag new file mode 100644 index 0000000000..b251b07f03 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/use_program/successfulcompile_frag.frag @@ -0,0 +1,46 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +uniform float mortarThickness; +uniform vec3 brickColor; +uniform vec3 mortarColor; + +uniform float brickMortarWidth; +uniform float brickMortarHeight; +uniform float mwf; +uniform float mhf; + +varying vec3 Position; +varying float lightIntensity; + +void main (void) +{ + vec3 ct; + float ss, tt, w, h; + + vec3 pos = Position; + + ss = pos.x / brickMortarWidth; + tt = pos.z / brickMortarHeight; + + if (fract (tt * 0.5) > 0.5) + ss += 0.5; + + ss = fract (ss); + tt = fract (tt); + + w = step (mwf, ss) - step (1.0 - mwf, ss); + h = step (mhf, tt) - step (1.0 - mhf, tt); + + ct = clamp(mix (mortarColor, brickColor, w * h) * lightIntensity, 0.0, 1.0); + + gl_FragColor = vec4 (ct, 1.0); +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/use_program/successfulcompile_vert.vert b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/use_program/successfulcompile_vert.vert new file mode 100644 index 0000000000..19faf8698b --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/use_program/successfulcompile_vert.vert @@ -0,0 +1,26 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +attribute vec3 gtf_Normal; +attribute vec4 gtf_Vertex; +uniform mat3 gtf_NormalMatrix; +uniform mat4 gtf_ModelViewMatrix; +uniform mat4 gtf_ModelViewProjectionMatrix; + +varying float lightIntensity; +varying vec3 Position; +uniform vec3 LightPosition; +uniform float Scale; + +void main(void) { + vec4 pos = gtf_ModelViewMatrix * gtf_Vertex; + Position = vec3(gtf_Vertex) * Scale; + vec3 tnorm = normalize(gtf_NormalMatrix * gtf_Normal); + lightIntensity = dot(normalize(LightPosition - vec3(pos)), tnorm) * 1.5; + gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/use_program/unsuccessfulcompile_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/use_program/unsuccessfulcompile_frag.frag new file mode 100644 index 0000000000..4f3fe797b2 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/use_program/unsuccessfulcompile_frag.frag @@ -0,0 +1,66 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +uniform float GrainSize; +uniform vec3 DarkColor; +uniform vec3 colorSpread; + +varying float lightIntensity; +varying vec3 Position; + +void main (void) +{ + // + // cheap noise + // + vec3 location = Position; + + vec3 floorvec = vec3(floor(Position.x * 10.0), 0.0, floor(Position.z * 10.0)); + vec3 noise = Position * 10.0 - floorvec - 0.5; + noise *= noise; + location += noise * 0.12; + + // + // distance from axis + // + float dist = location.x * location.x + location.z * location.z; + float grain = dist / GrainSize; + + // + // grain effects as function of distance + // + float brightness = fract(grain); + if (brightness > 0.5) + brightness = (1.0 - brightness); + vec3 color = DarkColor + 0.5 * brightness * (colorSpread); + + brightness = fract(grain*7.0); + if (brightness > 0.5) + brightness = 1.0 - brightness; + color -= 0.5 * brightness * colorSpread; + + // + // also as a function of lines parallel to the axis + // + brightness = fract(grain*47.0); + float line = fract(Position.z + Position.x); + float snap = floor(line * 30.0) * (1.0/30.0); + if (line < snap + 0.004) + color -= 0.5 * brightness * colorSpread; + + // + // apply lighting effects from vertex processor + // + color *= lightIntensity; + color = clamp(color, 0.0, 1.0); + + gl_FragColor = vec4(color, 0.1) +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/use_program/unsuccessfulcompile_vert.vert b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/use_program/unsuccessfulcompile_vert.vert new file mode 100644 index 0000000000..b04c21efe3 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/use_program/unsuccessfulcompile_vert.vert @@ -0,0 +1,43 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +attribute vec3 gtf_Normal; +attribute vec4 gtf_Vertex; +uniform mat3 gtf_NormalMatrix; +uniform mat4 gtf_ModelViewMatrix; +uniform mat4 gtf_ModelViewProjectionMatrix; +varying float lightIntensity; +varying vec3 Position; +uniform vec3 LightPosition; +uniform vec3 NotActiveOne; +attribute float myAttribute1; +attribute float myAttribute2; + +const float specularContribution = 0.7; +const float diffuseContribution = (1.0 - specularContribution); + +void main(void) { + vec4 pos = gtf_ModelViewMatrix * gtf_Vertex_Color; + Position = vec3(gtf_Vertex); + vec3 tnorm = normalize(gtf_NormalMatrix * gtf_Normal); + vec3 lightVec = normalize(LightPosition - vec3(pos)); + vec3 reflectVec = reflect(lightVec, tnorm); + vec3 viewVec = normalize(vec3(pos)); + + //float spec = clamp(dot(reflectVec, viewVec), 0.0, 1.0); + float spec = clamp(dot(reflectVec, viewVec), myAttribute1, myAttribute2); + spec = spec * spec; + spec = spec * spec; + spec = spec * spec; + spec = spec * spec; + + lightIntensity = diffuseContribution * dot(lightVec, tnorm) + + specularContribution * spec; + + gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/validate_program/successfulcompile_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/validate_program/successfulcompile_frag.frag new file mode 100644 index 0000000000..b251b07f03 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/validate_program/successfulcompile_frag.frag @@ -0,0 +1,46 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +uniform float mortarThickness; +uniform vec3 brickColor; +uniform vec3 mortarColor; + +uniform float brickMortarWidth; +uniform float brickMortarHeight; +uniform float mwf; +uniform float mhf; + +varying vec3 Position; +varying float lightIntensity; + +void main (void) +{ + vec3 ct; + float ss, tt, w, h; + + vec3 pos = Position; + + ss = pos.x / brickMortarWidth; + tt = pos.z / brickMortarHeight; + + if (fract (tt * 0.5) > 0.5) + ss += 0.5; + + ss = fract (ss); + tt = fract (tt); + + w = step (mwf, ss) - step (1.0 - mwf, ss); + h = step (mhf, tt) - step (1.0 - mhf, tt); + + ct = clamp(mix (mortarColor, brickColor, w * h) * lightIntensity, 0.0, 1.0); + + gl_FragColor = vec4 (ct, 1.0); +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/validate_program/successfulcompile_vert.vert b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/validate_program/successfulcompile_vert.vert new file mode 100644 index 0000000000..19faf8698b --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/validate_program/successfulcompile_vert.vert @@ -0,0 +1,26 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +attribute vec3 gtf_Normal; +attribute vec4 gtf_Vertex; +uniform mat3 gtf_NormalMatrix; +uniform mat4 gtf_ModelViewMatrix; +uniform mat4 gtf_ModelViewProjectionMatrix; + +varying float lightIntensity; +varying vec3 Position; +uniform vec3 LightPosition; +uniform float Scale; + +void main(void) { + vec4 pos = gtf_ModelViewMatrix * gtf_Vertex; + Position = vec3(gtf_Vertex) * Scale; + vec3 tnorm = normalize(gtf_NormalMatrix * gtf_Normal); + lightIntensity = dot(normalize(LightPosition - vec3(pos)), tnorm) * 1.5; + gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/validate_program/unsuccessfulcompile_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/validate_program/unsuccessfulcompile_frag.frag new file mode 100644 index 0000000000..4f3fe797b2 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/validate_program/unsuccessfulcompile_frag.frag @@ -0,0 +1,66 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +uniform float GrainSize; +uniform vec3 DarkColor; +uniform vec3 colorSpread; + +varying float lightIntensity; +varying vec3 Position; + +void main (void) +{ + // + // cheap noise + // + vec3 location = Position; + + vec3 floorvec = vec3(floor(Position.x * 10.0), 0.0, floor(Position.z * 10.0)); + vec3 noise = Position * 10.0 - floorvec - 0.5; + noise *= noise; + location += noise * 0.12; + + // + // distance from axis + // + float dist = location.x * location.x + location.z * location.z; + float grain = dist / GrainSize; + + // + // grain effects as function of distance + // + float brightness = fract(grain); + if (brightness > 0.5) + brightness = (1.0 - brightness); + vec3 color = DarkColor + 0.5 * brightness * (colorSpread); + + brightness = fract(grain*7.0); + if (brightness > 0.5) + brightness = 1.0 - brightness; + color -= 0.5 * brightness * colorSpread; + + // + // also as a function of lines parallel to the axis + // + brightness = fract(grain*47.0); + float line = fract(Position.z + Position.x); + float snap = floor(line * 30.0) * (1.0/30.0); + if (line < snap + 0.004) + color -= 0.5 * brightness * colorSpread; + + // + // apply lighting effects from vertex processor + // + color *= lightIntensity; + color = clamp(color, 0.0, 1.0); + + gl_FragColor = vec4(color, 0.1) +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/validate_program/unsuccessfulcompile_vert.vert b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/validate_program/unsuccessfulcompile_vert.vert new file mode 100644 index 0000000000..b04c21efe3 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/validate_program/unsuccessfulcompile_vert.vert @@ -0,0 +1,43 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +attribute vec3 gtf_Normal; +attribute vec4 gtf_Vertex; +uniform mat3 gtf_NormalMatrix; +uniform mat4 gtf_ModelViewMatrix; +uniform mat4 gtf_ModelViewProjectionMatrix; +varying float lightIntensity; +varying vec3 Position; +uniform vec3 LightPosition; +uniform vec3 NotActiveOne; +attribute float myAttribute1; +attribute float myAttribute2; + +const float specularContribution = 0.7; +const float diffuseContribution = (1.0 - specularContribution); + +void main(void) { + vec4 pos = gtf_ModelViewMatrix * gtf_Vertex_Color; + Position = vec3(gtf_Vertex); + vec3 tnorm = normalize(gtf_NormalMatrix * gtf_Normal); + vec3 lightVec = normalize(LightPosition - vec3(pos)); + vec3 reflectVec = reflect(lightVec, tnorm); + vec3 viewVec = normalize(vec3(pos)); + + //float spec = clamp(dot(reflectVec, viewVec), 0.0, 1.0); + float spec = clamp(dot(reflectVec, viewVec), myAttribute1, myAttribute2); + spec = spec * spec; + spec = spec * spec; + spec = spec * spec; + spec = spec * spec; + + lightIntensity = diffuseContribution * dot(lightVec, tnorm) + + specularContribution * spec; + + gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/vertex_program_point_size/point_size.vert b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/vertex_program_point_size/point_size.vert new file mode 100644 index 0000000000..1632a0ee88 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/vertex_program_point_size/point_size.vert @@ -0,0 +1,19 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +attribute vec4 gtf_Vertex; +attribute vec4 gtf_Color; +uniform mat4 gtf_ModelViewProjectionMatrix; +varying vec4 color; + +void main (void) +{ + color = gtf_Color; + gl_PointSize = 20.0; + gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; +} |