15bd8deadSopenharmony_ciXXX - Not complete. 25bd8deadSopenharmony_ci 35bd8deadSopenharmony_ciName 45bd8deadSopenharmony_ci 55bd8deadSopenharmony_ci SGIX_wait_group 65bd8deadSopenharmony_ci 75bd8deadSopenharmony_ciName Strings 85bd8deadSopenharmony_ci 95bd8deadSopenharmony_ci GLX_SGIX_wait_group 105bd8deadSopenharmony_ci 115bd8deadSopenharmony_ciVersion 125bd8deadSopenharmony_ci 135bd8deadSopenharmony_ci $Date: 1997/04/17 04:46:55 $ $Revision: 1.1 $ 145bd8deadSopenharmony_ci 155bd8deadSopenharmony_ciNumber 165bd8deadSopenharmony_ci 175bd8deadSopenharmony_ci XXX 185bd8deadSopenharmony_ci 195bd8deadSopenharmony_ciDependencies 205bd8deadSopenharmony_ci 215bd8deadSopenharmony_ci none 225bd8deadSopenharmony_ci 235bd8deadSopenharmony_ciOverview 245bd8deadSopenharmony_ci 255bd8deadSopenharmony_ci This extension provides the capability to synchronize drawing from two 265bd8deadSopenharmony_ci separate GLX Contexts. A wait group is created, and GLX Contexts are 275bd8deadSopenharmony_ci added as members to the wait group. It will then be possible to 285bd8deadSopenharmony_ci specify that no member will be able to continue to render until all the 295bd8deadSopenharmony_ci outstanding OpenGL commands from each of the members have been completed. 305bd8deadSopenharmony_ci 315bd8deadSopenharmony_ci This extension sets conditions that must be met before a set of OpenGL 325bd8deadSopenharmony_ci contexts can continue drawing. This extension is primarily useful for 335bd8deadSopenharmony_ci coordinating operations in an environment where more than one OpenGL 345bd8deadSopenharmony_ci context may render simultaneously. 355bd8deadSopenharmony_ci 365bd8deadSopenharmony_ciDependencies 375bd8deadSopenharmony_ci 385bd8deadSopenharmony_ci none 395bd8deadSopenharmony_ci 405bd8deadSopenharmony_ciIssues 415bd8deadSopenharmony_ci 425bd8deadSopenharmony_ci * Do we need a query to ask whether a context is in a group? 435bd8deadSopenharmony_ci * Do we need to support having contexts in multiple wait groups? 445bd8deadSopenharmony_ci 455bd8deadSopenharmony_ciNew Procedures and Functions 465bd8deadSopenharmony_ci 475bd8deadSopenharmony_ci void JoinWaitGroupSGIX(Display *dpy, 485bd8deadSopenharmony_ci GLXContext context, 495bd8deadSopenharmony_ci GLXContext member); 505bd8deadSopenharmony_ci 515bd8deadSopenharmony_ci void WaitGroupSGIX(Display *dpy, 525bd8deadSopenharmony_ci GLXContext context); 535bd8deadSopenharmony_ci 545bd8deadSopenharmony_ciNew Tokens 555bd8deadSopenharmony_ci 565bd8deadSopenharmony_ci none 575bd8deadSopenharmony_ci 585bd8deadSopenharmony_ciAdditions to the GLX Specification 595bd8deadSopenharmony_ci 605bd8deadSopenharmony_ci Add to the end of section 3.2.5, Synchronization Primitives: 615bd8deadSopenharmony_ci 625bd8deadSopenharmony_ci JoinWaitGroupSGIX adds <context> to the wait group containing <member> as 635bd8deadSopenharmony_ci a member. If <context> is already a member of a different group, it is 645bd8deadSopenharmony_ci implicitly removed from that group first. If <member> is None, <context> 655bd8deadSopenharmony_ci is removed from the wait group that it belongs to, if any. 665bd8deadSopenharmony_ci 675bd8deadSopenharmony_ci A wait group is referenced by naming any context in the group; there is no 685bd8deadSopenharmony_ci other way to refer to a group. 695bd8deadSopenharmony_ci 705bd8deadSopenharmony_ci When a context is destroyed, it is removed from any wait group of 715bd8deadSopenharmony_ci which it is a member. 725bd8deadSopenharmony_ci 735bd8deadSopenharmony_ci WaitGroupSGIX causes <context> to wait until all the other member 745bd8deadSopenharmony_ci contexts of the wait group have also called WaitGroupSGIX. 755bd8deadSopenharmony_ci 765bd8deadSopenharmony_ci The following must be satisfied before a WaitGroupSGIX command 775bd8deadSopenharmony_ci can complete: 785bd8deadSopenharmony_ci 795bd8deadSopenharmony_ci 1. All contexts in the wait group must have issued a 805bd8deadSopenharmony_ci WaitGroupSGIX command 815bd8deadSopenharmony_ci 825bd8deadSopenharmony_ci OpenGL rendering commands issued by all of the member contexts 835bd8deadSopenharmony_ci in the wait group will complete before any of the member contexts 845bd8deadSopenharmony_ci can further affect the framebuffer. 855bd8deadSopenharmony_ci 865bd8deadSopenharmony_ci A wait group exists until the last remaining context leaves the group. 875bd8deadSopenharmony_ci 885bd8deadSopenharmony_ci JoinWaitGroupSGIX and WaitGroupSGIX are part of the X stream. 895bd8deadSopenharmony_ci 905bd8deadSopenharmony_ciErrors 915bd8deadSopenharmony_ci 925bd8deadSopenharmony_ci JoinWaitGroupSGIX generates GLXBadContext if <context> is an invalid 935bd8deadSopenharmony_ci GLX context, or if <member> is an invalid GLX context. 945bd8deadSopenharmony_ci 955bd8deadSopenharmony_ci WaitGroupSGIX generates GLXBadContext if <context> is an invalid 965bd8deadSopenharmony_ci GLX context. 975bd8deadSopenharmony_ci 985bd8deadSopenharmony_ciNew State 995bd8deadSopenharmony_ci 1005bd8deadSopenharmony_ci Get Value Get Command Type Value Attrib 1015bd8deadSopenharmony_ci --------- ----------- ---- ------- ------ 1025bd8deadSopenharmony_ci <whether context is in a wait group> ?? B False 1035bd8deadSopenharmony_ci 1045bd8deadSopenharmony_ciNew Implementation Dependent State 1055bd8deadSopenharmony_ci 1065bd8deadSopenharmony_ci None 107