Merge pull request #2913 from greg-lunarg/i2905
[platform/upstream/glslang.git] / Test / texture.frag
1 #version 130\r
2 \r
3 uniform sampler1D       texSampler1D;\r
4 uniform sampler2D       texSampler2D;\r
5 uniform sampler3D       texSampler3D;\r
6 uniform samplerCube         texSamplerCube;\r
7 uniform sampler1DShadow shadowSampler1D;\r
8 uniform sampler2DShadow shadowSampler2D;\r
9 \r
10 uniform float blend;\r
11 uniform vec2 scale;\r
12 uniform vec4 u;\r
13 \r
14 varying vec2 t;\r
15 varying vec2 coords2D;\r
16 \r
17 void main()\r
18 {  \r
19     float blendscale = 1.789;\r
20     float bias       = 2.0;\r
21     float lod            = 3.0;\r
22     float proj       = 2.0;\r
23     float coords1D   = 1.789;\r
24     vec3  coords3D   = vec3(1.789, 2.718, 3.453);\r
25     vec4  coords4D   = vec4(1.789, 2.718, 3.453, 2.0);\r
26     vec4  color      = vec4(0.0, 0.0, 0.0, 0.0);\r
27 \r
28     color += texture1D    (texSampler1D, coords1D);\r
29     color += texture1D    (texSampler1D, coords1D, bias);\r
30     color += texture1DProj(texSampler1D, coords2D);\r
31     color += texture1DProj(texSampler1D, coords4D);\r
32     color += texture1DProj(texSampler1D, coords2D, bias);\r
33     color += texture1DProj(texSampler1D, coords4D, bias);\r
34     \r
35     color += texture2D        (texSampler2D, coords2D);\r
36     color += texture2D        (texSampler2D, coords2D, bias);\r
37     color += texture2DProj    (texSampler2D, coords3D);\r
38     color += texture2DProj    (texSampler2D, coords4D, bias);\r
39 \r
40     color += texture3D        (texSampler3D, coords3D);\r
41     color += texture3D        (texSampler3D, coords3D, bias);\r
42     color += texture3DProj    (texSampler3D, coords4D);\r
43     color += texture3DProj    (texSampler3D, coords4D, bias);\r
44 \r
45     color += textureCube    (texSamplerCube, coords3D);\r
46     color += textureCube    (texSamplerCube, coords3D, bias);\r
47     \r
48     color += shadow1D       (shadowSampler1D, coords3D);\r
49     color += shadow1D       (shadowSampler1D, coords3D, bias);\r
50     color += shadow2D       (shadowSampler2D, coords3D);\r
51     color += shadow2D       (shadowSampler2D, coords3D, bias);\r
52     color += shadow1DProj   (shadowSampler1D, coords4D);\r
53     color += shadow1DProj   (shadowSampler1D, coords4D, bias);\r
54     color += shadow2DProj   (shadowSampler2D, coords4D);\r
55     color += shadow2DProj   (shadowSampler2D, coords4D, bias);\r
56 \r
57     ivec2 iCoords2D = ivec2(0, 5);\r
58     int iLod = 1;\r
59 \r
60     color += texelFetch(texSampler2D, iCoords2D, iLod);\r
61 \r
62     vec2 gradX = dFdx(coords2D);\r
63     vec2 gradY = dFdy(coords2D);\r
64     const ivec2 offset = ivec2(3, -7);\r
65 \r
66     color += textureGrad(texSampler2D, coords2D, gradX, gradY);\r
67     color += textureProjGrad(texSampler2D, vec3(coords2D, proj), gradX, gradY);\r
68     color += textureGradOffset(texSampler2D, coords2D, gradX, gradY, offset);\r
69     color += textureProjGradOffset(texSampler2D, coords3D, gradX, gradY, offset);\r
70     color += textureGrad(shadowSampler2D, vec3(coords2D, lod), gradX, gradY);\r
71     \r
72     gl_FragColor = mix(color, u, blend * blendscale);\r
73 }