15bd8deadSopenharmony_ciName 25bd8deadSopenharmony_ci 35bd8deadSopenharmony_ci WGL_I3D_swap_frame_lock 45bd8deadSopenharmony_ci 55bd8deadSopenharmony_ciName Strings 65bd8deadSopenharmony_ci 75bd8deadSopenharmony_ci WGL_I3D_swap_frame_lock 85bd8deadSopenharmony_ci 95bd8deadSopenharmony_ciVersion 105bd8deadSopenharmony_ci 115bd8deadSopenharmony_ci Date: 9/23/1999 Revision: 1.2 125bd8deadSopenharmony_ci 135bd8deadSopenharmony_ciNumber 145bd8deadSopenharmony_ci 155bd8deadSopenharmony_ci 254 165bd8deadSopenharmony_ci 175bd8deadSopenharmony_ciDependencies 185bd8deadSopenharmony_ci 195bd8deadSopenharmony_ci WGL_EXT_extensions_string is required. 205bd8deadSopenharmony_ci WGL_EXT_swap_control affects this extension. 215bd8deadSopenharmony_ci 225bd8deadSopenharmony_ciOverview 235bd8deadSopenharmony_ci 245bd8deadSopenharmony_ci This extension allows an application to synchronize color buffer swaps 255bd8deadSopenharmony_ci across multiple systems. Applications that run simultaneously on 265bd8deadSopenharmony_ci multiple systems can use this extension to synchronize the buffer swap 275bd8deadSopenharmony_ci across each of these systems. 285bd8deadSopenharmony_ci 295bd8deadSopenharmony_ci The mechanism used to implement synchronization of multiple displays 305bd8deadSopenharmony_ci depends on an external sync signal. This resource can only be used by a 315bd8deadSopenharmony_ci single application at a time. 325bd8deadSopenharmony_ci 335bd8deadSopenharmony_ci Each system running the application must have frame lock enabled in 345bd8deadSopenharmony_ci order for their system to participate in the frame lock. If frame 355bd8deadSopenharmony_ci lock for a system is not enabled, that system will have no affect on 365bd8deadSopenharmony_ci other systems. 375bd8deadSopenharmony_ci 385bd8deadSopenharmony_ci For each of the systems to swap at the correct position, it is 395bd8deadSopenharmony_ci required that all of the systems genlock together. Genlock is 405bd8deadSopenharmony_ci controlled through the Video Applet. 415bd8deadSopenharmony_ci 425bd8deadSopenharmony_ci The frame lock extension can also be used in conjunction with the swap 435bd8deadSopenharmony_ci control extension to control the swap rate. The interval rate of the 445bd8deadSopenharmony_ci "master" system (i.e., the system at the start of the cabled systems) 455bd8deadSopenharmony_ci controls the swap rate. 465bd8deadSopenharmony_ci 475bd8deadSopenharmony_ci An implementation-dependent timeout is set when a swap is requested. 485bd8deadSopenharmony_ci If the timeout expires before all systems are ready to swap, the swap 495bd8deadSopenharmony_ci will occur. The prevents a system hang if the cable becomes 505bd8deadSopenharmony_ci disconnected or an application hangs. 515bd8deadSopenharmony_ci 525bd8deadSopenharmony_ciNew Procedures and Functions 535bd8deadSopenharmony_ci 545bd8deadSopenharmony_ci BOOL wglEnableFrameLockI3D(VOID) 555bd8deadSopenharmony_ci 565bd8deadSopenharmony_ci BOOL wglDisableFrameLockI3D(VOID) 575bd8deadSopenharmony_ci 585bd8deadSopenharmony_ci BOOL wglIsEnabledFrameLockI3D(BOOL *pFlag) 595bd8deadSopenharmony_ci 605bd8deadSopenharmony_ci BOOL wglQueryFrameLockMasterI3D(BOOL *pFlag) 615bd8deadSopenharmony_ci 625bd8deadSopenharmony_ciNew Tokens 635bd8deadSopenharmony_ci 645bd8deadSopenharmony_ci None 655bd8deadSopenharmony_ci 665bd8deadSopenharmony_ciAdditions to Chapter 2 of the 1.2 GL Specification (OpenGL Operation) 675bd8deadSopenharmony_ci 685bd8deadSopenharmony_ci None 695bd8deadSopenharmony_ci 705bd8deadSopenharmony_ciAdditions to Chapter 3 of the 1.2 GL Specification (Rasterization) 715bd8deadSopenharmony_ci 725bd8deadSopenharmony_ci None 735bd8deadSopenharmony_ci 745bd8deadSopenharmony_ciAdditions to Chapter 4 of the 1.2 GL Specification (Per-Fragment Operations 755bd8deadSopenharmony_ciand the Framebuffer) 765bd8deadSopenharmony_ci 775bd8deadSopenharmony_ci None 785bd8deadSopenharmony_ci 795bd8deadSopenharmony_ciAdditions to Chapter 5 of the 1.2 GL Specification (Special Functions) 805bd8deadSopenharmony_ci 815bd8deadSopenharmony_ci None 825bd8deadSopenharmony_ci 835bd8deadSopenharmony_ciAdditions to Chapter 6 of the 1.2 GL Specification (State and State Requests) 845bd8deadSopenharmony_ci 855bd8deadSopenharmony_ci None 865bd8deadSopenharmony_ci 875bd8deadSopenharmony_ciAdditions to the WGL Specification 885bd8deadSopenharmony_ci 895bd8deadSopenharmony_ci wglEnableFrameLockI3D enables synchronization of buffer swaps to all 905bd8deadSopenharmony_ci systems that are connected through the external sync cable and have 915bd8deadSopenharmony_ci enabled frame lock. A value of TRUE is returned if the hardware 925bd8deadSopenharmony_ci supports frame lock and the resource is currently available. A value 935bd8deadSopenharmony_ci of FALSE is returned if the hardware cannot support frame lock or the 945bd8deadSopenharmony_ci resource is in use. 955bd8deadSopenharmony_ci 965bd8deadSopenharmony_ci Frame lock can be disabled with wglDisableFrameLockI3D. If frame 975bd8deadSopenharmony_ci lock is disabled for a system, that system has no affect on other 985bd8deadSopenharmony_ci systems that are synchronized to the external sync cable. 995bd8deadSopenharmony_ci 1005bd8deadSopenharmony_ci The current state of the frame lock enable can be obtained with 1015bd8deadSopenharmony_ci wglIsEnabledFrameLockI3D. 1025bd8deadSopenharmony_ci 1035bd8deadSopenharmony_ci The "master" system controls the behavior of swap for all systems 1045bd8deadSopenharmony_ci that have frame lock enabled. wglQueryFrameLockMaster can be used 1055bd8deadSopenharmony_ci to determine if a system is the "master" system. The swap behavior 1065bd8deadSopenharmony_ci of the master system depends on the setting of the swap interval 1075bd8deadSopenharmony_ci using the WGL_EXT_swap_control extension. 1085bd8deadSopenharmony_ci 1095bd8deadSopenharmony_ci The "master" system is forced to be synchronized to at least one 1105bd8deadSopenharmony_ci vertical blank if the swap interval is 0 or the Video Applet 1115bd8deadSopenharmony_ci setting for synchronizing to vertical blank is not set. 1125bd8deadSopenharmony_ci 1135bd8deadSopenharmony_ciDependencies on WGL_EXT_extensions_string 1145bd8deadSopenharmony_ci 1155bd8deadSopenharmony_ci Because there is no way to extend wgl, these calls are defined in 1165bd8deadSopenharmony_ci the ICD and can be called by obtaining the address with 1175bd8deadSopenharmony_ci wglGetProcAddress. Because this extension is a WGL extension, it 1185bd8deadSopenharmony_ci is not included in the GL_EXTENSIONS string. Its existence can be 1195bd8deadSopenharmony_ci determined with the WGL_EXT_extensions_string extension. 1205bd8deadSopenharmony_ci 1215bd8deadSopenharmony_ciErrors 1225bd8deadSopenharmony_ci 1235bd8deadSopenharmony_ci If the function succeeds, the return value is TRUE. If the function 1245bd8deadSopenharmony_ci fails, the return value is FALSE. To get extended error information, 1255bd8deadSopenharmony_ci call GetLastError. 1265bd8deadSopenharmony_ci 1275bd8deadSopenharmony_ci ERROR_DC_NOT_FOUND An RC was not current to the calling 1285bd8deadSopenharmony_ci thread; therefore, no DC could be 1295bd8deadSopenharmony_ci obtained. 1305bd8deadSopenharmony_ci 1315bd8deadSopenharmony_ci ERROR_BUSY The resource used for obtaining usage 1325bd8deadSopenharmony_ci was currently in use by another 1335bd8deadSopenharmony_ci application. 1345bd8deadSopenharmony_ci 1355bd8deadSopenharmony_ciNew State 1365bd8deadSopenharmony_ci 1375bd8deadSopenharmony_ci None 1385bd8deadSopenharmony_ci 1395bd8deadSopenharmony_ciNew Implementation Dependent State 1405bd8deadSopenharmony_ci 1415bd8deadSopenharmony_ci None 142