Solaris Handbook for Sun Frame Buffers

Hardware Window IDs

Each window requires a hardware Window ID (WID) to display the contents of its pixels.

Note -

Do not confuse the term Window ID used in this context with the X protocol term window ID. An X protocol window ID is an XID which uniquely identifies a window. A hardware window ID is a value rendered into the frame buffer that controls window appearance.

Some overlay pixel codes are treated as opaque pixels, which display visible colors. Other overlay pixel codes are used to control the display attributes of underlay windows. These codes are referred to as hardware window IDs (WIDs). Specifically, a certain number of codes at the high end of the colormap (toward 255) are used as WIDs. The actual number of WIDs is configurable through the ffbconfig -maxwids option. For each overlay code used as a WID, the number of overlay colormap entries is reduced by one. The default value of maxwids is 32, so there are 224 opaque pixel values in the overlay.

One hardware WID is always reserved for windows of the default visual. The remaining WIDs are assigned on a priority basis to windows that have the following characteristics:

Non-default visual windows can share a WID with other windows of the same visual. However, like unique WID windows, double buffered windows always require a unique dedicated WID.

Creating these types of windows reduces the number of other types of windows that can be created. If all available WIDs are assigned, the call to XCreateWindow will return a BadAlloc failure.

maxwids must be a power-of-two. Thus, legal values for maxwids are: 1, 2, 4, 8, 16, and 32. The default value of maxwids is 32.

Reducing maxwids increases the number of opaque color pixels in the overlay visual but reduces the number of XGL, double buffered, and non-default visual windows that the user can create.