GLushort
- это тип UNSIGNED_SHORT
, который определен с типом unsigned short
и который, хотя C не гарантирует , OpenGL принимает как значение с диапазоном 2 ^ 16-1 ( Глава 4.3 спецификации). Практически во всех основных архитектурах это несколько опасное предположение также справедливо (я не знаю, где unsigned short
имеет другой размер).
Таким образом, вы можете использовать -1, но это неудобно, потому что у вас будет много приведений, и если вы забудете приведение, например, в операторе if()
, вы можете быть повезло и получите предупреждение компилятора о том, что "сравнение никогда не может быть правдой", или вы можете быть невезучим , и компилятор тихо оптимизирует ветку, после чего вы тратите дни на поиски причины, по которой Ваш, казалось бы, совершенный код выполняется неправильно. Или, что еще хуже, все это отлично работает в отладочных сборках и только бомбы в сборках выпуска.
Следовательно, использование 0xffff
, как советовал jv42, гораздо предпочтительнее, оно полностью избегает этой ловушки.