"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 },
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
("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 = [