#version 140 | |
#extension GL_ARB_texture_gather : enable | |
vec3 a; | |
float b; | |
in vec4 i; | |
out vec4 o; | |
out ivec3 io; | |
out uvec4 uo; | |
flat in float fflat; | |
smooth in float fsmooth; | |
noperspective in float fnop; | |
uniform samplerCube sampC; | |
#extension GL_ARB_texture_rectangle : enable | |
uniform sampler2D samp2D; | |
uniform sampler2DShadow samp2DS; | |
uniform sampler2DRect samp2DR; | |
uniform sampler2DArray samp2DA; | |
void bar3() | |
{ | |
o += textureGatherOffset(samp2D, vec2(0.3), ivec2(1)); | |
o += textureGatherOffset(samp2DA, vec3(0.3), ivec2(1)); | |
} | |
#extension GL_ARB_gpu_shader5 : enable | |
void bar4() | |
{ | |
o += textureGatherOffset(samp2DR, vec2(0.3), ivec2(1)); | |
o += textureGatherOffset(samp2DS, vec2(0.3), 1.3, ivec2(1)); | |
o += textureGatherOffset(samp2D, vec2(0.3), ivec2(1), 2); | |
} | |
#extension GL_ARB_texture_cube_map_array : enable | |
uniform samplerCubeArray Sca; | |
uniform isamplerCubeArray Isca; | |
uniform usamplerCubeArray Usca; | |
uniform samplerCubeArrayShadow Scas; | |
void bar5() | |
{ | |
io = textureSize(Sca, 3); | |
o += texture(Sca, i); | |
io += texture(Isca, i, 0.7).xyz; | |
uo = texture(Usca, i); | |
o += textureLod(Sca, i, 1.7); | |
a = textureSize(Scas, 3); | |
float f = texture(Scas, i, i.y); | |
ivec4 c = textureGrad(Isca, i, vec3(0.1), vec3(0.2)); | |
o += vec4(a, f + c); | |
} | |
#extension GL_ARB_shading_language_420pack : enable | |
const int ai[3] = { 10, 23, 32 }; | |
uniform layout(binding=0) sampler2D bounds; | |
void bar6() | |
{ | |
mat4x3 m43; | |
float a1 = m43[3].y; | |
//int a2 = m43.length(); // ERROR until shading_language_420pack is fully implemented | |
const float b = 2 * a1; | |
//a.x = gl_MinProgramTexelOffset + gl_MaxProgramTexelOffset; // ERROR until shading_language_420pack is fully implemented | |
} | |
#extension GL_ARB_texture_rectangle : enable | |
#extension GL_ARB_shader_texture_lod : require | |
uniform sampler2D s2D; | |
uniform sampler2DRect s2DR; | |
uniform sampler2DRectShadow s2DRS; | |
uniform sampler1D s1D; | |
uniform sampler2DShadow s2DS; | |
void main() | |
{ | |
o = textureGather(sampC, vec3(0.2)); | |
o.y = gl_ClipDistance[3]; | |
bar3(); | |
bar4(); | |
bar5(); | |
bar6(); | |
} |