да. Я пробовал оба, используя «XGetWindowAttributes ()» и «XGetGeometry ()», но он дает только значение x, y всегда 0,0.
Но когда я переместил свое окно в середину всего экрана, в этом случае мое возвращаемое значение должно быть 800, 450 вокруг этих значений, если мое разрешение экрана равно 1600, 900. Однако оно всегда возвращает 0,0.
Ниже приведен код, который я тестировал, а ниже я прикрепил фотографию, на которой нарисованная красная точка объясняет точку в координатах 2D-экрана, которую я хочу получить.
int* getWindowPos(Display *dpy, Window *curWin) {
int winPos[2];
unsigned int width, height, bwidth, depth;
Window root;
root = XRootWindow(GLWin.dpy, 0);
// Window myWin;
// myWin = XRootWindow(dpy, 0);
//XWindowAttributes xwa;
//XGetWindowAttributes(dpy, *curWin, &xwa);
XGetGeometry(dpy, *curWin, &root, &winPos[0], &winPos[1], &width, &height, &bwidth, &depth );
// printf("%d %d\n", xwa.x, xwa.y);
return winPos;
}