{
Assignment::Target::ChainType type1 = static_cast<Assignment::Target::ChainType>(a->target.chain[j]&0xC0);
Assignment::Target::ChainType type2 = static_cast<Assignment::Target::ChainType>(target.chain[j]&0xC0);
+ unsigned index1 = a->target.chain[j]&0x3F;
+ unsigned index2 = target.chain[j]&0x3F;
if(type1==Assignment::Target::SWIZZLE || type2==Assignment::Target::SWIZZLE)
{
- unsigned index1 = a->target.chain[j]&0x3F;
- unsigned index2 = target.chain[j]&0x3F;
if(type1==Assignment::Target::SWIZZLE && type2==Assignment::Target::SWIZZLE)
covered = index1&index2;
else if(type1==Assignment::Target::ARRAY && index1<4)
covered as true */
}
else
- covered = (a->target.chain[j]==target.chain[j]);
+ covered = (type1==type2 && (index1==index2 || index1==0x3F || index2==0x3F));
}
if(covered)
--- /dev/null
+#pragma MSP stage(vertex)
+void main()
+{
+ float a[3];
+ a[0] = 0.0;
+ a[1] = 1.0;
+ a[2] = 2.0;
+ float s = 0.0;
+ for(int i=0; i<3; ++i)
+ s += a[i];
+ gl_Position = vec4(s);
+}
+
+/* Expected output: vertex
+void main()
+{
+ float a[3];
+ a[0] = 0.0;
+ a[1] = 1.0;
+ a[2] = 2.0;
+ float s = 0.0;
+ for(int i = 0; i<3; ++i)
+ s += a[i];
+ gl_Position = vec4(s);
+}
+*/