mirror of
https://github.com/KhronosGroup/glslang
synced 2024-11-08 19:40:06 +00:00
e5921f1309
This fixes defects as follows: 1. handleLvalue could be called on a non-L-value, and it shouldn't be. 2. HLSL allows unary negation on non-bool values. TUnaryOperator::promote can now promote other types (e.g, int, float) to bool for this op. 3. HLSL allows binary logical operations (&&, ||) on arbitrary types, similar (2). 4. HLSL allows mod operation on arbitrary types, which will be promoted. E.g, int % float -> float % float.
30 lines
403 B
GLSL
30 lines
403 B
GLSL
struct PS_OUTPUT
|
|
{
|
|
float4 Color : SV_Target0;
|
|
};
|
|
|
|
uniform int ival;
|
|
uniform int4 ival4;
|
|
uniform float fval;
|
|
uniform float4 fval4;
|
|
|
|
PS_OUTPUT main()
|
|
{
|
|
!ival; // scalar int
|
|
!ival4; // vector int
|
|
|
|
!fval; // scalar float
|
|
!fval4; // vector float
|
|
|
|
if (ival);
|
|
if (fval);
|
|
if (!ival);
|
|
if (!fval);
|
|
|
|
PS_OUTPUT psout;
|
|
psout.Color = 1.0;
|
|
return psout;
|
|
}
|
|
|
|
|