Change back-end screen attributes
int DMXChangeScreensAttributes(Display *dpy, int screen_count, int *screens, int mask_count, unsigned int *masks, DMXScreenAttributes *attr, int *error_screen);
DMXChangeScreensAttributes() changes the geometries and positions of the DMX screen and DMX root windows on the back-end X servers. screen_count specifies the number of screens to be changed. For each screen, the screen number is placed in screens, an attribute mask is placed in masks, and a DMXScreenAttributes structure is included in attr.
An explanation of the DMXScreenAttributes structure is given in DMXGetScreenAttributes(3).
The values that are used to compute each value in masks are as follows
DMXScreenWindowWidth DMXScreenWindowHeight DMXScreenWindowXoffset DMXScreenWindowYoffset DMXRootWindowWidth DMXRootWindowHeight DMXRootWindowXoffset DMXRootWindowYoffset DMXRootWindowXorigin DMXRootWindowYorigin
In general, mask_count should be equal to screen_count. However, as a convenience, mask_count may be less than screen_count, and the last entry in masks will then be used for all of the remaining screens. For example, this allows identical changes to be made to several screens using only one mask.
On success, 0 is returned. Otherwise, error_screen is set to the value of the first screen in the list that caused the error and a non-zero value is returned. If screen_count or mask_count is less than 1, or if any of the attribute values are not within the appropriate bounding boxes, DmxBadValue is returned. If a protocol error occurs, DmxBadReply is returned.
DMXChangeScreensAttributes() can generate BadLength (if the data provided does not match the data implicitly required by the screen_count and mask_count values), BadValue (if the values in screens are not valid), and BadAlloc errors.