]> git.tdb.fi Git - libs/gl.git/blobdiff - builtin_data/_builtin.glsl
Check the flat qualifier from the correct member
[libs/gl.git] / builtin_data / _builtin.glsl
index c8336d9a18e12f05dc3a468023fecd7747e0d7fb..dcbb6d0abc7753c07cfc5cafbce39ce27b59e013 100644 (file)
@@ -39,6 +39,19 @@ typedef image(dimensions=1[], shadow, sampled) float sampler1DArrayShadow;
 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;
+typedef image(dimensions=1) float image1D;
+typedef image(dimensions=2) float image2D;
+typedef image(dimensions=3) float image3D;
+typedef image(dimensions=cube) float imageCube;
+typedef image(dimensions=1[]) float image1DArray;
+typedef image(dimensions=2[]) float image2DArray;
+typedef image(dimensions=cube[]) float imageCubeArray;
+typedef image(dimensions=2, multisample) float image2DMS;
+typedef image(dimensions=2[], multisample) float image2DMSArray;
+
+const float PI = 3.1415926535;
 
 // BEGIN BUILTIN FUNCTIONS
 float radians(float degrees);
@@ -471,6 +484,8 @@ ivec2 textureSize(samplerCubeShadow sampler, int lod);
 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);
@@ -497,6 +512,8 @@ int textureQueryLevels(samplerCubeShadow sampler);
 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);
@@ -522,6 +539,37 @@ vec4 texelFetch(sampler2D sampler, ivec2 P, int lod);
 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);
+int imageSize(image1D image);
+ivec2 imageSize(image2D image);
+ivec3 imageSize(image3D image);
+ivec2 imageSize(image1DArray image);
+ivec3 imageSize(image2DArray image);
+ivec2 imageSize(imageCube image);
+ivec3 imageSize(imageCubeArray image);
+ivec2 imageSize(image2DMS image);
+ivec3 imageSize(image2DMSArray image);
+int imageSamples(image2DMS image);
+int imageSamples(image2DMSArray image);
+vec4 imageLoad(image1D image, int P);
+vec4 imageLoad(image2D image, ivec2 P);
+vec4 imageLoad(image3D image, ivec3 P);
+vec4 imageLoad(image1DArray image, ivec2 P);
+vec4 imageLoad(image2DArray image, ivec3 P);
+vec4 imageLoad(imageCube image, ivec3 P);
+vec4 imageLoad(imageCubeArray image, ivec4 P);
+vec4 imageLoad(image2DMS image, ivec2 P, int sample);
+vec4 imageLoad(image2DMSArray image, ivec3 P, int sample);
+void imageStore(image1D image, int P, vec4 data);
+void imageStore(image2D image, ivec2 P, vec4 data);
+void imageStore(image3D image, ivec3 P, vec4 data);
+void imageStore(image1DArray image, ivec2 P, vec4 data);
+void imageStore(image2DArray image, ivec3 P, vec4 data);
+void imageStore(imageCube image, ivec3 P, vec4 data);
+void imageStore(imageCubeArray image, ivec4 P, vec4 data);
+void imageStore(image2DMS image, ivec2 P, int sample, vec4 data);
+void imageStore(image2DMSArray image, ivec3 P, int sample, vec4 data);
 // END BUILTIN FUNCTIONS
 
 #pragma MSP stage(vertex)
@@ -534,6 +582,44 @@ out gl_PerVertex
   float gl_ClipDistance[];
 };
 
+#pragma MSP stage(tess_control)
+in gl_PerVertex
+{
+  vec4 gl_Position;
+  float gl_PointSize;
+  float gl_ClipDistance[];
+} gl_in[];
+in int gl_PatchVerticesIn;
+in int gl_PrimitiveID;
+in int gl_InvocationID;
+out gl_PerVertex
+{
+  vec4 gl_Position;
+  float gl_PointSize;
+  float gl_ClipDistance[];
+} gl_out[];
+patch out float gl_TessLevelOuter[4];
+patch out float gl_TessLevelInner[2];
+
+#pragma MSP stage(tess_eval)
+in gl_PerVertex
+{
+  vec4 gl_Position;
+  float gl_PointSize;
+  float gl_ClipDistance[];
+} gl_in[];
+in int gl_PatchVerticesIn;
+in int gl_PrimitiveID;
+in vec3 gl_TessCoord;
+patch in float gl_TessLevelOuter[4];
+patch in float gl_TessLevelInner[2];
+out gl_PerVertex
+{
+  vec4 gl_Position;
+  float gl_PointSize;
+  float gl_ClipDistance[];
+};
+
 #pragma MSP stage(geometry)
 in gl_PerVertex
 {
@@ -616,3 +702,10 @@ in int gl_SampleID;
 in vec2 gl_SamplePosition;
 in int gl_Layer;
 out float gl_FragDepth;
+
+#pragma MSP stage(compute)
+in uvec3 gl_NumWorkGroups;
+in uvec3 gl_WorkGroupID;
+in uvec3 gl_LocalInvocationID;
+in uvec3 gl_GlobalInvocationID;
+in uint gl_LocalInvocationIndex;