home *** CD-ROM | disk | FTP | other *** search
/ SGI Developer Toolbox 6.1 / SGI Developer Toolbox 6.1 - Disc 1.iso / toolbox / documents / OpenGL / extensions / spec / swap_control.spec < prev    next >
Encoding:
Text File  |  1996-11-11  |  4.5 KB  |  159 lines

  1. XXX - Not complete yet!!!
  2.  
  3. Name
  4.  
  5.     SGI_swap_control
  6.  
  7. Name Strings
  8.  
  9.     GLX_SGI_swap_control
  10.  
  11. Version
  12.  
  13.     $Date: 1995/09/30 02:32:28 $ $Revision: 1.1 $
  14.  
  15. Number
  16.  
  17.     40
  18.  
  19. Dependencies
  20.  
  21.     None
  22.  
  23. Overview
  24.  
  25.     This extension allows an application to specify a minimum periodicity
  26.     of color buffer swaps, measured in display retrace periods.  It also
  27.     allows multiple hardware rendering accelerators to be sequenced in
  28.     round-robin fashion (increasing rendering throughput at the expense
  29.     of latency) or to be operated independently with their color buffer
  30.     swaps synchronized.
  31.  
  32. Issues
  33.  
  34.     When the display is interlaced, does swap interval operate on fields or
  35.     frames?
  36.  
  37.     I had to change the type of the <interval> parameter to
  38.     glXSwapIntervalSGI.  (sizei cannot be used because zero is not an
  39.     accepted value, and also perhaps because it is a GL type.)
  40.  
  41.     There is no way to query the swap mode.
  42.  
  43.     There is no way for an application to determine what MUXPIPE masks
  44.     are valid.
  45.  
  46.     glXSwapModeivSGI parameter <params> is valid only for a subset of
  47.     possible <mode> tokens.  Passing useless data is inconsistent with the
  48.     design of the OpenGL API.
  49.  
  50. New Procedures and Functions
  51.  
  52.     int glXSwapIntervalSGI(int interval)
  53.  
  54.     int glXSwapModeivSGI(enum mode, 
  55.              const int* params)
  56.  
  57. New Tokens
  58.  
  59.     Accepted by the <mode> parameter of glXSwapModeivSGI:
  60.  
  61.     GLX_SWAP_DEFAULT_SGI
  62.     GLX_SWAP_MUXPIPE_SGI        
  63.     GLX_SWAP_GANG_SGI        (* not public)
  64.  
  65.     Accepted by the <params> parameter of glXSwapModeivSGI, when its
  66.     <mode> parameter is GLX_SWAP_MUXPIPE_SGI:
  67.  
  68.     GLX_MUXPIPE0_SGI
  69.     GLX_MUXPIPE1_SGI
  70.     GLX_MUXPIPE2_SGI
  71.  
  72. Additions to Chapter 2 of the 1.0 Specification (OpenGL Operation)
  73.  
  74.     None
  75.  
  76. Additions to Chapter 3 of the 1.0 Specification (Rasterization)
  77.  
  78.     None
  79.  
  80. Additions to Chapter 4 of the 1.0 Specification (Per-Fragment Operations and
  81. the Framebuffer)
  82.  
  83.     None
  84.  
  85. Additions to Chapter 5 of the 1.0 Specification (Special Functions)
  86.  
  87.     None
  88.  
  89. Additions to Chapter 6 of the 1.0 Specification (State and State Requests)
  90.  
  91.     None
  92.  
  93. Additions to the GLX Specification
  94.  
  95.     [Add the following to Section 3.2.6 of the GLX Specification (Double
  96.      Buffering)]
  97.  
  98.     glXSwapIntervalSGI specifies the minimum number of display retraces
  99.     per buffer swap.  (e.g. a value of two means that the color buffers
  100.     will be swapped at most every other display retrace.)  A return value
  101.     of zero indicates success; otherwise an error occurred.  The interval
  102.     takes effect when glXSwapBuffers is first called subsequent to the
  103.     glXSwapIntervalSGI call.
  104.  
  105.     glXSwapModeivSGI() specifies a mode that modifies the behavior of
  106.     glXSwapBuffers.  It also specifies any additional parameters that
  107.     affect the new mode.  <mode> is one of:
  108.  
  109.     GLX_SWAP_MUXPIPE_SGI    <params> points to a bitfield that 
  110.                 indicates a set of pipes which are being 
  111.                 multiplexed into the same video output
  112.                 channel.  It can be any bitwise OR of the
  113.                 valid set of masks, which are identified as
  114.                 GLX_MUXPIPE0_SGI, GLX_MUXPIPE1_SGI, and
  115.                 GLX_MUXPIPE2_SGI.  In this mode, buffer
  116.                 swaps are interlocked among the pipes in
  117.                 round-robin order.  BAD_VALUE_SGI is
  118.                 returned if <params> specifies an invalid
  119.                 mask.
  120.  
  121.         GLX_SWAP_GANG_SGI       <params> is not used.  Buffer swaps are
  122.                                 synchronized across all pipes in the gang
  123.                                 configuration.
  124.  
  125.     GLX_SWAP_DEFAULT_SGI    <params> is not used.  The semantics of
  126.                 glXSwapBuffers are as specified in the 1.0
  127.                 GLX Specification.
  128.  
  129.     SWAP_DEFAULT_SGI is the only mode supported for indirect contexts.  A
  130.     return value of zero indicates success; otherwise an error occurred.
  131.     The specified mode takes effect when glXSwapBuffers is first called
  132.     subsequent to the call to glXSwapModeivSGI.
  133.  
  134. Errors
  135.  
  136.     glXSwapIntervalSGI returns GLX_BAD_VALUE if parameter <interval> is
  137.     less than or equal to zero.
  138.  
  139.     glXSwapIntervalSGI returns GLX_BAD_CONTEXT if there is no current
  140.     GLXContext.
  141.  
  142.     glXSwapModeivSGI returns GLX_BAD_ENUM if parameter <mode> is not
  143.     GLX_SWAP_MUXPIPE_SGI, GLX_SWAP_GANG_SGI, or GLX_SWAP_DEFAULT_SGI.
  144.  
  145.     glXSwapModeivSGI returns GLX_BAD_CONTEXT if the current context is
  146.     indirect and parameter <mode> is not GLX_SWAP_DEFAULT_SGI, or if there
  147.     is no current GLXContext.
  148.  
  149. New State
  150.  
  151.     Get Value        Get Command    Type        Initial Value
  152.     ---------        -----------    ----        -------------
  153.     [swap mode]        [none]        Z3        GLX_SWAP_DEFAULT_SGI
  154.     [swap muxpipe]    [none]        bitfield    [none]
  155.  
  156. New Implementation Dependent State
  157.  
  158.     None
  159.