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