Вот так как было по-моему неправильно.
X++:
_glClearColor.call(r.float(red), g.float(green), b.float(blue), a.float(alpha));
float в классе COMVariant - это property, а если в property передать параметр, то оно вернет 0;
X++:
return _glClearColor.call(r.int(), g.int(), b.int(), a.int());
а если поставить r.float() - будет работать?