就像附上我的照片一样,我想获得“X 窗口中每个角落的窗口窗口的屏幕坐标”。(我在下图中绘制了我想要作为屏幕坐标的红点。我稍后要做的是在 2D 屏幕坐标中获取我的 OpenGL 窗口的精确中间点。
我已经尝试过以下代码:
int* getWindowPos(Display *dpy) { int winPos[2];
Window myWin; myWin = XRootWindow(dpy, 0); XWindowAttributes xwa; XGetWindowAttributes(dpy, myWin, &xwa); // printf("%d %d\n", xwa.x, xwa.y); return winPos; }
但是这个“XWindowAttributes”总是给我x点0,y点0,宽度1600和高度900,这与我的屏幕分辨率相同。
以下是我为创建这个窗口窗口而编写的代码。
GLWin.win = XCreateWindow(GLWin.dpy, RootWindow(GLWin.dpy, vi->screen), 0, 0, 800, 600, 0, vi->depth, InputOutput, vi->visual, CWBorderPixel | CWColormap | CWEventMask, &GLWin.attr);