Back to the OpenGL extension cross reference
GL_IBM_static_data
    IBM_static_data
Name Strings
    GL_IBM_static_data
Version
    $Date: 1999/12/28 01:40:35 $ $Revision: 1.2 $
    IBM Id: static_data.spec,v 1.1 1997/07/29 12:52:51 pbrown Exp
Number
    223
Dependencies
    None
Overview
    The OpenGL specification requires that data be bound at call time.	The
    IBM_static_data extension relaxes the bind-at-call semantics allowing
    an implementation to dereference pointers some time after the
    corresponding calls.
    Because of the bind-at-call sematics of standard OpenGL, an
    implementation is required to either copy or fully process data at the
    time it is provided by the application.  Copying data substantially
    increases the demands on the memory subsystem; processing the data may
    result in ineffective amortization of fixed costs.	Neither copying nor
    processing allows multiple rendering threads to operate on the original
    data.
Issues
  * Indirect rendering is ignored; is there anything useful we can do?
  * This specification has been designed to be generic, but at this time
    only allows vertex array data to be noted as static.  Should the
    specification be extended to include data specified in one or more
    of the following ways:
      pixel data [glBitmap, glDrawPixels]
      pixel maps [glPixelMap*]
      vertex data [glVertex*v, glColor*v, glNormal*v, etc.]
      evaluator maps [glMap*]
      texture maps [glTexImage*, glTexSubImage*]
      matrices [glLoadMatrix*, glMultMatrix*]
      other attribute calls [glMaterial*v, glLight*v, etc.]
    FlushStaticDataIBM(GLenum target)
    Accepted by the <target> parameter of FlushStaticDataIBM:
	ALL_STATIC_DATA_IBM			103060
    Accepted by the <cap> parameter of EnableClientState, DisableClientState,
    and IsEnabled, and the <target> parameter of FlushStaticDataIBM:
	STATIC_VERTEX_ARRAY_IBM			103061
Additions to Chapter 2 of the GL Specification (OpenGL Operation)
  Additions to Section 2.8, Vertex Arrays
    Typically, the vertex array data is dereferenced at the time of a call
    to glArrayElement, glDrawArrays, or glDrawElements, after which it can
    be changed by the caller.  Calling EnableClientState with a target of
    STATIC_VERTEX_ARRAY_IBM relaxes this requirement.  Instead, only the
    memory addresses of such data are bound at the time of the call.  If
    vertex array data are changed, freed, or reallocated while
    STATIC_VERTEX_ARRAY_IBM is enabled, the results of any glArrayElement,
    glDrawArrays, or glDrawElements calls using such an array are
    undefined.	In order to free, change or reallocate the vertex array
    data specified while STATIC_VERTEX_ARRAY_IBM was enabled, either
    glFinish or glFlushStaticDataIBM must be used.
    The client state required to implement vertex arrays consist of six
    boolean values representing vertex array enables, one boolean value
    representing the static vertex array enable, ...
Additions to Chapter 3 of the GL Specification (Rasterization)
    None
Additions to Chapter 4 of the GL Specification (Per-Fragment Operations
and the Framebuffer)
    None
Additions to Chapter 5 of the GL Specification (Special Functions)
  Additions to Section 5.5, Flush and Finish (added to the end of the section)
  The command
      void FlushStaticDataIBM( GLenum target ) ;
  forces all references to data relative to target that were specified as
  static to be resolved before this function returns.  While this is
  similar to Finish, only the references to the target static data are
  guaranteed to be completed upon return from this function.  This function
  does not guarantee that any rendering involving the target data is
  completed, only that the references to the data are completed.
Additions to Chapter 6 of the GL Specification (State and State Requests)
    None
Additions to the GLX Specification
    None
GLX Protocol
    None.
Errors
    None
New State
    Get Value			  Type Get Command  Value Sec	Attrib
    ----------------------------- ---- -----------  ----- ----	-------
    STATIC_VERTEX_ARRAY_IBM	  B    IsEnabled    False 2.8	vertex-array
New Implementation Dependent State
    None
Implementation Support
   List of OpenGL implementations supporting the GL_IBM_static_data extension
Original File
   Original text file for the GL_IBM_static_data extension
Page generated on Sun Nov 20 18:38:56 2005