mirror of
https://github.com/KhronosGroup/glslang
synced 2024-11-08 19:40:06 +00:00
Issue #28: Correctly handle a single input argument conversion when the input argument is an aggregate.
This commit is contained in:
parent
efb8461722
commit
8ba301c7c2
@ -187,6 +187,14 @@ Shader version: 400
|
||||
0:62 Construct vec4 (temp 4-component vector of float)
|
||||
0:62 Convert int to float (temp float)
|
||||
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:? 'u' (uniform float)
|
||||
|
||||
@ -380,6 +388,14 @@ Shader version: 400
|
||||
0:62 Construct vec4 (temp 4-component vector of float)
|
||||
0:62 Convert int to float (temp float)
|
||||
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:? 'u' (uniform float)
|
||||
|
||||
|
@ -61,3 +61,10 @@ void main()
|
||||
|
||||
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,10 +1239,14 @@ void TParseContext::addInputArgumentConversions(const TFunction& function, TInte
|
||||
// convert to the correct type.
|
||||
arg = intermediate.addConversion(EOpFunctionCall, *function[i].type, arg);
|
||||
if (arg) {
|
||||
if (aggregate)
|
||||
aggregate->getSequence()[i] = arg;
|
||||
else
|
||||
if (function.getParamCount() == 1)
|
||||
arguments = arg;
|
||||
else {
|
||||
if (aggregate)
|
||||
aggregate->getSequence()[i] = arg;
|
||||
else
|
||||
arguments = arg;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user