| Name |
| |
| MESA_swap_control |
| |
| Name Strings |
| |
| GLX_MESA_swap_control |
| |
| Contact |
| |
| Ian Romanick, IBM, idr at us.ibm.com |
| |
| Status |
| |
| Deployed in DRI drivers post-XFree86 4.3. |
| |
| Version |
| |
| Date: 5/1/2003 Revision: 1.1 |
| |
| Number |
| |
| ??? |
| |
| Dependencies |
| |
| None |
| |
| Based on GLX_SGI_swap_control version 1.9 and WGL_EXT_swap_control |
| version 1.5. |
| |
| Overview |
| |
| This extension allows an application to specify a minimum periodicity |
| of color buffer swaps, measured in video frame periods. |
| |
| Issues |
| |
| * Should implementations that export GLX_MESA_swap_control also export |
| GL_EXT_swap_control for compatibility with WGL_EXT_swap_control? |
| |
| UNRESOLVED. |
| |
| New Procedures and Functions |
| |
| int glXSwapIntervalMESA(unsigned int interval) |
| int glXGetSwapIntervalMESA(void) |
| |
| New Tokens |
| |
| None |
| |
| Additions to Chapter 2 of the 1.4 GL Specification (OpenGL Operation) |
| |
| None |
| |
| Additions to Chapter 3 of the 1.4 GL Specification (Rasterization) |
| |
| None |
| |
| Additions to Chapter 4 of the 1.4 GL Specification (Per-Fragment Operations |
| and the Framebuffer) |
| |
| None |
| |
| Additions to Chapter 5 of the 1.4 GL Specification (Special Functions) |
| |
| None |
| |
| Additions to Chapter 6 of the 1.4 GL Specification (State and State Requests) |
| |
| None |
| |
| Additions to the GLX 1.3 Specification |
| |
| [Add the following to Section 3.3.10 of the GLX Specification (Double |
| Buffering)] |
| |
| glXSwapIntervalMESA specifies the minimum number of video frame periods |
| per buffer swap. (e.g. a value of two means that the color buffers |
| will be swapped at most every other video frame.) A return value |
| of zero indicates success; otherwise an error occurred. The interval |
| takes effect when glXSwapBuffers is first called subsequent to the |
| glXSwapIntervalMESA call. |
| |
| A video frame period is the time required by the monitor to display a |
| full frame of video data. In the case of an interlaced monitor, |
| this is typically the time required to display both the even and odd |
| fields of a frame of video data. |
| |
| If <interval> is set to a value of 0, buffer swaps are not synchro- |
| nized to a video frame. The <interval> value is silently clamped to |
| the maximum implementation-dependent value supported before being |
| stored. |
| |
| The swap interval is not part of the render context state. It cannot |
| be pushed or popped. The current swap interval for the window |
| associated with the current context can be obtained by calling |
| glXGetSwapIntervalMESA. The default swap interval is 0. |
| |
| On XFree86, setting the environment variable LIBGL_THROTTLE_REFRESH sets |
| the swap interval to 1. |
| |
| Errors |
| |
| glXSwapIntervalMESA returns GLX_BAD_CONTEXT if there is no current |
| GLXContext or if the current context is not a direct rendering context. |
| |
| GLX Protocol |
| |
| None. This extension only extends to direct rendering contexts. |
| |
| New State |
| |
| Get Value Get Command Type Initial Value |
| --------- ----------- ---- ------------- |
| [swap interval] GetSwapInterval Z+ 0 |
| |
| New Implementation Dependent State |
| |
| None |
| |
| |
| Revision History |
| |
| 1.1, 5/1/03 Added the issues section and contact information. |
| Changed the default swap interval to 0. |
| 1.0, 3/17/03 Initial version based on GLX_SGI_swap_control and |
| WGL_EXT_swap_control. |