-
Notifications
You must be signed in to change notification settings - Fork 14
/
LIMITATIONS
206 lines (112 loc) · 4.41 KB
/
LIMITATIONS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
Here are listed the functions that TinyGL understands with the known
limitations. The non mentionned functions are *not* implemented and
must not be used.
************ glEnable / glDisable
- The following flags are handled:
GL_CULL_FACE, GL_LIGHTING, GL_COLOR_MATERIAL, GL_TEXTURE_2D, GL_NORMALIZE,
GL_LIGHTx, GL_POLYGON_OFFSET_FILL, GL_POLYGON_OFFSET_POINT,
GL_POLYGON_OFFSET_LINE
- GL_DEPTH_TEST is accepted, but it is only used for lines. For all
other primitives, Z buffer use is assumed. The DepthMode is
hardcoded as GL_LESS (OpenGL default).
************ glShadeModel
OK.
************ glCullFace
OK.
************ glPolygonMode
OK.
************ glBegin
No tests are performed to prevent some functions of being executed
between glBegin/glEnd.
************ glEnd
OK.
************ glVertex
Some prototypes are not implemented.
************ glColor
Some prototypes are not implemented.
************ glNormal
Some prototypes are not implemented.
************ glTexCoord
- Some prototypes are not implemented.
- The Matrix transformation is not applied yet.
************ glEdgeFlag
OK. The edge handling has to be tested, although it is not much useful
in TinyGL.
************ glMatrixMode / glLoadMatrixf / glLoadIdentity / glMultMatrixf /
glPushMatrix / glPopMatrix / glRotatef / glTranslatef / glScalef /
glFrustum
- The prototypes with doubles are not implemented.
************ glViewport
GlViewport calls a function pointers to tell glx (or another display
system) to resize the Z buffer and the ximage. Made optional in
version 0.2.
************ glGenLists / glIsList / glNewList / glEndList / glCallList
OK.
************ glClear / glClearColor / glClearDepth
The whole zbuffer and the colors are cleared in any case. The clear color
can be redefined, by *not* the initial z value.
************ glRenderMode
Only the modes GL_RENDER and GL_SELECT are implemented.
************ glSelectBuffer / glInitNames / glPushName / glPopName / glLoadName
OK.
************ glGenTextures / glDeleteTextures / glBindTexture
OK. These functions should be used to get the maximum performance with
TinyGL.
************ glTexImage2D
The function accepts only RGB UNSIGNED_BYTES bitmaps. They are
internally resized to 256x256 so you'd better use that size. No
mipmapping is implemented although it will come if asked. No borders
are implemented.
************ glTexEnvi
The only supported mode is GL_DECAL, although others are planned if
asked.
************ glTexParameteri
The other prototypes are not implemented. Only the follwing mode are
implemented:
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
************ glPixelStorei
The pixels are alware byte aligned.
************ glMaterialfv / glMaterialf / glColorMaterial
OK.
************ glLightfv / glLightf / glLightModeli / glLightModelfv
OK. The OpenGL lightening is implemented but not optimized.
************ glFlush
Ignored.
************ glHint
Ignored.
************ glGetIntegerv
- only GL_VIEWPORT, GL_MAX_MODELVIEW_STACK_DEPTH,
GL_MAX_PROJECTION_STACK_DEPTH, GL_MAX_LIGHTS, GL_MAX_TEXTURE_SIZE,
GL_MAX_TEXTURE_STACK_DEPTH
************ glGetIntegerv
- only GL_TEXTURE_MATRIX, GL_PROJECTION_MATRIX, GL_MODELVIEW_MATRIX,
GL_LINE_WIDTH, GL_LINE_WIDTH_RANGE, GL_POINT_SIZE, GL_POINT_SIZE_RANGE
************ glPolygonOffset
- only API implemented.
************ glEnableClientState, glDisableClientState,
- No support for GL_INDEX_ARRAY_POINTER or GL_EDGE_FLAG_ARRAY_POINTER
************ glVertexPointer, glNormalPointer,
glColorPointer, glTexureCoordPointer
- OK
------------------------------------------------------------------------------
TinyGL GLX emulation:
************ glXQueryExtension
Returns always True
************ glXChooseVisual
Only 8 bit Pseudocolor or 16 bit Truecolor Visual are accepted. The
attribute list is ignored.
************ glXCreateContext
The sharing is not implemented although the code could handle it.
************ glXDestroyContext
OK.
************ glXMakeCurrent
Not all the syntax is supported yet, in particular with the 'NULL' or
'None' parameters.
************ glXSwapBuffers
OK.
************ glXWaitGL / glXWaitX
Ignored.
See README.BEOS for BeOS limitations.