Это никогда не должно было сработать.
Разделенный запятыми список значений в скобках в (float4)(1,2,3,4)
обрабатывается как приложение оператора запятой , а не списка параметров для конструктора, посколькуВы также заключили тип в скобки.Существует множество способов инициализации float4
из 1 или 4 компонентов.Они производят вектор {1, 2, 3, 4}:
float4 f = float4(1, 2, 3, 4);
float4 f(1, 2, 3, 4);
float4 f = (float4){ 1, 2, 3, 4 };
float4 f{1, 2, 3, 4};
float4 f = { 1, 2, 3, 4 };
и производят вектор {1, 1, 1, 1}:
float4 f = { 1 };
float4 f(1);
float4 f = 1;
float4 f = (float4)1;
Ваш пример,хотя синтаксически действителен, не дает ожидаемого результата, потому что этот синтаксис не означает, что вы думаете, что он делает.