
This commit splits lValueErrorCheck into machine dependent and independent parts. The GLSL form in TParseContext inherits from and invokes the machine dependent part in TParseContextBase. The base form checks language independent things. This split does not change the set of errors tested for: the test results are identical. The new base class interface is now used from the HLSL FE to test lvalues. There was one test diff due to this, where the test was writing to a uniform. It still does the same indirections, but does not attempt a uniform write.
44 lines
787 B
GLSL
44 lines
787 B
GLSL
struct {
|
|
};
|
|
|
|
struct {
|
|
bool b;
|
|
};
|
|
|
|
struct myS {
|
|
bool b, c;
|
|
float4 a, d;
|
|
};
|
|
|
|
myS s1;
|
|
|
|
struct {
|
|
float4 i;
|
|
} s2;
|
|
|
|
struct IN_S {
|
|
linear float4 a;
|
|
nointerpolation bool b;
|
|
noperspective centroid float1 c;
|
|
sample centroid float2 d;
|
|
bool ff1 : SV_IsFrontFace;
|
|
bool ff2 : packoffset(c0.y);
|
|
bool ff3 : packoffset(c0.y) : register(ps_5_0, s0) ;
|
|
float4 ff4 : VPOS : packoffset(c0.y) : register(ps_5_0, s0) <int bambam=30;> ;
|
|
};
|
|
|
|
float ff5 : packoffset(c101.y) : register(ps_5_0, s[5]);
|
|
float ff6 : packoffset(c102.y) : register(s3[5]);
|
|
|
|
float4 PixelShaderFunction(float4 input, IN_S s) : COLOR0
|
|
{
|
|
struct FS {
|
|
bool3 b3;
|
|
} s3;
|
|
|
|
s3 == s3;
|
|
s2.i; s.ff4; // no assignments to uniforms, but preserve indirections.
|
|
|
|
return input;
|
|
}
|