• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1Name
2
3    IBM_static_data
4
5Name Strings
6
7    GL_IBM_static_data
8
9Version
10
11    $Date: 1999/12/28 01:40:35 $ $Revision: 1.2 $
12    IBM Id: static_data.spec,v 1.1 1997/07/29 12:52:51 pbrown Exp
13
14Number
15
16    223
17
18Dependencies
19
20    None
21
22Overview
23
24    The OpenGL specification requires that data be bound at call time.	The
25    IBM_static_data extension relaxes the bind-at-call semantics allowing
26    an implementation to dereference pointers some time after the
27    corresponding calls.
28
29    Because of the bind-at-call sematics of standard OpenGL, an
30    implementation is required to either copy or fully process data at the
31    time it is provided by the application.  Copying data substantially
32    increases the demands on the memory subsystem; processing the data may
33    result in ineffective amortization of fixed costs.	Neither copying nor
34    processing allows multiple rendering threads to operate on the original
35    data.
36
37Issues
38
39  * Indirect rendering is ignored; is there anything useful we can do?
40
41  * This specification has been designed to be generic, but at this time
42    only allows vertex array data to be noted as static.  Should the
43    specification be extended to include data specified in one or more
44    of the following ways:
45      pixel data [glBitmap, glDrawPixels]
46      pixel maps [glPixelMap*]
47      vertex data [glVertex*v, glColor*v, glNormal*v, etc.]
48      evaluator maps [glMap*]
49      texture maps [glTexImage*, glTexSubImage*]
50      matrices [glLoadMatrix*, glMultMatrix*]
51      other attribute calls [glMaterial*v, glLight*v, etc.]
52
53New Procedures and Functions
54
55    FlushStaticDataIBM(GLenum target)
56
57New Tokens
58
59    Accepted by the <target> parameter of FlushStaticDataIBM:
60
61	ALL_STATIC_DATA_IBM			103060
62
63    Accepted by the <cap> parameter of EnableClientState, DisableClientState,
64    and IsEnabled, and the <target> parameter of FlushStaticDataIBM:
65
66	STATIC_VERTEX_ARRAY_IBM			103061
67
68Additions to Chapter 2 of the GL Specification (OpenGL Operation)
69
70  Additions to Section 2.8, Vertex Arrays
71
72    Typically, the vertex array data is dereferenced at the time of a call
73    to glArrayElement, glDrawArrays, or glDrawElements, after which it can
74    be changed by the caller.  Calling EnableClientState with a target of
75    STATIC_VERTEX_ARRAY_IBM relaxes this requirement.  Instead, only the
76    memory addresses of such data are bound at the time of the call.  If
77    vertex array data are changed, freed, or reallocated while
78    STATIC_VERTEX_ARRAY_IBM is enabled, the results of any glArrayElement,
79    glDrawArrays, or glDrawElements calls using such an array are
80    undefined.	In order to free, change or reallocate the vertex array
81    data specified while STATIC_VERTEX_ARRAY_IBM was enabled, either
82    glFinish or glFlushStaticDataIBM must be used.
83
84    The client state required to implement vertex arrays consist of six
85    boolean values representing vertex array enables, one boolean value
86    representing the static vertex array enable, ...
87
88Additions to Chapter 3 of the GL Specification (Rasterization)
89
90    None
91
92Additions to Chapter 4 of the GL Specification (Per-Fragment Operations
93and the Framebuffer)
94
95    None
96
97Additions to Chapter 5 of the GL Specification (Special Functions)
98
99  Additions to Section 5.5, Flush and Finish (added to the end of the section)
100
101  The command
102
103      void FlushStaticDataIBM( GLenum target ) ;
104
105  forces all references to data relative to target that were specified as
106  static to be resolved before this function returns.  While this is
107  similar to Finish, only the references to the target static data are
108  guaranteed to be completed upon return from this function.  This function
109  does not guarantee that any rendering involving the target data is
110  completed, only that the references to the data are completed.
111
112Additions to Chapter 6 of the GL Specification (State and State Requests)
113
114    None
115
116Additions to the GLX Specification
117
118    None
119
120GLX Protocol
121
122    None.
123
124Errors
125
126    None
127
128New State
129
130    Get Value			  Type Get Command  Value Sec	Attrib
131    ----------------------------- ---- -----------  ----- ----	-------
132    STATIC_VERTEX_ARRAY_IBM	  B    IsEnabled    False 2.8	vertex-array
133
134New Implementation Dependent State
135
136    None
137