15bd8deadSopenharmony_ciName
25bd8deadSopenharmony_ci
35bd8deadSopenharmony_ci    SGI_video_sync
45bd8deadSopenharmony_ci
55bd8deadSopenharmony_ciName Strings
65bd8deadSopenharmony_ci
75bd8deadSopenharmony_ci    GLX_SGI_video_sync
85bd8deadSopenharmony_ci
95bd8deadSopenharmony_ciNumber
105bd8deadSopenharmony_ci
115bd8deadSopenharmony_ci    41
125bd8deadSopenharmony_ci
135bd8deadSopenharmony_ciDependencies
145bd8deadSopenharmony_ci
155bd8deadSopenharmony_ci    None
165bd8deadSopenharmony_ci
175bd8deadSopenharmony_ciOverview
185bd8deadSopenharmony_ci
195bd8deadSopenharmony_ci    This extension provides a means for synchronization with the video 
205bd8deadSopenharmony_ci    frame rate of a monitor.  (In the case of an interlaced monitor, 
215bd8deadSopenharmony_ci    this is typically the rate of displaying both the even and odd 
225bd8deadSopenharmony_ci    fields of a frame.) The kernel maintains a video sync counter for 
235bd8deadSopenharmony_ci    each physical hardware pipe in a system; the counter is incremented 
245bd8deadSopenharmony_ci    upon the completion of the display of each full frame of video data. An
255bd8deadSopenharmony_ci    OpenGL context always corresponds to a pipe.  When an OpenGL process
265bd8deadSopenharmony_ci    has a current context, it can put itself to sleep until the counter of
275bd8deadSopenharmony_ci    that pipe reaches a desired value.  The process can also query the
285bd8deadSopenharmony_ci    value of the counter.
295bd8deadSopenharmony_ci
305bd8deadSopenharmony_ci    The counter runs as long as the graphics subsystem is running; it is
315bd8deadSopenharmony_ci    initialized via the /usr/gfx/gfxinit command.  However, a process can
325bd8deadSopenharmony_ci    query or sleep on the counter only when a direct context is current.
335bd8deadSopenharmony_ci    Each of the procedures described below will fail and return an error
345bd8deadSopenharmony_ci    code if the current context is not a direct one.
355bd8deadSopenharmony_ci
365bd8deadSopenharmony_ci    The counter is an unsigned 32-bit integer.
375bd8deadSopenharmony_ci
385bd8deadSopenharmony_ciInteraction with {ARB,OES}_framebuffer_object
395bd8deadSopenharmony_ci
405bd8deadSopenharmony_ci    If the current context does not have a default framebuffer there may be
415bd8deadSopenharmony_ci    no "frame rate" to refer to, since there is no Window or GLXWindow to map
425bd8deadSopenharmony_ci    to an output device. If the client API context is in this state, all
435bd8deadSopenharmony_ci    interaction with this extension is undefined.
445bd8deadSopenharmony_ci
455bd8deadSopenharmony_ciIssues
465bd8deadSopenharmony_ci
475bd8deadSopenharmony_ci    Should glXWaitVideoSyncSGI return GLX_BAD_VALUE if <remainder> is
485bd8deadSopenharmony_ci    greater than or equal to <divisor>? (No.)
495bd8deadSopenharmony_ci
505bd8deadSopenharmony_ciNew Procedures and Functions
515bd8deadSopenharmony_ci
525bd8deadSopenharmony_ci    int glXGetVideoSyncSGI(uint *count);
535bd8deadSopenharmony_ci
545bd8deadSopenharmony_ci    int glXWaitVideoSyncSGI(int divisor, 
555bd8deadSopenharmony_ci			    int remainder, 
565bd8deadSopenharmony_ci			    unsigned int *count);
575bd8deadSopenharmony_ci
585bd8deadSopenharmony_ciNew Tokens
595bd8deadSopenharmony_ci
605bd8deadSopenharmony_ci    None
615bd8deadSopenharmony_ci
625bd8deadSopenharmony_ciAdditions to Chapter 2 of the 1.0 Specification (OpenGL Operation)
635bd8deadSopenharmony_ci
645bd8deadSopenharmony_ci    None
655bd8deadSopenharmony_ci
665bd8deadSopenharmony_ciAdditions to Chapter 3 of the 1.0 Specification (Rasterization)
675bd8deadSopenharmony_ci
685bd8deadSopenharmony_ci    None
695bd8deadSopenharmony_ci
705bd8deadSopenharmony_ciAdditions to Chapter 4 of the 1.0 Specification (Per-Fragment Operations and
715bd8deadSopenharmony_cithe Framebuffer)
725bd8deadSopenharmony_ci
735bd8deadSopenharmony_ci    None
745bd8deadSopenharmony_ci
755bd8deadSopenharmony_ciAdditions to Chapter 5 of the 1.0 Specification (Special Functions)
765bd8deadSopenharmony_ci
775bd8deadSopenharmony_ci    None
785bd8deadSopenharmony_ci
795bd8deadSopenharmony_ciAdditions to Chapter 6 of the 1.0 Specification (State and State Requests)
805bd8deadSopenharmony_ci
815bd8deadSopenharmony_ci    None
825bd8deadSopenharmony_ci
835bd8deadSopenharmony_ciAdditions to the GLX Specification
845bd8deadSopenharmony_ci	
855bd8deadSopenharmony_ci    [Add to Section 3.2.5 of the 1.0 GLX Specification (Synchronization
865bd8deadSopenharmony_ci     Primititives)]
875bd8deadSopenharmony_ci
885bd8deadSopenharmony_ci    In addition to its current functions, /usr/gfx/gfxinit also initializes
895bd8deadSopenharmony_ci    the video sync counter to zero.  After that time the video sync counter
905bd8deadSopenharmony_ci    is incremented by one at the completion of the display of each full
915bd8deadSopenharmony_ci    frame of video data.  The counter value wraps to zero after it reaches
925bd8deadSopenharmony_ci    its maximum value.  The single video sync counter is shared by all
935bd8deadSopenharmony_ci    GLXContexts.
945bd8deadSopenharmony_ci
955bd8deadSopenharmony_ci    glXGetVideoSyncSGI returns the value of the video sync counter in
965bd8deadSopenharmony_ci    <count>.  Zero is returned if the call is successful.
975bd8deadSopenharmony_ci
985bd8deadSopenharmony_ci    glXWaitVideoSyncSGI puts the calling process to sleep until
995bd8deadSopenharmony_ci
1005bd8deadSopenharmony_ci	(C mod D) = R
1015bd8deadSopenharmony_ci
1025bd8deadSopenharmony_ci    where C is the video sync counter, D is specified by the <divisor>
1035bd8deadSopenharmony_ci    parameter of glXWaitVideoSyncSGI, and R is specified by the <remainder>
1045bd8deadSopenharmony_ci    parameter of glXWaitVideoSyncSGI.  glXWaitVideoSyncSGI returns the
1055bd8deadSopenharmony_ci    current video sync counter value in <count>.  Zero is returned by
1065bd8deadSopenharmony_ci    glXWaitVideoSyncSGI if it is successful.
1075bd8deadSopenharmony_ci
1085bd8deadSopenharmony_ci    glXWaitVideoSyncSGI is supported only by direct GLXContexts.
1095bd8deadSopenharmony_ci
1105bd8deadSopenharmony_ciErrors
1115bd8deadSopenharmony_ci
1125bd8deadSopenharmony_ci    glXGetVideoSyncSGI returns GLX_BAD_CONTEXT if there is no current
1135bd8deadSopenharmony_ci    GLXContext.
1145bd8deadSopenharmony_ci
1155bd8deadSopenharmony_ci    glXWaitVideoSyncSGI returns GLX_BAD_CONTEXT if the current context is
1165bd8deadSopenharmony_ci    not direct, or if there is no current context.
1175bd8deadSopenharmony_ci
1185bd8deadSopenharmony_ci    glXWaitVideoSyncSGI returns GLX_BAD_VALUE if parameter <divisor> is less
1195bd8deadSopenharmony_ci    than or equal to zero, or if parameter <remainder> is less than zero.
1205bd8deadSopenharmony_ci
1215bd8deadSopenharmony_ciNew State
1225bd8deadSopenharmony_ci
1235bd8deadSopenharmony_ci    Get Value			Get Command		Type	Initial Value
1245bd8deadSopenharmony_ci    ---------			-----------		----	-------------
1255bd8deadSopenharmony_ci    [video sync counter]	glXGetVideoSyncSGI	Z+	unknown
1265bd8deadSopenharmony_ci
1275bd8deadSopenharmony_ciNew Implementation Dependent State
1285bd8deadSopenharmony_ci
1295bd8deadSopenharmony_ci    None
1305bd8deadSopenharmony_ci
1315bd8deadSopenharmony_ciVersion
1325bd8deadSopenharmony_ci
1335bd8deadSopenharmony_ci    $Date: 1995/09/15 01:22:58 $ $Revision: 1.8 $
1345bd8deadSopenharmony_ci
1355bd8deadSopenharmony_ci    Khronos revision 2:
1365bd8deadSopenharmony_ci    - Note ARB_framebuffer_object interaction (ajax)
137