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.

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.