Bool DMXGetScreenAttributes(Display *dpy, int screen, DMXScreenAttributes *attr);
The DMXScreenAttributes structure is:
typedef struct { char *displayName; int logicalScreen; unsigned int screenWindowWidth; unsigned int screenWindowHeight; int screenWindowXoffset; int screenWindowYoffset; unsigned int rootWindowWidth; unsigned int rootWindowHeight; int rootWindowXoffset; int rootWindowYoffset; int rootWindowXorigin; int rootWindowYorigin; } DMXScreenAttributes;
displayName is the name used to open the display, either from the Xdmx(1) command-line or from the configuration file.
logicalScreen is the value of the screen that that Xdmx(1) server exports to clients. When Xinerama is in use, this value is typically 0 for all values of physicalScreen. If Xinerama is in use, rootWindowXorigin and rootWindowYorigin specify where the physical screen is positioned in the global Xinerama coordinate system. Otherwise, these values are set to 0.
screenWindowWidth, screenWindowHeight, screenWindowXoffset, and screenWindowYoffset are a geometry specification (see X(7x)) for the location of the DMX screen on the back-end screen. The coordinant system of the back-end display is used for these values.
rootWindowWidth, rootWindowHeight, rootWindowXoffset, and rootWindowYoffset are a geometry specification (see X(7x)) for the location of the root window on the screen window. The coordinant system of the screen window is used. In most cases, the root window will have the same geometry as the DMX screen window, and will occupy the same area of the back-end display. (This would not be the case, for example, if automatic projector alignment is used.)
DMXGetScreenAttributes() can generate BadValue errors.