Name

    SGIX_swap_group

Name Strings

    GLX_SGIX_swap_group

Version

    $Date: 1996/07/22 06:28:45 $ $Revision: 1.9 $

Number

    91

Dependencies

    SGIX_swap_control affects the definition of this extension

Overview

    This extension provides the capability to synchronize the buffer swaps
    of a group of GLX drawables.  A swap group is created, and drawables are 
    added as members to the swap group.  Buffer swaps to members of the swap 
    group will then take place concurrently.

    This extension extends the set of conditions that must be met before
    a buffer swap can take place. 

Dependencies

    SGIX_swap_control affects the definition of this extension

Issues

    * Do we need a query to ask whether a window is in a group?

New Procedures and Functions

    void JoinSwapGroupSGIX(Display *dpy, 
			   GLXDrawable drawable, 
			   GLXDrawable member);

New Tokens

    none

Additions to the GLX Specification

    Add to section 3.2.6, Double Buffering:

    JoinSwapGroupSGIX adds <drawable> to the swap group containing <member> as 
    a member.  If <drawable> is already a member of a different group, it is 
    implicitly removed from that group first.  If <member> is None, <drawable> 
    is removed from the swap group that it belongs to, if any.

    A swap group is referenced by naming any drawable in the group; there is no
    other way to refer to a group.

    Before a buffer swap can take place, a set of conditions must be 
    satisfied.  The conditions are defined in terms of the notions of when 
    a drawable is ready to swap and when a group is ready to swap.

    GLX drawables except windows are always ready to swap.

    When a window is unmapped, it is always ready.

    When a window is mapped, it is ready when all of the following are true:

	1. A buffer swap command has been issued for it.

	2. Its swap interval has elapsed.

    A group is ready when the following is true:

	1. All windows in the group are ready.

    All of the following must be satisfied before a buffer swap for a window
    can take place:

	1. The window is ready.

	2. If the window belongs to a group, the group is ready.

    Buffer swaps for all windows in a swap group will take place concurrently
    after the conditions are satisfied for every window in the group.

    A group exists until the last remaining drawable leaves the group.

    JoinSwapGroupSGIX is part of the X stream.

Errors

    JoinSwapGroupSGIX generates GLXBadDrawable if <drawable> is an invalid 
    GLX drawable, or if <member> is an invalid GLX drawable.

New State

    Get Value				Get Command	Type	Value	Attrib
    ---------				-----------	----	-------	------
    <whether window is in a group>	??		B	False

New Implementation Dependent State

    None

