]> git.tdb.fi Git - libs/gl.git/blobdiff - scripts/builtin_funcs.py
Add multisampled texture types to the shader compiler
[libs/gl.git] / scripts / builtin_funcs.py
index bf5198f5831478730d1a8696c84a29d04b87e3ae..5ff3a57fc68150e58bbc6378f6063b93a449c634 100755 (executable)
@@ -16,6 +16,8 @@ traits = {
        "sampler1DArrayShadow": { "CDim": 3, "IDim": 2, "LDim": 1 },
        "sampler2DArrayShadow": { "CDim": 4, "IDim": 3, "LDim": 2 },
        "samplerCubeArrayShadow": { "IDim": 3, "LDim": 3 },
+       "sampler2DMS": { "CDim": 2, "IDim": 2, "LDim": 2 },
+       "sampler2DMSArray": { "CDim": 3, "IDim": 3, "LDim": 2 },
        "float": { "Base": "float", "Dim": 1, "Vec": "vec", "Mat": "mat" },
        "vec2": { "Base": "float", "Dim": 2 },
        "vec3": { "Base": "float", "Dim": 3 },
@@ -62,6 +64,7 @@ matrixtypes = squarematrixtypes+("mat2x3", "mat3x2", "mat2x4", "mat4x2", "mat3x4
 flatsamplertypes = ("sampler1D", "sampler2D", "sampler3D", "sampler1DArray", "sampler2DArray")
 colorsamplertypes = flatsamplertypes+("samplerCube", "samplerCubeArray")
 shadowsamplertypes = ("sampler1DShadow", "sampler2DShadow", "samplerCubeShadow", "sampler1DArrayShadow", "sampler2DArrayShadow", "samplerCubeArrayShadow")
+mssamplertypes = ("sampler2DMS", "sampler2DMSArray")
 samplertypes = colorsamplertypes+shadowsamplertypes
 shared_funcs = [
        # Trigonometric
@@ -155,14 +158,16 @@ shared_funcs = [
        ("int[T::Dim] findMSB(T value)", int32types),
 
        # Texture
-       ("int[T::IDim] textureSize(T sampler, int lod)", samplertypes),
+       ("int[T::IDim] textureSize(T sampler, int lod)", samplertypes+mssamplertypes),
        ("vec2 textureQueryLod(T sampler, float[T::LDim] P)", samplertypes),
        ("int textureQueryLevels(T sampler)", samplertypes),
+       ("int textureSamples(T sampler)", mssamplertypes),
        ("vec4 texture(T sampler, float[T::CDim] P)", colorsamplertypes),
        ("float texture(T sampler, float[T::CDim] P)", tuple(s for s in shadowsamplertypes if "CubeArray" not in s)),
        "float texture(samplerCubeArrayShadow sampler, vec4 P, float compare)",
        ("vec4 textureLod(T sampler, float[T::CDim] P, float lod)", colorsamplertypes),
-       ("vec4 texelFetch(T sampler, int[T::CDim] P, int lod)", flatsamplertypes)
+       ("vec4 texelFetch(T sampler, int[T::CDim] P, int lod)", flatsamplertypes),
+       ("vec4 texelFetch(T sampler, int[T::CDim] P, int sample)", mssamplertypes)
 ]
 
 fragment_funcs = [