typedef image(dimensions=2[], shadow, sampled) float sampler2DArrayShadow;
typedef image(dimensions=cube, shadow, sampled) float samplerCubeShadow;
typedef image(dimensions=cube[], shadow, sampled) float samplerCubeArrayShadow;
+typedef image(dimensions=2, sampled, multisample) float sampler2DMS;
+typedef image(dimensions=2[], sampled, multisample) float sampler2DMSArray;
const float PI = 3.1415926535;
ivec2 textureSize(sampler1DArrayShadow sampler, int lod);
ivec3 textureSize(sampler2DArrayShadow sampler, int lod);
ivec3 textureSize(samplerCubeArrayShadow sampler, int lod);
+ivec2 textureSize(sampler2DMS sampler, int lod);
+ivec3 textureSize(sampler2DMSArray sampler, int lod);
vec2 textureQueryLod(sampler1D sampler, float P);
vec2 textureQueryLod(sampler2D sampler, vec2 P);
vec2 textureQueryLod(sampler3D sampler, vec3 P);
int textureQueryLevels(sampler1DArrayShadow sampler);
int textureQueryLevels(sampler2DArrayShadow sampler);
int textureQueryLevels(samplerCubeArrayShadow sampler);
+int textureSamples(sampler2DMS sampler);
+int textureSamples(sampler2DMSArray sampler);
vec4 texture(sampler1D sampler, float P);
vec4 texture(sampler2D sampler, vec2 P);
vec4 texture(sampler3D sampler, vec3 P);
vec4 texelFetch(sampler3D sampler, ivec3 P, int lod);
vec4 texelFetch(sampler1DArray sampler, ivec2 P, int lod);
vec4 texelFetch(sampler2DArray sampler, ivec3 P, int lod);
+vec4 texelFetch(sampler2DMS sampler, ivec2 P, int sample);
+vec4 texelFetch(sampler2DMSArray sampler, ivec3 P, int sample);
// END BUILTIN FUNCTIONS
#pragma MSP stage(vertex)