diff options
Diffstat (limited to 'dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL2Tests/glGetProgramiv_2.0')
2 files changed, 89 insertions, 0 deletions
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; +} |