Ну, сначала посмотрите Википедия . jshort
на самом деле является short
(со знаком), поэтому для его преобразования вам нужно обработать отрицательные значения.
Почему бы не использовать jchar
, поскольку он отображается непосредственно на unsigned short
- тогда вы можете разыгрывать напрямую.
jchar jC = ....;
GLushort s = (GLushort) jC;