Support

Mox (Multiple Overlay Extension)

  • Support
  1. MOX

  2. Why Use MOX?

  3. How Does MOX work?

  4. MOX Capabilities

  5. Layering

  6. X11  Extensio

 

1. The Multiple Overlay Extension (MOX)

The MOX extension is an open industry standard with several benefits to developers such as improved flexibility and maintainability. MOX was  presented to the X Consortium and published in the May 1996 issue of  the X Journal. As the name suggests, MOX offers multiple overlay or underlay layers which can be flexibly managed, without being dependent on the graphics hardware of any particular vendor. More information can be displayed at a time since MOX-compliant hardware has more than the typical 8 bits per pixel and 256 colors. Additionally, it provides and enforces discipline in managing layers of information that make them inherently dynamic. This dramatically reduces software development time, especially when layers need to be re-prioritized. With a significant portion of the development for multi-layering already provided by the MOX server implementation, there is less code for the software developer  to write and maintain. The X server hides the details of the complexity. The architecture that MOX provides for layering makes it simpler for developers to manage independent layers and their colors. MOX also helps  manage the color resources more efficiently. Following Q&A should  help answer many of the questions that you may have about this powerful  extension.

 

 

2. Why Use MOX?

MOX Reduces Development Time

In ATC applications, the information that needs to be displayed is multi-layered. At the lowest level, you have maps. On top of that, you have weather, on top of which you have airplane tracks, on top of which you have menus, etc. Without a system like MOX, the developer has to invent his own  less efficient ways of doing this which not only require more development effort but also result in poorer performance. MOX provides a standardized framework that takes care of much of the thinking and implementation of this already so that the programmer can concentrate on the information that needs to be displayed.

MOX Reduces Complexity of Software

With a significant portion of the development for multi-layering already  provided by MOX, there is less code for the developer to write and maintain. The server hides the details of the complexity. The system that MOX provides for layering makes it simpler for developers to manage independent layers and their colors. Reduced complexity increases software maintainability.

MOX Increases Software Flexibility

In a typical layered system, reordering the layers may take significant development effort. MOX allows the layers to be reordered in any way desired with minimal software changes.

Standardization of Tools/Cross-Platform Compatibility

MOX is a standardized system, with a standardized behavior and published  interface. Software written to work with one MOX server will work with  any other MOX server. This sort of standardization also promotes code reuse in the development of new projects. Developers who have to solve the problem of layering each time for their unique application needs have to reinvent the wheel every time. MOX eliminates the need to continually redesign software applications.

 

 

3. How Does MOX Work?

EIZO Rugged Solutions cards are able to do complex multiple overlays because of special hardware. This hardware samples pixel data from the frame-buffer as  it’s being read from memory for display and determines using a priority encoder which part of it is to be displayed. The result of the priority encoder is used to select a pattern in the pixel encoder which rearranges the bits in the pixel and produces color palette indexes. The palette indexes are used to look up an actual color to be displayed, and this value is given to the DAC.

 

 

4. MOX Capabilities

Transparent Windows

EIZO Rugged Solutions X11R6.1 software uses a special dual-screen system that places one transparent overlay screen over another. This system is functionally transparent to the user because actions performed on the root window of the overlay are forwarded to the underlay so that no special software considerations are needed in order to deal with actions performed on underlay windows. The transparent window facility can interact with other MOX facilities. Transparent windows are typically used for menus which must be placed on top of other important items on the screen without obscuring them.

Overlays and Underlays

The primary goal of MOX is to provide a convenient mechanism to managing  overlays and underlays. These act like layers of cellophane which lie in front of or behind your normal drawing areas. Things drawn to an overlay do not destroy but only mask what is below them. When transparent pixels are drawn to the overlay, then what was drawn below reappears unharmed.

Color Management

Colors displayed in overlays and underlays have to be managed in a special  way because they are not part of the regular X11 color management system. MOX provides convenient and efficient facilities for handing multiple layered color maps.

Blinking Colors

MOX has a special facility which allows you to set blink rate parameters  and alternate colors for any Normal or MOX color that can be displayed on the screen. This is done using the Raptor 1000/2000 hardware and  so has no noticeable impact on system performance.

Software Brightness Control

MOX provides a simple facility for controlling the brightness of the entire display. This feature is a global setting and has no impact on application programs. No knowledge of this feature is required by applications that  are affected by it. Naturally, the controlling client will need to use  the extension.

 

 

5. Layering

Layers

A pixel is just a group of bits, and the meanings of those bits can be  assigned arbitrarily. In MOX, a layer is a small group of those bits, assigned to contain the color information for a particular overlay or  underlay plane. MOX partitions the pixel into slices which are managed separate.

Color Management

MOX layers must have colors assigned to the pixel values that you can place in them. EIZO Rugged Solutions uses special hardware that allows the bits in each layer to be isolated and assigned a section of the color palette. This  makes much more efficient use of the color palette space than other methods of plane-slicing, and operates more efficiently.

Layer Sets

MOX  deals with layers in sets. A set of layers is called a layer set, and a layer set is composed of sublayers. These sets can be manipulated as atomic units, all sublayers being drawn to at once, or the sublayers can be drawn to separately. Although separate sublayers are assigned separate parts of the color palette, the MOX library manages all colors for an entire layer set together. Whole layer sets are assigned priority values which indicate their relative placement above and below each other.

The Normal Layer

In a normal X server, information drawn to the screen is represented in a frame buffer that normal X clients are written to understand and deal with. In a sense, this normal frame buffer is a single layer which contains pixel values that represent colors on the screen, and that is exactly how MOX treats it. The Normal layer is what MOX-unaware X clients draw to and is treated as an 8-bit pseudo-color layer with an absolute priority of zero. The only difference between this and a non-MOX server is that  a pixel value of zero is transparent and allows one to see through to  the underlays.

Absolute Layer Sets

There  are two kinds of layer sets. An Absolute layer set has a non-zero priority that places it above or below the Normal layer. It spans the whole screen and is totally independent of any layer set. To draw to an Absolute layer set, one should draw to the root window with IncludeInferiors set in the GC.

Group Layer Sets

All Group layer sets have a priority of zero, placing them at the same level  as the Normal layer. Like Absolute layer sets, each can have multiple sublayers with their relative priorities within the set. But unlike Absolutely layer sets, they do not have priority relative to each other. Although two adjacent pixels can be from two different Group layer sets, a single pixel cannot contain colors from more than one Group layer set. Two Group layer sets are mutually exclusive, and the Normal layer and Group layer sets are mutually exclusive. This means that MOX can make efficient use of bits in the pixel by reusing the same bits in  more than one Group layer set and in the Normal layer, using ID bits like window-ID’s to distinguish between them.

 

 

6. X11 Extension

MOX is an extension to the X11R6.1 server. It is made to be an integral  part of the server and is intended to give X clients access to the special capabilities of EIZO Rugged Solutions hardware. X clients communicate with the extension through a set of library routines that are consistent with normal XLib calls in form and communicate with the server in the same way. The MOX library is a standardized interface which remains the same across all EIZO Rugged Solutions X11R6.1 servers which support MOX.