• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1Name
2
3    WGL_I3D_swap_frame_lock
4
5Name Strings
6
7    WGL_I3D_swap_frame_lock
8
9Version
10
11    Date: 9/23/1999   Revision: 1.2
12
13Number
14
15    254
16
17Dependencies
18
19    WGL_EXT_extensions_string is required.
20    WGL_EXT_swap_control affects this extension.
21
22Overview
23
24    This extension allows an application to synchronize color buffer swaps
25    across multiple systems.  Applications that run simultaneously on
26    multiple systems can use this extension to synchronize the buffer swap
27    across each of these systems.
28
29    The mechanism used to implement synchronization of multiple displays
30    depends on an external sync signal.  This resource can only be used by a
31    single application at a time.
32
33    Each system running the application must have frame lock enabled in
34    order for their system to participate in the frame lock.  If frame
35    lock for a system is not enabled, that system will have no affect on
36    other systems.
37
38    For each of the systems to swap at the correct position, it is
39    required that all of the systems genlock together.  Genlock is
40    controlled through the Video Applet.
41
42    The frame lock extension can also be used in conjunction with the swap
43    control extension to control the swap rate.  The interval rate of the
44    "master" system (i.e., the system at the start of the cabled systems)
45    controls the swap rate.
46
47    An implementation-dependent timeout is set when a swap is requested.
48    If the timeout expires before all systems are ready to swap, the swap
49    will occur.  The prevents a system hang if the cable becomes
50    disconnected or an application hangs.
51
52New Procedures and Functions
53
54    BOOL wglEnableFrameLockI3D(VOID)
55
56    BOOL wglDisableFrameLockI3D(VOID)
57
58    BOOL wglIsEnabledFrameLockI3D(BOOL *pFlag)
59
60    BOOL wglQueryFrameLockMasterI3D(BOOL *pFlag)
61
62New Tokens
63
64    None
65
66Additions to Chapter 2 of the 1.2 GL Specification (OpenGL Operation)
67
68    None
69
70Additions to Chapter 3 of the 1.2 GL Specification (Rasterization)
71
72    None
73
74Additions to Chapter 4 of the 1.2 GL Specification (Per-Fragment Operations
75and the Framebuffer)
76
77    None
78
79Additions to Chapter 5 of the 1.2 GL Specification (Special Functions)
80
81    None
82
83Additions to Chapter 6 of the 1.2 GL Specification (State and State Requests)
84
85    None
86
87Additions to the WGL Specification
88
89    wglEnableFrameLockI3D enables synchronization of buffer swaps to all
90    systems that are connected through the external sync cable and have
91    enabled frame lock.  A value of TRUE is returned if the hardware
92    supports frame lock and the resource is currently available.  A value
93    of FALSE is returned if the hardware cannot support frame lock or the
94    resource is in use.
95
96    Frame lock can be disabled with wglDisableFrameLockI3D.  If frame
97    lock is disabled for a system, that system has no affect on other
98    systems that are synchronized to the external sync cable.
99
100    The current state of the frame lock enable can be obtained with
101    wglIsEnabledFrameLockI3D.
102
103    The "master" system controls the behavior of swap for all systems
104    that have frame lock enabled.  wglQueryFrameLockMaster can be used
105    to determine if a system is the "master" system.  The swap behavior
106    of the master system depends on the setting of the swap interval
107    using the WGL_EXT_swap_control extension.
108
109    The "master" system is forced to be synchronized to at least one
110    vertical blank if the swap interval is 0 or the Video Applet
111    setting for synchronizing to vertical blank is not set.
112
113Dependencies on WGL_EXT_extensions_string
114
115    Because there is no way to extend wgl, these calls are defined in
116    the ICD and can be called by obtaining the address with
117    wglGetProcAddress.  Because this extension is a WGL extension, it
118    is not included in the GL_EXTENSIONS string.  Its existence can be
119    determined with the WGL_EXT_extensions_string extension.
120
121Errors
122
123    If the function succeeds, the return value is TRUE. If the function
124    fails, the return value is FALSE.  To get extended error information,
125    call GetLastError.
126
127       ERROR_DC_NOT_FOUND      An RC was not current to the calling
128                               thread; therefore, no DC could be
129                               obtained.
130
131       ERROR_BUSY              The resource used for obtaining usage
132                               was currently in use by another
133                               application.
134
135New State
136
137    None
138
139New Implementation Dependent State
140
141    None
142