15bd8deadSopenharmony_ciName 25bd8deadSopenharmony_ci 35bd8deadSopenharmony_ci SGIX_swap_group 45bd8deadSopenharmony_ci 55bd8deadSopenharmony_ciName Strings 65bd8deadSopenharmony_ci 75bd8deadSopenharmony_ci GLX_SGIX_swap_group 85bd8deadSopenharmony_ci 95bd8deadSopenharmony_ciVersion 105bd8deadSopenharmony_ci 115bd8deadSopenharmony_ci $Date: 1996/07/22 06:28:45 $ $Revision: 1.9 $ 125bd8deadSopenharmony_ci 135bd8deadSopenharmony_ciNumber 145bd8deadSopenharmony_ci 155bd8deadSopenharmony_ci 91 165bd8deadSopenharmony_ci 175bd8deadSopenharmony_ciDependencies 185bd8deadSopenharmony_ci 195bd8deadSopenharmony_ci SGIX_swap_control affects the definition of this extension 205bd8deadSopenharmony_ci 215bd8deadSopenharmony_ciOverview 225bd8deadSopenharmony_ci 235bd8deadSopenharmony_ci This extension provides the capability to synchronize the buffer swaps 245bd8deadSopenharmony_ci of a group of GLX drawables. A swap group is created, and drawables are 255bd8deadSopenharmony_ci added as members to the swap group. Buffer swaps to members of the swap 265bd8deadSopenharmony_ci group will then take place concurrently. 275bd8deadSopenharmony_ci 285bd8deadSopenharmony_ci This extension extends the set of conditions that must be met before 295bd8deadSopenharmony_ci a buffer swap can take place. 305bd8deadSopenharmony_ci 315bd8deadSopenharmony_ciDependencies 325bd8deadSopenharmony_ci 335bd8deadSopenharmony_ci SGIX_swap_control affects the definition of this extension 345bd8deadSopenharmony_ci 355bd8deadSopenharmony_ciIssues 365bd8deadSopenharmony_ci 375bd8deadSopenharmony_ci * Do we need a query to ask whether a window is in a group? 385bd8deadSopenharmony_ci 395bd8deadSopenharmony_ciNew Procedures and Functions 405bd8deadSopenharmony_ci 415bd8deadSopenharmony_ci void JoinSwapGroupSGIX(Display *dpy, 425bd8deadSopenharmony_ci GLXDrawable drawable, 435bd8deadSopenharmony_ci GLXDrawable member); 445bd8deadSopenharmony_ci 455bd8deadSopenharmony_ciNew Tokens 465bd8deadSopenharmony_ci 475bd8deadSopenharmony_ci none 485bd8deadSopenharmony_ci 495bd8deadSopenharmony_ciAdditions to the GLX Specification 505bd8deadSopenharmony_ci 515bd8deadSopenharmony_ci Add to section 3.2.6, Double Buffering: 525bd8deadSopenharmony_ci 535bd8deadSopenharmony_ci JoinSwapGroupSGIX adds <drawable> to the swap group containing <member> as 545bd8deadSopenharmony_ci a member. If <drawable> is already a member of a different group, it is 555bd8deadSopenharmony_ci implicitly removed from that group first. If <member> is None, <drawable> 565bd8deadSopenharmony_ci is removed from the swap group that it belongs to, if any. 575bd8deadSopenharmony_ci 585bd8deadSopenharmony_ci A swap group is referenced by naming any drawable in the group; there is no 595bd8deadSopenharmony_ci other way to refer to a group. 605bd8deadSopenharmony_ci 615bd8deadSopenharmony_ci Before a buffer swap can take place, a set of conditions must be 625bd8deadSopenharmony_ci satisfied. The conditions are defined in terms of the notions of when 635bd8deadSopenharmony_ci a drawable is ready to swap and when a group is ready to swap. 645bd8deadSopenharmony_ci 655bd8deadSopenharmony_ci GLX drawables except windows are always ready to swap. 665bd8deadSopenharmony_ci 675bd8deadSopenharmony_ci When a window is unmapped, it is always ready. 685bd8deadSopenharmony_ci 695bd8deadSopenharmony_ci When a window is mapped, it is ready when all of the following are true: 705bd8deadSopenharmony_ci 715bd8deadSopenharmony_ci 1. A buffer swap command has been issued for it. 725bd8deadSopenharmony_ci 735bd8deadSopenharmony_ci 2. Its swap interval has elapsed. 745bd8deadSopenharmony_ci 755bd8deadSopenharmony_ci A group is ready when the following is true: 765bd8deadSopenharmony_ci 775bd8deadSopenharmony_ci 1. All windows in the group are ready. 785bd8deadSopenharmony_ci 795bd8deadSopenharmony_ci All of the following must be satisfied before a buffer swap for a window 805bd8deadSopenharmony_ci can take place: 815bd8deadSopenharmony_ci 825bd8deadSopenharmony_ci 1. The window is ready. 835bd8deadSopenharmony_ci 845bd8deadSopenharmony_ci 2. If the window belongs to a group, the group is ready. 855bd8deadSopenharmony_ci 865bd8deadSopenharmony_ci Buffer swaps for all windows in a swap group will take place concurrently 875bd8deadSopenharmony_ci after the conditions are satisfied for every window in the group. 885bd8deadSopenharmony_ci 895bd8deadSopenharmony_ci A group exists until the last remaining drawable leaves the group. 905bd8deadSopenharmony_ci 915bd8deadSopenharmony_ci JoinSwapGroupSGIX is part of the X stream. 925bd8deadSopenharmony_ci 935bd8deadSopenharmony_ciErrors 945bd8deadSopenharmony_ci 955bd8deadSopenharmony_ci JoinSwapGroupSGIX generates GLXBadDrawable if <drawable> is an invalid 965bd8deadSopenharmony_ci GLX drawable, or if <member> is an invalid GLX drawable. 975bd8deadSopenharmony_ci 985bd8deadSopenharmony_ciNew State 995bd8deadSopenharmony_ci 1005bd8deadSopenharmony_ci Get Value Get Command Type Value Attrib 1015bd8deadSopenharmony_ci --------- ----------- ---- ------- ------ 1025bd8deadSopenharmony_ci <whether window is in a group> ?? B False 1035bd8deadSopenharmony_ci 1045bd8deadSopenharmony_ciNew Implementation Dependent State 1055bd8deadSopenharmony_ci 1065bd8deadSopenharmony_ci None 1075bd8deadSopenharmony_ci 108