Chapter 6. Configuration File Format

This chapter contains the following topics:

File Format

This section describes the format you must use to create an MPK configuration file. The format of the configuration file closely follows the conventions for the Open Inventor file format. The following items are described:

Specifying Comments (#)

MPK considers any items between a number sign (#) and the end of the line to be a comment. The number sign can be anywhere on the line.

Specifying Delimiters

White space delimits most elements in the configuration file—for example, a field name and its value. Exceptions are noted where they apply. Extra white space created by spaces, tabs, and new lines is ignored.

Specifying MPK Data Structures

An MPK data structure consists of the following sequence of elements:

  1. Data structure type (config, pipe, window, channel, or compound)

  2. Open brace ({)

  3. Field specifications (if any), followed by child structures (if any)

  4. Close brace (})

The following lines show the syntax symbolically:

data-structure-type {
    field-specs
    child-specs
}

The following is an example of a channel data structure:


channel {
    viewport        [ 0., 0., 1., 1. ]
    projection {
        origin      [ 0., 0., 0. ]
        distance    3.
        fov         [ 54., 47. ]
        hpr         [ 0., 0., 0. ]
    }
}

The later section “Defining MPK Data Structures” describes the special requirements for defining each of the data structures.

Specifying Values within a Field

There are three types of MPK fields:

  • Single-value fields

    These fields have the following syntax:

    name value

  • Multiple-value fields

    These fields have the following syntax:

    name [value1, value2, . . . valuen]

  • Composite fields

    These fields have the following syntax:

    name {
      subfields-specs
    }

The fields can appear in any order.

The values you specify in a field are determined by the field type. The field types and accepted formats are described in Table 6-1.

Table 6-1. Field Types and Formats

Field Type

Accepted Format

int

Use an integer in decimal, hexadecimal, or octal format. Examples:

55

0xff

0177

float

Use an integer or floating point number. Examples:

10

10.

10.3

1.3e–2

string

Use double quotation marks (“ “) around the value. Example:

name “3-pipes”

enum

Use a mnemonic. Examples:

true-color

direct-color

boolean

Use a mnenomic (y or n) or an integer (0 or 1).


Defining MPK Data Structures

The earlier section “Specifying MPK Data Structures” describes the general format of an MPK data structure as follows:

data-structure-type {
    field-specs
    child-specs
}

This section describes the field specifications and child specifications required to define the following MPK data structures:

  • config

  • pipe

  • window

  • channel

  • compound

Additionally, you can include a global data structure to define defaults for global attributes. The later section “Specifying Global Attributes” describes how you do so.

The config Data Structure

The config data structure encapsulates the other data structures and as such defines the overall configuration. It has the following form:

config {
    name     “config-name”
    mode     stereo-mono
    mono     “shell command1”
    stereo   “shell command2”
    runon    processor-spec
    pipe-1-specs
    pipe-2-specs
         .
         .
         .
    pipe-n-specs
    compound-specs
}

Every config data structure requires a pipe data entry for each pipe you want to use in your system. Section “The pipe Data Structure” describes the pipe-i-specs fields, section“The compound Data Structure” describes the compound-specs field, and Table 6-2 describes the other config fields.

Table 6-2. The config Fields

Field

Description

name

The name field is a string identifier for the current configuration.

mode

The mode field characterizes the initial configuration state: either mono or stereo.

mono
stereo

These fields describe the shell command to execute when changing to mono or stereo mode. By default, no command is executed.

runon

If the runon field contains a processor ID, that processor becomes the default processor for all configuration threads—that is, the processor to which every window thread will be assigned, unless specified otherwise by the window runon field. A runon value of –1 means the thread is bound to a processor according to the default run-on policy. If the value is set to auto, MPK will bind the window thread to a processor on the node for this pipe, if possible. If the value is set to free, the operating system decides on what processor to execute the thread. The default is –1.


The pipe Data Structure

A pipe data structure has the following form:

pipe {
    namepipe-name    display          “display-name”
    attributes {
        mono {
            width     w
            height    h
        }
        stereo {
            type      stereo-type
            width     w
            height    h
            offset    o
        }
    }
    window-spe
}

Every pipe data structure must contain a window entry. The section “The window Data Structure” describes the window-specs field. Table 6-3 describes the other fields of a pipe data structure.

Table 6-3. The pipe Fields

Field

Description

name

The name field is a string identifier for the current pipe.

display

The display field specifies the name of the X display for the current pipe.

attributes

The attributes field is a composite field with the following subfields:

mono
stereo

These subfields are in turn composite fields. The subfield mono has the following fields:

width w
height h

The values for w and h must be integers. The subfield stereo has the following fields:

type stereo-type

width w
height h

offset o

The values for w, o, and h must be integers. The value for stereo-type can be one of the following:

quad
rect
top
bottom
user

If no stereo type is specified, quad is used.

Example 6-1 is an example of a pipe definition:

Example 6-1. A Sample pipe Definition

pipe { 
    display     “:0.0”
    window {
        runon       2
        viewport    [ 0., 0., 1., 1. ]
        channel {
            viewport        [ 0., 0., 1., 1. ]
            projection {
                origin      [ 0., 0., 0. ]
                distance    3.
                fov         [ 54., 47. ]
                hpr         [ 0., 0., 0. ]
            }
        }
    }
}


The window Data Structure

A window data structure has the following form:

window {
    namewin-nameviewport   [x, y, width, height]
    runon             processor-spec
    attributes  attribute-specs
    channel-specs
}

Every window data structure requires a channel entry. The section “The channel Data Structure” describes the channel-specs field. Table 6-4 describes the other fields of a window data structure.

Table 6-4. The window Fields

Field

Description

name

The name field is a string identifier for the current window.

viewport

The viewport field specifies the fractional viewport (position and size) of the current window relative to the display dimensions. The fractional viewport format is [ x, y, width, height ] with all parameters in the range 0.0 to 1.0.

See the section “Specifying Global Attributes”

 for more information on the following related global variables:

MPK_PATTR_MONO_HEIGHT
MPK_PATTR_MONO_WIDTH
MPK_PATTR_STEREO_HEIGHT
MPK_PATTR_STEREO_OFFSET
MPK_PATTR_STEREO_TYPE
MPK_PATTR_STEREO_WIDTH

runon

If the runon field contains a processor ID, that processor will be the default processor for the current window thread—that is, the processor to which the window thread will be assigned. A runon value of -1 means the thread is bound to a processor according to the default run-on policy. If the value is set to auto, then MPK will bind the window thread to a processor on the node for this pipe, if possible. If the value is set to free, then the operating system decides on what processor to execute the thread. The default is –1.

attributes

The attributes field specifies the X Window System default visual attributes and other related information, such as whether window managers decorations should be present or not.

The attributes field is a composite field with the following subfields:

hints
planes
transparent

These subfields are in turn composite fields. which are described in the tables that follow.

Table 6-5 describes the structure and values of the hints subfields.

Table 6-5. Window Attributes— hints Subfields

Subfield

Valid Values

Description

visual

true-color
pseudo-color
direct-color
static-color
grayscale
static-gray

Specifies the type of GLX visual to be used.

Related global variable:

MPK_WATTR_HINTS_VISUAL

caveat

none
slow
non-conformant

Specifies a caveat for selecting the framebuffer, such as one of the following:

MPK_GLX_SLOW
MPK_GLX_NON_CONFORMANT
MPK_GLX_NOCAVEAT

Related global variable:

MPK_WATTR_HINTS_CAVEAT

transparent

y or n

Determines if a visual should be opaque or transparent.

Related global variable:

MPK_WATTR_HINTS_TRANSPARENT

X-renderable

y or n

Determines which visuals are selected. If true, only visuals which have an associated X visual are selected.

Related global variable:

MPK_WATTR_HINTS_X_RENDERABLE

rgba

y or n

Specifies if an RGBA or color-index visual is selected.

Related global variable:

MPK_WATTR_HINTS_RGBA

doublebuffer

y or n

Specifies if a double- or single-buffer visual is selected.

Related global variable:

MPK_WATTR_HINTS_DOUBLEBUFFER

stereo

y or n

Specifies if a stereo-capable visual is selected

Related global variable:

MPK_WATTR_HINTS_STEREO

drawable

window
pbuffer
pixmap
none

Specifies the type of drawable to be used for rendering. For the value none, MPK executes no draw operation.

Related global variable:

MPK_WATTR_HINTS_DRAWABLE

direct

y or n

Specifies if a direct or indirect context is created.

Related global variable:

MPK_WATTR_HINTS_DIRECT

largest

y or n

Determines whether the largest available pbuffer is allocated. It will be if a pbuffer drawable is used and this flag is set.

Related global variable:

MPK_WATTR_HINTS_LARGEST

preserved

y or n

Determines whether the content of the framebuffer is preserved. It will be if a pbuffer drawable is used and this flag is set.

Related global variable:

MPK_WATTR_HINTS_PRESERVED

decoration

y or n

Determines if the window should have window manager decorations.

Related global variable:

MPK_WATTR_HINTS_DECORATION

Table 6-6 describes the structure and values of the planes subfields. In all instances in this table, the variables denote integers.

Table 6-6. Window Attributes—planes Subfields

Subfield

Valid Values

Description

level

x

Specifies the buffer level. Positive values correspond to overlay buffers and negative values correspond to underlay buffers.

Related global variable:

MPK_WATTR_PLANES_LEVEL

depth

x

Specifies the minimum depth buffer size.

Related global variable:

MPK_WATTR_PLANES_DEPTH

stencil

x

Specifies the minimum stencil buffer size.

Related global variable:

MPK_WATTR_PLANES_STENCIL

samples

x

Specifies the minimum number of multi-sample buffers.

Related global variable:

MPK_WATTR_PLANES_SAMPLES

auxiliary

x

Specifies the minimum number of auxiliary buffers.

Related global variable:

MPK_WATTR_PLANES_AUX

color

x

Specifies the minimum color-index buffer size.

Related global variable:

MPK_WATTR_PLANES_COLOR

rgba

[r, g, b, a]

Specifies the minimum RGBA buffer size.

Related global variables:

MPK_WATTR_PLANES_RED
MPK_WATTR_PLANES_GREEN
MPK_WATTR_PLANES_BLUE
MPK_WATTR_PLANES_ALPHA

accum

[r, g, b, a]

Specifies the minimum RGBA accumulation buffer size.

Related global variables:

MPK_WATTR_PLANES_ACCUM_RED
MPK_WATTR_PLANES_ACCUM_GREEN
MPK_WATTR_PLANES_ACCUM_BLUE
MPK_WATTR_PLANES_ACCUM_ALPHA

Table 6-7 describes the structure and values of the transparent subfields. In all instances in this table, the variables denote integers.

Table 6-7. Window Attributes—transparent Subfields

Subfield

Valid Values

Description

index

x

Specifies the index value for the transparent color.

Related global variables:

MPK_WATTR_TRANSPARENT_INDEX

rgba

[r, g, b, a]

Specifies the RGBA value for the transparent

color.

Related global variables:

MPK_WATTR_TRANSPARENT_RED
MPK_WATTR_TRANSPARENT_GREEN
MPK_WATTR_TRANSPARENT_BLUE
MPK_WATTR_TRANSPARENT_ALPHA


The channel Data Structure

A c hannel data structure has the following form:

channel {
    namechannel-nameviewport   [x,y, width, height]
    ortho-wall  ortho-wall-specs
    wall        wall-specs
    projection  projection-specs
          channel-attrs

}

In the context of framebuffer resources, the channel data structure is conceptually the lowest level in the config-pipe-window-channel hierarchy. Functionally, however, the channel data structure has a child, attributes, shown as channel-attrs in the preceding syntax description. The attributes data structure has the following syntax:

attributes {
    read {
        depth {
            format  GL-format-enum
            type    GL-type-enum
        }
        color {
            format  GL-format-enum
            type    GL-type-enum
        }
        stencil {
            format  GL-format-enum
            type    GL-type-enum
        }
    }
}

Table 6-8 describes the fields of a channel data structure.

Table 6-8. The channel Fields

Field

Description

name

The name field is a string identifier for the current channel. You must specify the name field if your configuration file contains a compound that references this channel.

viewport

The viewport field specifies the fractional viewport (position and size) of the channel relative to the parent window dimensions. The fractional viewport format is [ x, y, width, height ] with all parameters in the range 0.0 to 1.0.

wall

The wall field contains the modeling coordinates of the bottom-left, bottom-right, and top-left corners of the channel's projection rectangle in the real world.

This field is a composite field with the following subfields:

bottom_left [x, y, z]

bottom_right [x, y, z]

top_left [x, y, z]

See Example 3-1

 for an example of specifying the wall field.

You must specify one of the modeling coordinates fields: wall, projection, or ortho-wall. MPK uses the last specified modeling transformation—that is, either wall or projection—unless you set the channel to orthographic projection by specifying the ortho-wall field.

ortho-wall

The ortho-wall field contains an alternate wall description that, if specified, will be used when the channel orthographic frustum is applied.

The format for the field values is the same as that of the wall field.

You must specify one of the modeling coordinates fields: wall, projection, or ortho-wall. MPK uses the last specified modeling transformation—that is, either wall or projection—unless you set the channel to orthographic projection by specifying the ortho-wall field.

projection

The projection field contains the modeling coordinates and characteristics of an imaginary projection system that would produce the channel's projection rectangle.

This is a composite field with the following subfields:

origin [x, y, z]
distance d
fov [a, b
]
hpr [h, p, r]

The hpr field represents the head, pitch, and roll and describes Euler angles with respect to the OpenGL convention—that is, the counter-clockwise rotation around the Y axis (head), X axis (pitch), and Z axis (roll) viewed from the positive side of the axis. See Example 3-2

 for an example of specifying the projection field.

You must specify one of the modeling coordinates fields: wall, projection, or ortho-wall. MPK uses the last specified modeling transformation—that is, either wall or projection—unless you set the channel to orthographic projection by specifying the ortho-wall field.

channel-attrs

The channel-attrs field is itself a data structure, attributes, with a single read field. The read field has subfields, which are described in Table 6-9

.

Table 6-9 describes the subfields of read, which is the single field for the attributes data structure.

Table 6-9. Channel Attributes—read Subfields

Primary Subfield

Secondary Subfield

Valid Values

Description

color

 

 

 

 

format

Any GL format enum

Defines the color format to be used by this channel when reading color images. The default value is GL_BGRA. See the glReadPixels man page for a list of supported values.

 

type

Any GL type enum

Defines the color type to be used by this channel when reading color images. The default value is GL_UNSIGNED_BYTE. See the glReadPixels man page for a list of supported values.

depth

 

 

 

 

format

Any GL format enum

Defines the depth format to be used by this channel when reading color images. The default value is GL_DEPTH_COMPONENT. See the glReadPixels man page for a list of supported values.

 

type

Any GL type enum

Defines the depth type to be used by this channel when reading color images. The default value is GL_FLOAT. See the glReadPixels man page for a list of supported values.

stencil

 

 

 

 

format

Any GL format enum

Defines the stencil format to be used by this channel when reading color images. The default value is GL_STENCIL_INDEX. See the glReadPixels man page for a list of supported values.

 

type

Any GL type enum

Defines the stencil type to be used by this channel when reading color images. The default value is GL_UNSIGNED_BYTE. See the glReadPixels man page for a list of supported values.


The compound Data Structure

A compound data structure is not a part of the pipe-window-channel hierarchy. The compound data structure is subordinate only to the config or another compound data structure.

A compound data structure has the following form:

compound {
    name        compound-name    channel     channel-name    mode        [ mode flags ]
    format      [ format1 format2 ... formatn ]
    split       “splitString    region      region-specs
}

Table 6-10 describes the fields of a compound data structure.

Table 6-10. The compound Fields

Field

Description

name

The name field is a string identifier for the current compound.

channel

The channel field identifies the destination channel for the compound. You must specify the name as defined in the name field of the associated channel data structure. If you do not specify this field and the compound has a parent, then its value is inherited from the parent. If the resulting channel is still unspecified, then the compound will simply maintain time consistency of the views across all of its regions with respect to their respective frame latency.

Once a channel is involved in a compound, you must explicitly specify any other use of that channel with another compound. This is true also for mode-selective compounds.

mode

The mode field specifies the decomposition mode (2D, 3D, CULL, DB, DPLEX, EYE, FSAA, or HMD) and optionally mode flags (ADAPTIVE, ASYNC, HW, MONO, NOCOPY, or STEREO). The following are examples:

mode [ 3D ]
mode [ DB MONO ]
mode [ EYE STEREO ASYNC ]
mode [ 2D ASYNC ]
mode [ DPLEX NOCOPY ]

For descriptions of the decomposition modes, see section “Building Compounds” in Chapter 4

.

For the use of 2D, FSAA, HW , DPLEX, and NOCOPY in scalable hardware solutions, see Chapter 5, “Using Scalable Graphics Hardware”

.

For the use of ADAPTIVE, see section “Automatic Load Balancing for Compounds” in Chapter 4

.

ASYNC indicates that the pixel transfer from the regions to the destination channel should be delayed to the next frame. Despite an additional one-frame latency, this setting may have a noticeable influence on the compound performance— especially for 2D and DB decompositions.

MONO or STEREO indicates that the decomposition should only be activated when the configuration is in the corresponding stereo mode. Note that a window containing only STEREO-active channels will simply not be launched when the configuration is in MONO mode.

NOCOPY indicates that no pixel transfer should occur between the compound and its regions; this is typically useful when you use hardware video compositing equipment.

 

format

The format field specifies the format of the pixel data that has to be transferred between the compound and its regions as a combination of COLOR, DEPTH, and STENCIL. It will be inherited by the compound regions. The following are the possible combinations:

format [ COLOR ] # default
format [ COLOR DEPTH ]
format [ COLOR DEPTH STENCIL ]

 

split

The split field specifies the tiling scheme (or z-axis split) used when the compound is used in ADAPTIVE mode. The split value is a string, as shown in the following example:

split “[[1 | 2] - [3 | 4]]”

The numbers 1, 2, 3, and 4 represent the regions in the compound (source channels). These numbers map the regions declared in the compound data structure in the order of declaration. All the regions declared in the compound data structure must be included into the split string.

The axis that is split is represented by the following operators:

|  axis x

 axis y

/  axis z

The split operators | and can be used only with 2D compounds and the operator /, only with 3D or DB compounds.

The formal syntax of the split field is following:

splitsplitString

splitString :[ group axis group]

group :region | splitString

axis  : `|' | `' | `/'

region : [ integer ]

For the use of the ADAPTIVE mode and examples of tiling schemes, see the section “Automatic Load Balancing for Compounds” in Chapter 4

.

region

The region field specifies a portion of the compound destination channel and the channel where this portion should be rendered. Depending on the compound mode field, the portion described can be either a sub-viewport of the destination channel [2D], a portion of the application database [DB or 3D], a specific eye view [EYE or HMD], a pipelined, de-multiplexed rendering cycle [DPLEX], or the operation to be executed [CULL]. The format for each follows:

2D:

viewport [ x, y ,width, height ]
channel “channel-name

2D HW NOCOPY:
display “display-name
viewport [ x, y ,width, height ]

CULL:

[cull |draw |cull-draw]

DB or 3D:

range [ a ,b ]
channel “channel-name

EYE

eye  left-right
channel “channel-name

HMD

eye  left-right
channel “channel-name

DPLEX

channel channel-name

See Chapter 4, “Compounds” for examples of compound definitions.

Specifying Global Attributes

A global data structure allows you to specify default values for MPK attributes:

  • Stereo and pipe display attributes

  • Window attributes

  • Channel attributes

To specify a default value for an attribute in the configuration file, use the following construct:

global {
         attribute1    value
         attribute2    value
       .
       .
       .
         attributen    value
}

Your default declarations should precede the definition of the config data structure in the configuration file. The following is an example of default declarations:

global {
    MPK_DEFAULT_EYE_OFFSET  .035   
    MPK_WATTR_PLANES_ALPHA  1     
}

Table 6-11 provides the data type, default value, and description for the MPK global attributes.

Table 6-11. MPK Global Attributes

Variable

Data Type

Default Value

Description

MPK_CATTR_FAR

float

100.

Specifies the default far distance of the channel. This value is preempted by the function mpkChannelSetNearFar().

MPK_CATTR_NEAR

float

0.01

Specifies the default near distance of the channel. This value is preempted by the function mpkChannelSetNearFar().

MPK_CATTR_READ_COLOR_FORMAT

Any GL format enum

GL_BGRA

Defines the default color format to be used by this channel when reading color images. See the glReadPixels man page for a list of supported values.

MPK_CATTR_READ_COLOR_TYPE

Any GL format enum

GL_UNSIGNED_BYTE

Defines the default color type to be used by this channel when reading color images. See the glReadPixels man page for a list of supported values.

MPK_CATTR_READ_DEPTH_FORMAT

Any GL format enum

GL_DEPTH_COMPONENT

Defines the default depth format to be used by this channel when reading color images. See the glReadPixels man page for a list of supported values.

MPK_CATTR_READ_DEPTH_TYPE

Any GL format enum

GL_FLOAT

Defines the default depth type to be used by this channel when reading color images. See the glReadPixels man page for a list of supported values.

MPK_CATTR_READ_STENCIL_FORMAT

Any GL format enum

GL_STENCIL_INDEX

Defines the default stencil format to be used by this channel when reading color images. See the glReadPixels man page for a list of supported values.

MPK_CATTR_READ_STENCIL_TYPE

Any GL format enum

 

Defines the default stencil type to be used by this channel when reading color images. The default value is GL_UNSIGNED_BYTE. See the glReadPixels man page for a list of supported values.

MPK_CHANNEL_PASS_CACHE_SIZE

int

50

Specifies the cache size for the frame data queues used for culling. This attribute affects the granularity and performance of the data processing for data passed using mpkChannelPassData().

MPK_CHANNEL_PUT_CACHE_SIZE

int

10

Specifies the cache size for the cull data queues. This attribute affects the granularity and performance of the data processing for data passed using mpkChannelPutData().

MPK_CONFIG_FRAME_CACHE_SIZE

int

100

Specifies the cache size for the MPKConfig's frame data queue used for culling. This attribute affects the granularity and performance of the data processing for data passed using mpkConfigFrameData().

MPK_DEFAULT_EYE_OFFSET

float

0.035

Specifies the default value of the eye offset used by the frustum computations for the channel. The function mpkInit() sets this value to 0.035.

MPK_DEFAULT_RUNON_POLICY

enum

auto

Specifies the default run-on policy for those window threads that are not explicitly bound to a particular processor. Setting the value to auto causes MPK to bind the first n window threads to the n processors on the node for the respective pipe. If the value is set to free, the operating system decides on what processor to execute the thread. The default is free.

MPK_PATTR_MONO_HEIGHT

int

492 is used for MPK_STEREO_REC,
M
PK_STEREO_BOT, and MPK_STEREO_TOP.

Specifies the height of the display to be used by the function mpkWindowUpdatePixelViewport() for mono mode instead of that returned by the X11 DisplayHeight() function.

MPK_PATTR_MONO_WIDTH

int

 

Specifies the width of the display to be used by the function mpkWindowUpdatePixelViewport() for mono mode instead of that returned by the X11 DisplayWidth() function.

MPK_PATTR_STEREO_HEIGHT

int

492 for full

Specifies the height of the display to be used by the function mpkWindowUpdatePixelViewport() for stereo mode instead of that returned by the X11 DisplayHeight() function.

MPK_PATTR_STEREO_OFFSET

int

532

Specifies the offset of the display to be used by the function mpkWindowUpdatePixelViewport() for rect and bottom stereo modes.

MPK_PATTR_STEREO_TYPE

enum

none

Specifies one of the following stereo types: none, user, quad, rect, top, or bottom.

MPK_PATTR_STEREO_WIDTH

int

 

Specifies the width of the display to be used by the function mpkWindowUpdatePixelViewport() for stereo mode instead of that returned by the X11 DisplayWidth() function.

MPK_WATTR_HINTS_CAVEAT

enum

MPK_UNDEFINED

Specifies the caveats associated with the window framebuffer configuration. Accepted values are MPK_GLX_SLOW, MPK_GLX_NOCAVEAT, and MPK_GLX_NON_CONFORMANT.

MPK_WATTR_HINTS_DECORATION

boolean

MPK_UNDEFINED

Specifies whether the window should have window manager decorations.

MPK_WATTR_HINTS_DIRECT

boolean

MPK_UNDEFINED

Specifies whether the window GLX context should be direct.

MPK_WATTR_HINTS_DOUBLEBUFFER

boolean

1

Specifies whether the window framebuffer configuration should be double-buffered. Note that setting this attribute on a window will affect the behavior of the function mpkWindowSwapBuffers().

MPK_WATTR_HINTS_DRAWABLE

enum

MPK_UNDEFINED

Specifies the window drawable type. Accepted values are MPK_GLX_WINDOW, MPK_GLX_PBUFFER, MPK_GLX_PIXMAP, and MPK_GLX_NONE.

For MPK_GLX_NONE, MPK executes no draw operation.

MPK_WATTR_HINTS_LARGEST

boolean

MPK_UNDEFINED

Specifies the MPKWindow pbuffer characteristics. This attribute will be ignored by windows for which the DRAWABLE hint is not set to MPK_GLX_PBUFFER.

MPK_WATTR_HINTS_PRESERVED

boolean

MPK_UNDEFINED

Specifies the MPKWindow pbuffer characteristics. This attribute will be ignored by windows for which the DRAWABLE hint is not set to MPK_GLX_PBUFFER.

MPK_WATTR_HINTS_RGBA

boolean

1

Specifies whether RGBA visuals are used. If the hint is not set, a color-index visual is used.

MPK_WATTR_HINTS_STEREO

boolean

MPK_UNDEFINED

Specifies whether the window framebuffer configuration should support quad-buffer stereo.

MPK_WATTR_HINTS_THREAD

boolean

MPK_UNDEFINED

Specifies whether the window should be made a separate thread from the application.

MPK_WATTR_HINTS_TRANSPARENT

boolean

MPK_UNDEFINED

Specifies whether the window framebuffer configuration should be transparent.

MPK_WATTR_HINTS_VISUAL

enum

MPK_UNDEFINED

Specifies the window visual type. Accepted values are MPK_GLX_TRUE_COLOR, MPK_GLX_PSEUDO_COLOR, MPK_GLX_DIRECT_COLOR, MPK_GLX_STATIC_COLOR, MPK_GLX_GRAYSCALE, and MPK_GLX_STATIC_GRAY.

MPK_WATTR_HINTS_X_RENDERABLE

boolean

MPK_UNDEFINED

Specifies whether only framebuffer configuration that have associated X visuals (and can be used to render to windows and/or GLX pixmaps) should be considered.

MPK_WATTR_PLANES_ACCUM_ALPHA

int

MPK_UNDEFINED

Specifies the minimum number of accumulation alpha bitplanes. This attribute is ignored if the RGBA hint of the window is not set.

MPK_WATTR_PLANES_ACCUM_BLUE

int

MPK_UNDEFINED

Specifies the minimum number of accumulation blue bitplanes. This attribute is ignored if the RGBA hint of the window is not set.

MPK_WATTR_PLANES_ACCUM_GREEN

int

MPK_UNDEFINED

Specifies the minimum number of accumulation green bitplanes. This attribute is ignored if the RGBA hint of the window is not set.

MPK_WATTR_PLANES_ACCUM_RED

int

MPK_UNDEFINED

Specifies the minimum number of accumulation red bitplanes. This attribute is ignored if the RGBA hint of the window is not set.

MPK_WATTR_PLANES_ALPHA

int

0

Specifies the minimum number of alpha bitplanes. This attribute is ignored if the RGBA hint of the window is not set.

MPK_WATTR_PLANES_AUX

int

MPK_UNDEFINED

Specifies the number of auxiliary buffers.

MPK_WATTR_PLANES_BLUE

int

1

Specifies the minimum number of blue bitplanes. This attribute is ignored if the RGBA hint of the window is not set.

MPK_WATTR_PLANES_COLOR

int

MPK_UNDEFINED

Specifies the minimum color-index buffer size. This attribute is ignored if the RGBA hint of the window is set to 1.

MPK_WATTR_PLANES_DEPTH

int

1

Specifies the minimum size of the depth buffer.

MPK_WATTR_PLANES_GREEN

int

1

Specifies the minimum number of green bitplanes. This attribute is ignored if the RGBA hint of the window is not set.

MPK_WATTR_PLANES_LEVEL

int

0

Specifies the window buffer level.

MPK_WATTR_PLANES_RED

int

1

Specifies the minimum number of red bitplanes. This attribute is ignored if the RGBA hint of the window is not set.

MPK_WATTR_PLANES_SAMPLES

int

MPK_UNDEFINED

Specifies the minimum number of samples required in the multi-sample buffer.

MPK_WATTR_PLANES_STENCIL

int

MPK_UNDEFINED

Specifies the minimum size of the stencil buffer.

MPK_WATTR_TRANSPARENT_ALPHA

int

MPK_UNDEFINED

Specifies the alpha component of the window transparent color. This attribute is ignored if the RGBA hint of the window is not set or if the TRANSPARENT hint of the window is not set.

MPK_WATTR_TRANSPARENT_BLUE

int

MPK_UNDEFINED

Specifies the blue component of the window transparent color. This attribute is ignored if the RGBA hint of the window is not set or if the TRANSPARENT hint of the window is not set.

MPK_WATTR_TRANSPARENT_GREEN

int

MPK_UNDEFINED

Specifies the green component of the window transparent color. This attribute is ignored if the RGBA hint of the window is not set or if the TRANSPARENT hint of the window is not set.

MPK_WATTR_TRANSPARENT_INDEX

int

MPK_UNDEFINED

Specifies the window transparent index. This attribute is ignored if the RGBA hint of the window is set or if the TRANSPARENT hint of the window is not set.

MPK_WATTR_TRANSPARENT_RED

int

MPK_UNDEFINED

Specifies the red component of the window transparent color. This attribute is ignored if the RGBA hint of the window is not set or if the TRANSPARENT hint of the window is not set.

You can find more information about the window attributes specifications in the glXChooseFBConfig(3G) and glXChooseVisual(3G) man pages.