diff options
Diffstat (limited to 'dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/lessThan')
18 files changed, 545 insertions, 0 deletions
diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/lessThan/input.run.txt b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/lessThan/input.run.txt new file mode 100644 index 0000000000..f49c916d97 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/lessThan/input.run.txt @@ -0,0 +1,2 @@ +# this file is auto-generated. DO NOT EDIT. +lessThan_001_to_008.html diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/lessThan/lessThan_001_to_008.html b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/lessThan/lessThan_001_to_008.html new file mode 100644 index 0000000000..963a3a229a --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/lessThan/lessThan_001_to_008.html @@ -0,0 +1,135 @@ +<!DOCTYPE html> +<!-- this file is auto-generated. DO NOT EDIT. --> +<!-- +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. +--> +<html> +<head> +<meta charset="utf-8"> +<title>WebGL GLSL conformance test: lessThan_001_to_008.html</title> +<link rel="stylesheet" href="../../../../resources/js-test-style.css" /> +<link rel="stylesheet" href="../../../../resources/ogles-tests.css" /> +<script src="../../../../js/js-test-pre.js"></script> +<script src="../../../../js/webgl-test-utils.js"></script> +<script src="../../ogles-utils.js"></script> +</head> +<body> +<canvas id="example" width="500" height="500" style="width: 16px; height: 16px;"></canvas> +<div id="description"></div> +<div id="console"></div> +</body> +<script> +"use strict"; +OpenGLESTestRunner.run({ + "tests": [ + { + "referenceProgram": { + "vertexShader": "../default/default.vert", + "fragmentShader": "lessThan_vec2_frag_ref.frag" + }, + "model": null, + "testProgram": { + "vertexShader": "../default/default.vert", + "fragmentShader": "lessThan_vec2_frag.frag" + }, + "name": "lessThan_vec2_frag.test.html", + "pattern": "compare" + }, + { + "referenceProgram": { + "vertexShader": "lessThan_vec2_vert_ref.vert", + "fragmentShader": "../default/default.frag" + }, + "model": "grid", + "testProgram": { + "vertexShader": "lessThan_vec2_vert.vert", + "fragmentShader": "../default/default.frag" + }, + "name": "lessThan_vec2_vert.test.html", + "pattern": "compare" + }, + { + "referenceProgram": { + "vertexShader": "../default/default.vert", + "fragmentShader": "lessThan_vec3_frag_ref.frag" + }, + "model": null, + "testProgram": { + "vertexShader": "../default/default.vert", + "fragmentShader": "lessThan_vec3_frag.frag" + }, + "name": "lessThan_vec3_frag.test.html", + "pattern": "compare" + }, + { + "referenceProgram": { + "vertexShader": "lessThan_vec3_vert_ref.vert", + "fragmentShader": "../default/default.frag" + }, + "model": "grid", + "testProgram": { + "vertexShader": "lessThan_vec3_vert.vert", + "fragmentShader": "../default/default.frag" + }, + "name": "lessThan_vec3_vert.test.html", + "pattern": "compare" + }, + { + "referenceProgram": { + "vertexShader": "../default/default.vert", + "fragmentShader": "lessThan_ivec2_frag_ref.frag" + }, + "model": null, + "testProgram": { + "vertexShader": "../default/default.vert", + "fragmentShader": "lessThan_ivec2_frag.frag" + }, + "name": "lessThan_ivec2_frag.test.html", + "pattern": "compare" + }, + { + "referenceProgram": { + "vertexShader": "lessThan_ivec2_vert_ref.vert", + "fragmentShader": "../default/default.frag" + }, + "model": "grid", + "testProgram": { + "vertexShader": "lessThan_ivec2_vert.vert", + "fragmentShader": "../default/default.frag" + }, + "name": "lessThan_ivec2_vert.test.html", + "pattern": "compare" + }, + { + "referenceProgram": { + "vertexShader": "../default/default.vert", + "fragmentShader": "lessThan_ivec3_frag_ref.frag" + }, + "model": null, + "testProgram": { + "vertexShader": "../default/default.vert", + "fragmentShader": "lessThan_ivec3_frag.frag" + }, + "name": "lessThan_ivec3_frag.test.html", + "pattern": "compare" + }, + { + "referenceProgram": { + "vertexShader": "lessThan_ivec3_vert_ref.vert", + "fragmentShader": "../default/default.frag" + }, + "model": "grid", + "testProgram": { + "vertexShader": "lessThan_ivec3_vert.vert", + "fragmentShader": "../default/default.frag" + }, + "name": "lessThan_ivec3_vert.test.html", + "pattern": "compare" + } + ] +}); +var successfullyParsed = true; +</script> +</html> diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/lessThan/lessThan_ivec2_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/lessThan/lessThan_ivec2_frag.frag new file mode 100644 index 0000000000..efb9f70969 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/lessThan/lessThan_ivec2_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 +varying vec4 color; + +void main (void) +{ + vec2 c = floor(10.0 * color.rg - 4.5); // round to the nearest integer + vec2 result = vec2(lessThan(ivec2(c), ivec2(0))); + gl_FragColor = vec4(result, 0.0, 1.0); +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/lessThan/lessThan_ivec2_frag_ref.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/lessThan/lessThan_ivec2_frag_ref.frag new file mode 100644 index 0000000000..5a5f597262 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/lessThan/lessThan_ivec2_frag_ref.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; + +bvec2 lt(in ivec2 a, in ivec2 b) +{ + bvec2 result; + if(a[0] < b[0]) result[0] = true; + else result[0] = false; + if(a[1] < b[1]) result[1] = true; + else result[1] = false; + return result; +} + +void main (void) +{ + vec2 c = floor(10.0 * color.rg - 4.5); // round to the nearest integer + vec2 result = vec2(lt(ivec2(c), ivec2(0))); + gl_FragColor = vec4(result, 0.0, 1.0); +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/lessThan/lessThan_ivec2_vert.vert b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/lessThan/lessThan_ivec2_vert.vert new file mode 100644 index 0000000000..0b4b12f187 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/lessThan/lessThan_ivec2_vert.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_Color; +attribute vec4 gtf_Vertex; +uniform mat4 gtf_ModelViewProjectionMatrix; +varying vec4 color; + +void main (void) +{ + vec2 c = floor(10.0 * gtf_Color.rg - 4.5); // round to the nearest integer + vec2 result = vec2(lessThan(ivec2(c), ivec2(0))); + color = vec4(result, 0.0, 1.0); + gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/lessThan/lessThan_ivec2_vert_ref.vert b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/lessThan/lessThan_ivec2_vert_ref.vert new file mode 100644 index 0000000000..9ec55e8551 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/lessThan/lessThan_ivec2_vert_ref.vert @@ -0,0 +1,30 @@ + +/* +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; +uniform mat4 gtf_ModelViewProjectionMatrix; +varying vec4 color; + +bvec2 lt(in ivec2 a, in ivec2 b) +{ + bvec2 result; + if(a[0] < b[0]) result[0] = true; + else result[0] = false; + if(a[1] < b[1]) result[1] = true; + else result[1] = false; + return result; +} + +void main (void) +{ + vec2 c = floor(10.0 * gtf_Color.rg - 4.5); // round to the nearest integer + vec2 result = vec2(lt(ivec2(c), ivec2(0))); + color = vec4(result, 0.0, 1.0); + gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/lessThan/lessThan_ivec3_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/lessThan/lessThan_ivec3_frag.frag new file mode 100644 index 0000000000..39fa872d14 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/lessThan/lessThan_ivec3_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 +varying vec4 color; + +void main (void) +{ + vec3 c = floor(10.0 * color.rgb - 4.5); // round to the nearest integer + vec3 result = vec3(lessThan(ivec3(c), ivec3(0))); + gl_FragColor = vec4(result, 1.0); +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/lessThan/lessThan_ivec3_frag_ref.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/lessThan/lessThan_ivec3_frag_ref.frag new file mode 100644 index 0000000000..3cbf48f982 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/lessThan/lessThan_ivec3_frag_ref.frag @@ -0,0 +1,31 @@ + +/* +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; + +bvec3 lt(in ivec3 a, in ivec3 b) +{ + bvec3 result; + if(a[0] < b[0]) result[0] = true; + else result[0] = false; + if(a[1] < b[1]) result[1] = true; + else result[1] = false; + if(a[2] < b[2]) result[2] = true; + else result[2] = false; + return result; +} + +void main (void) +{ + vec3 c = floor(10.0 * color.rgb - 4.5); // round to the nearest integer + vec3 result = vec3(lt(ivec3(c), ivec3(0))); + gl_FragColor = vec4(result, 1.0); +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/lessThan/lessThan_ivec3_vert.vert b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/lessThan/lessThan_ivec3_vert.vert new file mode 100644 index 0000000000..8d64ec8bb6 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/lessThan/lessThan_ivec3_vert.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_Color; +attribute vec4 gtf_Vertex; +uniform mat4 gtf_ModelViewProjectionMatrix; +varying vec4 color; + +void main (void) +{ + vec3 c = floor(10.0 * gtf_Color.rgb - 4.5); // round to the nearest integer + vec3 result = vec3(lessThan(ivec3(c), ivec3(0))); + color = vec4(result, 1.0); + gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/lessThan/lessThan_ivec3_vert_ref.vert b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/lessThan/lessThan_ivec3_vert_ref.vert new file mode 100644 index 0000000000..68719abf80 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/lessThan/lessThan_ivec3_vert_ref.vert @@ -0,0 +1,32 @@ + +/* +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; +uniform mat4 gtf_ModelViewProjectionMatrix; +varying vec4 color; + +bvec3 lt(in ivec3 a, in ivec3 b) +{ + bvec3 result; + if(a[0] < b[0]) result[0] = true; + else result[0] = false; + if(a[1] < b[1]) result[1] = true; + else result[1] = false; + if(a[2] < b[2]) result[2] = true; + else result[2] = false; + return result; +} + +void main (void) +{ + vec3 c = floor(10.0 * gtf_Color.rgb - 4.5); // round to the nearest integer + vec3 result = vec3(lt(ivec3(c), ivec3(0))); + color = vec4(result, 1.0); + gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/lessThan/lessThan_vec2_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/lessThan/lessThan_vec2_frag.frag new file mode 100644 index 0000000000..2cdfccb869 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/lessThan/lessThan_vec2_frag.frag @@ -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. +*/ + + +#ifdef GL_ES +#ifdef GL_FRAGMENT_PRECISION_HIGH +precision highp float; +#else +precision mediump float; +#endif +#endif +varying vec4 color; + +void main (void) +{ + vec2 c = floor(10.0 * color.rg - 4.5); // round to the nearest integer + vec2 result = vec2(lessThan(c, vec2(0.0))); + gl_FragColor = vec4(result, 0.0, 1.0); +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/lessThan/lessThan_vec2_frag_ref.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/lessThan/lessThan_vec2_frag_ref.frag new file mode 100644 index 0000000000..1b841e4b15 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/lessThan/lessThan_vec2_frag_ref.frag @@ -0,0 +1,33 @@ + +/* +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 +#ifdef GL_FRAGMENT_PRECISION_HIGH +precision highp float; +#else +precision mediump float; +#endif +#endif +varying vec4 color; + +bvec2 lt(in vec2 a, in vec2 b) +{ + bvec2 result; + if(a[0] < b[0]) result[0] = true; + else result[0] = false; + if(a[1] < b[1]) result[1] = true; + else result[1] = false; + return result; +} + +void main (void) +{ + vec2 c = floor(10.0 * color.rg - 4.5); // round to the nearest integer + vec2 result = vec2(lt(c, vec2(0.0))); + gl_FragColor = vec4(result, 0.0, 1.0); +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/lessThan/lessThan_vec2_vert.vert b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/lessThan/lessThan_vec2_vert.vert new file mode 100644 index 0000000000..b341e510e3 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/lessThan/lessThan_vec2_vert.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_Color; +attribute vec4 gtf_Vertex; +uniform mat4 gtf_ModelViewProjectionMatrix; +varying vec4 color; + +void main (void) +{ + vec2 c = floor(10.0 * gtf_Color.rg - 4.5); // round to the nearest integer + vec2 result = vec2(lessThan(c, vec2(0.0))); + color = vec4(result, 0.0, 1.0); + gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/lessThan/lessThan_vec2_vert_ref.vert b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/lessThan/lessThan_vec2_vert_ref.vert new file mode 100644 index 0000000000..10206861a8 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/lessThan/lessThan_vec2_vert_ref.vert @@ -0,0 +1,30 @@ + +/* +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; +uniform mat4 gtf_ModelViewProjectionMatrix; +varying vec4 color; + +bvec2 lt(in vec2 a, in vec2 b) +{ + bvec2 result; + if(a[0] < b[0]) result[0] = true; + else result[0] = false; + if(a[1] < b[1]) result[1] = true; + else result[1] = false; + return result; +} + +void main (void) +{ + vec2 c = floor(10.0 * gtf_Color.rg - 4.5); // round to the nearest integer + vec2 result = vec2(lt(c, vec2(0.0))); + color = vec4(result, 0.0, 1.0); + gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/lessThan/lessThan_vec3_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/lessThan/lessThan_vec3_frag.frag new file mode 100644 index 0000000000..ca0bfea25c --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/lessThan/lessThan_vec3_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 +varying vec4 color; + +void main (void) +{ + vec3 c = floor(10.0 * color.rgb - 4.5); // round to the nearest integer + vec3 result = vec3(lessThan(c, vec3(0.0))); + gl_FragColor = vec4(result, 1.0); +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/lessThan/lessThan_vec3_frag_ref.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/lessThan/lessThan_vec3_frag_ref.frag new file mode 100644 index 0000000000..4b97bd6eb3 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/lessThan/lessThan_vec3_frag_ref.frag @@ -0,0 +1,31 @@ + +/* +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; + +bvec3 lt(in vec3 a, in vec3 b) +{ + bvec3 result; + if(a[0] < b[0]) result[0] = true; + else result[0] = false; + if(a[1] < b[1]) result[1] = true; + else result[1] = false; + if(a[2] < b[2]) result[2] = true; + else result[2] = false; + return result; +} + +void main (void) +{ + vec3 c = floor(10.0 * color.rgb - 4.5); // round to the nearest integer + vec3 result = vec3(lt(c, vec3(0.0))); + gl_FragColor = vec4(result, 1.0); +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/lessThan/lessThan_vec3_vert.vert b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/lessThan/lessThan_vec3_vert.vert new file mode 100644 index 0000000000..d4f15c1b43 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/lessThan/lessThan_vec3_vert.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_Color; +attribute vec4 gtf_Vertex; +uniform mat4 gtf_ModelViewProjectionMatrix; +varying vec4 color; + +void main (void) +{ + vec3 c = floor(10.0 * gtf_Color.rgb - 4.5); // round to the nearest integer + vec3 result = vec3(lessThan(c, vec3(0.0))); + color = vec4(result, 1.0); + gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; +} diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/lessThan/lessThan_vec3_vert_ref.vert b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/lessThan/lessThan_vec3_vert_ref.vert new file mode 100644 index 0000000000..a6e703d6f9 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/lessThan/lessThan_vec3_vert_ref.vert @@ -0,0 +1,32 @@ + +/* +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; +uniform mat4 gtf_ModelViewProjectionMatrix; +varying vec4 color; + +bvec3 lt(in vec3 a, in vec3 b) +{ + bvec3 result; + if(a[0] < b[0]) result[0] = true; + else result[0] = false; + if(a[1] < b[1]) result[1] = true; + else result[1] = false; + if(a[2] < b[2]) result[2] = true; + else result[2] = false; + return result; +} + +void main (void) +{ + vec3 c = floor(10.0 * gtf_Color.rgb - 4.5); // round to the nearest integer + vec3 result = vec3(lt(c, vec3(0.0))); + color = vec4(result, 1.0); + gl_Position = gtf_ModelViewProjectionMatrix * gtf_Vertex; +} |