15bd8deadSopenharmony_ciName
25bd8deadSopenharmony_ci
35bd8deadSopenharmony_ci    EXT_swap_control_tear
45bd8deadSopenharmony_ci
55bd8deadSopenharmony_ciName Strings
65bd8deadSopenharmony_ci
75bd8deadSopenharmony_ci    WGL_EXT_swap_control_tear
85bd8deadSopenharmony_ci    
95bd8deadSopenharmony_ciContact
105bd8deadSopenharmony_ci
115bd8deadSopenharmony_ci    Piers Daniell, NVIDIA (pdaniell 'at' nvidia.com)
125bd8deadSopenharmony_ci    
135bd8deadSopenharmony_ciContributors
145bd8deadSopenharmony_ci
155bd8deadSopenharmony_ci    Antonio Tejada, NVIDIA
165bd8deadSopenharmony_ci    Jeff Bolz, NVIDIA
175bd8deadSopenharmony_ci    Pat Brown, NVIDIA
185bd8deadSopenharmony_ci    Udo Lugauer, NVIDIA
195bd8deadSopenharmony_ci
205bd8deadSopenharmony_ciStatus
215bd8deadSopenharmony_ci
225bd8deadSopenharmony_ci    Complete. Shipping with NVIDIA Forceware 285.62 and AMD Catalyst 11.10
235bd8deadSopenharmony_ci    drivers. 
245bd8deadSopenharmony_ci
255bd8deadSopenharmony_ciVersion
265bd8deadSopenharmony_ci
275bd8deadSopenharmony_ci    Last Modified Date:         03/16/2011
285bd8deadSopenharmony_ci    Author revision:            1
295bd8deadSopenharmony_ci
305bd8deadSopenharmony_ciNumber
315bd8deadSopenharmony_ci
325bd8deadSopenharmony_ci    415
335bd8deadSopenharmony_ci
345bd8deadSopenharmony_ciDependencies
355bd8deadSopenharmony_ci
365bd8deadSopenharmony_ci    WGL_EXT_extensions_string is required.
375bd8deadSopenharmony_ci    
385bd8deadSopenharmony_ci    WGL_EXT_swap_control is required.
395bd8deadSopenharmony_ci
405bd8deadSopenharmony_ciOverview
415bd8deadSopenharmony_ci
425bd8deadSopenharmony_ci    This extension extends the existing WGL_EXT_swap_control extension
435bd8deadSopenharmony_ci    by allowing a negative <interval> parameter to wglSwapIntervalEXT.
445bd8deadSopenharmony_ci    The negative <interval> allows late swaps to occur without
455bd8deadSopenharmony_ci    synchronization to the video frame. This reduces the visual stutter
465bd8deadSopenharmony_ci    on late frames and reduces the stall on subsequent frames.
475bd8deadSopenharmony_ci
485bd8deadSopenharmony_ciNew Procedures and Functions
495bd8deadSopenharmony_ci
505bd8deadSopenharmony_ci    None
515bd8deadSopenharmony_ci
525bd8deadSopenharmony_ciNew Tokens
535bd8deadSopenharmony_ci
545bd8deadSopenharmony_ci    None
555bd8deadSopenharmony_ci
565bd8deadSopenharmony_ciAdditions to the WGL Specification
575bd8deadSopenharmony_ci
585bd8deadSopenharmony_ci    In the section that starts:
595bd8deadSopenharmony_ci
605bd8deadSopenharmony_ci    "wglSwapIntervalEXT specifies the minimum number of video frame periods
615bd8deadSopenharmony_ci    per buffer swap for the window associated with the current context."
625bd8deadSopenharmony_ci
635bd8deadSopenharmony_ci    After the following paragraph:
645bd8deadSopenharmony_ci
655bd8deadSopenharmony_ci    "If <interval> is set to a value of 0, buffer swaps are not synchron-
665bd8deadSopenharmony_ci    ized to a video frame.  The <interval> value is silently clamped to
675bd8deadSopenharmony_ci    the maximum implementation-dependent value supported before being
685bd8deadSopenharmony_ci    stored."
695bd8deadSopenharmony_ci
705bd8deadSopenharmony_ci    Add the following paragraph:
715bd8deadSopenharmony_ci
725bd8deadSopenharmony_ci    "If <interval> is negative, the minimum number of video frames between
735bd8deadSopenharmony_ci    buffer swaps is the absolute value of <interval>. In this case, if 
745bd8deadSopenharmony_ci    abs(<interval>) video frames have already passed from the previous swap 
755bd8deadSopenharmony_ci    when the swap is ready to be performed, the swap will occur without
765bd8deadSopenharmony_ci    synchronization to a video frame. When an unsynchronized swap happens,
775bd8deadSopenharmony_ci    the missed frame will count towards the minimum number of video frames
785bd8deadSopenharmony_ci    for the next swap."
795bd8deadSopenharmony_ci
805bd8deadSopenharmony_ciDependencies on WGL_EXT_extensions_string
815bd8deadSopenharmony_ci
825bd8deadSopenharmony_ci    Because there is no way to extend wgl, these calls are defined in
835bd8deadSopenharmony_ci    the ICD and can be called by obtaining the address with
845bd8deadSopenharmony_ci    wglGetProcAddress.  Because this extension is a WGL extension, it
855bd8deadSopenharmony_ci    is not included in the GL_EXTENSIONS string.  Its existence can be
865bd8deadSopenharmony_ci    determined with the WGL_EXT_extensions_string extension.
875bd8deadSopenharmony_ci
885bd8deadSopenharmony_ciErrors
895bd8deadSopenharmony_ci
905bd8deadSopenharmony_ci    In the section that starts:
915bd8deadSopenharmony_ci
925bd8deadSopenharmony_ci    "If the function succeeds, the return value is TRUE. If the function
935bd8deadSopenharmony_ci    fails, the return value is FALSE.  To get extended error information,
945bd8deadSopenharmony_ci    call GetLastError."
955bd8deadSopenharmony_ci    
965bd8deadSopenharmony_ci    Remove the following error:
975bd8deadSopenharmony_ci
985bd8deadSopenharmony_ci       ERROR_INVALID_DATA      The <interval> parameter is negative.
995bd8deadSopenharmony_ci
1005bd8deadSopenharmony_ciNew State
1015bd8deadSopenharmony_ci
1025bd8deadSopenharmony_ci    None
1035bd8deadSopenharmony_ci
1045bd8deadSopenharmony_ciNew Implementation Dependent State
1055bd8deadSopenharmony_ci
1065bd8deadSopenharmony_ci    None
1075bd8deadSopenharmony_ci
1085bd8deadSopenharmony_ciIssues
1095bd8deadSopenharmony_ci
1105bd8deadSopenharmony_ci    1) This extension doesn't provide a way to know when a video frame was
1115bd8deadSopenharmony_ci       missed and an unsynchronized swap was performed.
1125bd8deadSopenharmony_ci    
1135bd8deadSopenharmony_ci       UNRESOLVED: This extensions isn't meant to solve the issue of repeated
1145bd8deadSopenharmony_ci       tearing if the application falls behind the vsync. This extension just
1155bd8deadSopenharmony_ci       eliminates the extra stall that will occur if the application misses
1165bd8deadSopenharmony_ci       the target vsync. The application can use a CPU timer or the GL timer
1175bd8deadSopenharmony_ci       queries to determine if it is falling behind continually and can
1185bd8deadSopenharmony_ci       adjust it's workload appropriatly.
1195bd8deadSopenharmony_ci
1205bd8deadSopenharmony_ciRevision History
1215bd8deadSopenharmony_ci
1225bd8deadSopenharmony_ci    Rev.    Date    Author    Changes
1235bd8deadSopenharmony_ci    ----  --------  --------  -----------------------------------------
1245bd8deadSopenharmony_ci      1   03/16/11  pdaniell  Initial version.
125