зеркало из https://github.com/stride3d/xkslang.git
43 строки
1.1 KiB
GLSL
43 строки
1.1 KiB
GLSL
#version 400 core
|
|
|
|
in vec2 c2D;
|
|
flat in int i;
|
|
out vec4 outp;
|
|
out ivec4 ioutp;
|
|
out uvec4 uoutp;
|
|
uniform sampler2D arrayedSampler[5];
|
|
uniform usampler2DRect samp2dr;
|
|
uniform isampler2DArray isamp2DA;
|
|
uniform sampler2DRectShadow u2drs;
|
|
|
|
#extension GL_ARB_separate_shader_objects : enable
|
|
|
|
layout(location = 6) in vec4 vl2;
|
|
|
|
void foo23()
|
|
{
|
|
const ivec2[3] offsets = ivec2[3](ivec2(1,2), ivec2(3,4), ivec2(15,16));
|
|
|
|
outp.x += textureProjGradOffset(u2drs, outp, vec2(0.0), vec2(0.0), offsets[1]);
|
|
}
|
|
|
|
void main()
|
|
{
|
|
vec4 v;
|
|
v = texture(arrayedSampler[i], c2D);
|
|
outp.x = gl_ClipDistance[1];
|
|
outp.yzw = v.yzw;
|
|
|
|
ivec2 offsets[4];
|
|
const ivec2 constOffsets[4] = ivec2[4](ivec2(1,2), ivec2(3,4), ivec2(15,16), ivec2(-2,0));
|
|
uoutp = textureGatherOffsets(samp2dr, c2D, constOffsets, 2);
|
|
outp += textureGather(arrayedSampler[0], c2D);
|
|
ioutp = textureGatherOffset(isamp2DA, vec3(0.1), ivec2(1), 3);
|
|
ioutp += textureGatherOffset(isamp2DA, vec3(0.1), ivec2(1), 1+2);
|
|
ioutp += textureGatherOffset(isamp2DA, vec3(0.1), ivec2(i));
|
|
|
|
outp += gl_FragCoord + vl2;
|
|
foo23();
|
|
}
|
|
|