Issue #28: Correctly handle a single input argument conversion when the input argument is an aggregate.
This commit is contained in:
@@ -187,6 +187,14 @@ Shader version: 400
|
|||||||
0:62 Construct vec4 (temp 4-component vector of float)
|
0:62 Construct vec4 (temp 4-component vector of float)
|
||||||
0:62 Convert int to float (temp float)
|
0:62 Convert int to float (temp float)
|
||||||
0:62 'color' (temp int)
|
0:62 'color' (temp int)
|
||||||
|
0:66 Function Definition: aggCall( (global void)
|
||||||
|
0:66 Function Parameters:
|
||||||
|
0:? Sequence
|
||||||
|
0:69 Function Call: m(vf2; (global 3-component vector of float)
|
||||||
|
0:69 Convert int to float (temp 2-component vector of float)
|
||||||
|
0:69 Construct ivec2 (temp 2-component vector of int)
|
||||||
|
0:69 Convert float to int (temp int)
|
||||||
|
0:69 'F' (temp float)
|
||||||
0:? Linker Objects
|
0:? Linker Objects
|
||||||
0:? 'u' (uniform float)
|
0:? 'u' (uniform float)
|
||||||
|
|
||||||
@@ -380,6 +388,14 @@ Shader version: 400
|
|||||||
0:62 Construct vec4 (temp 4-component vector of float)
|
0:62 Construct vec4 (temp 4-component vector of float)
|
||||||
0:62 Convert int to float (temp float)
|
0:62 Convert int to float (temp float)
|
||||||
0:62 'color' (temp int)
|
0:62 'color' (temp int)
|
||||||
|
0:66 Function Definition: aggCall( (global void)
|
||||||
|
0:66 Function Parameters:
|
||||||
|
0:? Sequence
|
||||||
|
0:69 Function Call: m(vf2; (global 3-component vector of float)
|
||||||
|
0:69 Convert int to float (temp 2-component vector of float)
|
||||||
|
0:69 Construct ivec2 (temp 2-component vector of int)
|
||||||
|
0:69 Convert float to int (temp int)
|
||||||
|
0:69 'F' (temp float)
|
||||||
0:? Linker Objects
|
0:? Linker Objects
|
||||||
0:? 'u' (uniform float)
|
0:? 'u' (uniform float)
|
||||||
|
|
||||||
|
|||||||
@@ -61,3 +61,10 @@ void main()
|
|||||||
|
|
||||||
gl_FragColor = vec4(color);
|
gl_FragColor = vec4(color);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
vec3 m(vec2);
|
||||||
|
void aggCall()
|
||||||
|
{
|
||||||
|
float F;
|
||||||
|
m(ivec2(F)); // test input conversion of single argument that's an aggregate; other function tests in 120.vert
|
||||||
|
}
|
||||||
|
|||||||
@@ -1239,6 +1239,9 @@ void TParseContext::addInputArgumentConversions(const TFunction& function, TInte
|
|||||||
// convert to the correct type.
|
// convert to the correct type.
|
||||||
arg = intermediate.addConversion(EOpFunctionCall, *function[i].type, arg);
|
arg = intermediate.addConversion(EOpFunctionCall, *function[i].type, arg);
|
||||||
if (arg) {
|
if (arg) {
|
||||||
|
if (function.getParamCount() == 1)
|
||||||
|
arguments = arg;
|
||||||
|
else {
|
||||||
if (aggregate)
|
if (aggregate)
|
||||||
aggregate->getSequence()[i] = arg;
|
aggregate->getSequence()[i] = arg;
|
||||||
else
|
else
|
||||||
@@ -1248,6 +1251,7 @@ void TParseContext::addInputArgumentConversions(const TFunction& function, TInte
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Add any needed implicit output conversions for function-call arguments. This
|
// Add any needed implicit output conversions for function-call arguments. This
|
||||||
|
|||||||
Reference in New Issue
Block a user