就像附上我的照片一样,我希望得到“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”总是给我0点x点,0点y点,宽度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);
答案 0 :(得分:3)
您将窗口存储到GLWin.win
,但是正在查询根窗口的大小和位置。 “根窗口”是全屏幕背景窗口(桌面),因此它返回屏幕分辨率是有意义的。如果您需要这些尺寸,只需将实际窗口(GLWin.win)传递给XGetAttributes()
。