从 XDrawString手册页看来,它接受签名的 32 位 x 和 y 坐标
int XDrawString(Display *display, Drawable d, GC gc, int x, int y, char *string, int length);
注意 x 和 y 都是 int (即:至少在 gcc/linux2.6-i386 上的 32 位有符号整数)
问题是当我通过y = 32767
( 2^15 - 1) 时,字符串被绘制在正确的位置,但任何高于此值的字符串都不会被绘制。
我怀疑内部没有使用 32 位整数,而是使用 16 位有符号整数作为坐标。
鉴于手册页似乎表明该函数接受 32 位整数,是否需要打开一些编译选项以允许使用更长的整数?或者这是 Xlib 的限制?