mirror of
https://github.com/RPCS3/glslang.git
synced 2024-11-28 05:30:33 +00:00
f31507421b
For "s.m = t", a sampler member assigned a sampler, make t an alias for s.m, and when s.m is flattened, it will flatten to the alias t. Normally, assignments to samplers are disallowed.
30 lines
452 B
GLSL
30 lines
452 B
GLSL
struct OS {
|
|
SamplerState ss;
|
|
float a;
|
|
Texture2D tex;
|
|
};
|
|
|
|
SamplerState gss;
|
|
SamplerState gss2;
|
|
Texture2D gtex;
|
|
|
|
float4 osCall(OS s)
|
|
{
|
|
return s.a * s.tex.Sample(s.ss, float2(0.2, 0.3));
|
|
}
|
|
|
|
float4 main() : SV_TARGET0
|
|
{
|
|
OS os;
|
|
os.ss = gss2;
|
|
os.ss = gss;
|
|
os.tex = gtex;
|
|
os.a = 3.0;
|
|
|
|
// this should give an error
|
|
//SamplerState localss;
|
|
//localss = gss2;
|
|
|
|
return osCall(os);
|
|
}
|