1Name 2 3 SGIX_swap_group 4 5Name Strings 6 7 GLX_SGIX_swap_group 8 9Version 10 11 $Date: 1996/07/22 06:28:45 $ $Revision: 1.9 $ 12 13Number 14 15 91 16 17Dependencies 18 19 SGIX_swap_control affects the definition of this extension 20 21Overview 22 23 This extension provides the capability to synchronize the buffer swaps 24 of a group of GLX drawables. A swap group is created, and drawables are 25 added as members to the swap group. Buffer swaps to members of the swap 26 group will then take place concurrently. 27 28 This extension extends the set of conditions that must be met before 29 a buffer swap can take place. 30 31Dependencies 32 33 SGIX_swap_control affects the definition of this extension 34 35Issues 36 37 * Do we need a query to ask whether a window is in a group? 38 39New Procedures and Functions 40 41 void JoinSwapGroupSGIX(Display *dpy, 42 GLXDrawable drawable, 43 GLXDrawable member); 44 45New Tokens 46 47 none 48 49Additions to the GLX Specification 50 51 Add to section 3.2.6, Double Buffering: 52 53 JoinSwapGroupSGIX adds <drawable> to the swap group containing <member> as 54 a member. If <drawable> is already a member of a different group, it is 55 implicitly removed from that group first. If <member> is None, <drawable> 56 is removed from the swap group that it belongs to, if any. 57 58 A swap group is referenced by naming any drawable in the group; there is no 59 other way to refer to a group. 60 61 Before a buffer swap can take place, a set of conditions must be 62 satisfied. The conditions are defined in terms of the notions of when 63 a drawable is ready to swap and when a group is ready to swap. 64 65 GLX drawables except windows are always ready to swap. 66 67 When a window is unmapped, it is always ready. 68 69 When a window is mapped, it is ready when all of the following are true: 70 71 1. A buffer swap command has been issued for it. 72 73 2. Its swap interval has elapsed. 74 75 A group is ready when the following is true: 76 77 1. All windows in the group are ready. 78 79 All of the following must be satisfied before a buffer swap for a window 80 can take place: 81 82 1. The window is ready. 83 84 2. If the window belongs to a group, the group is ready. 85 86 Buffer swaps for all windows in a swap group will take place concurrently 87 after the conditions are satisfied for every window in the group. 88 89 A group exists until the last remaining drawable leaves the group. 90 91 JoinSwapGroupSGIX is part of the X stream. 92 93Errors 94 95 JoinSwapGroupSGIX generates GLXBadDrawable if <drawable> is an invalid 96 GLX drawable, or if <member> is an invalid GLX drawable. 97 98New State 99 100 Get Value Get Command Type Value Attrib 101 --------- ----------- ---- ------- ------ 102 <whether window is in a group> ?? B False 103 104New Implementation Dependent State 105 106 None 107 108