Back to the OpenGL extension cross reference

GL_IBM_static_data


Name


    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.]

New Procedures and Functions


    FlushStaticDataIBM(GLenum target)

New Tokens


    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