Как получить высоту и ширину экрана в C

Я получаю следующий код.

typedef struct _display {
int fd;         /* Network socket. */
Window root;        /* Root window id. */
int vnumber;        /* X protocol version number. */
int dtype;      /* X server display device type. */
int dplanes;        /* Number of display bit planes. */
int dcells;     /* Number of display color map cells. */
_QEvent *head, *tail;   /* Input event queue. */
int qlen;       /* Length of input event queue */
int request;        /* Id of last request. */
char * lastdraw;    /* Last draw request. */
char *buffer;       /* Output buffer starting address. */
char *bufptr;       /* Output buffer index pointer. */
char *bufmax;       /* Output buffer maximum+1 address. */
int squish;     /* Squish MouseMoved events? */
Pixmap black, white;    /* Constant tile pixmaps */
char *displayname;  /* "host:display" string used on this connect*/
int width, height;  /* width and height of display */
} Display;

Но чего я не понимаю, так это того, где X получает ширину и высоту монитора. Может ли кто-нибудь узнать ответ или указать мне правильное направление?

Спасибо, Арч


person Archxiao    schedule 25.01.2013    source источник
comment
В последней строке два атрибута: ширина и высота дисплея. Это не работает?   -  person junix    schedule 25.01.2013


Ответы (2)


Получение размера экрана

person rashok    schedule 25.01.2013
comment
Так он анализирует Xrandr для размера экрана? - person Archxiao; 25.01.2013
comment
Неважно, спасибо за этот указатель (ха-ха, понял? Я сделал справочник по программированию...) Теперь я понял! - person Archxiao; 25.01.2013
comment
@Archxiao Размер экрана для всего дисплея не имеет смысла, поэтому вам лучше ни в чем не полагаться на эти значения. Кстати, где вы взяли такой заголовок? У меня здесь другое определение (libx11 1.5.0), без ширины и высоты. (Кстати, разные реализации Xlib могут иметь совершенно разные внутренние структуры). - person Anton Kovalenko; 25.01.2013
comment
Я получил свой от более ранней версии XServer (X.V10R3). - person Archxiao; 26.01.2013
comment
Linux ответ ушел. ;) :/ - person Eric Sebasta; 15.08.2020

Почему бы не получить атрибуты корневого окна?

XWindowAttributes ra;
XGetWindowAttributes(dpy, DefaultRootWindow(dpy), &ra);
w = ra.width;
h = ra.height;
person sikerbela    schedule 21.11.2016