e7a1fbfc47
Arrays of textures have always been supported, but we will encounter cases when we need to work with texture array objects as well. Note that currently it is not possible to expose only a slice of the array to the shader, because there is no dedicated API in the SRB, and thus the same SRV/UAV (or equivalent) is used always, capturing all elements in the array. Therefore in the shader the last component of P in texture() is in range 0..array_size-1. Change-Id: I5a032ed016aeefbbcd743d5bfb9fbc49ba00a1fa Reviewed-by: Andy Nichols <andy.nichols@qt.io>
20 lines
369 B
GLSL
20 lines
369 B
GLSL
#version 440
|
|
|
|
layout(location = 0) in vec2 v_texcoord;
|
|
|
|
layout(location = 0) out vec4 fragColor;
|
|
|
|
layout(std140, binding = 0) uniform buf {
|
|
mat4 mvp;
|
|
int flip;
|
|
int array_index;
|
|
};
|
|
|
|
layout(binding = 1) uniform sampler2DArray texArr;
|
|
|
|
void main()
|
|
{
|
|
vec4 c = texture(texArr, vec3(v_texcoord, float(array_index)));
|
|
fragColor = vec4(c.rgb * c.a, c.a);
|
|
}
|