Merge branch 'master' of ssh://repo.or.cz/srv/git/tgl
[tgl.git] / LIMITATIONS
bloba20a8639acaf6ee60f877ce73ed45a7255a8b9ce
2 Here are listed the functions that TinyGL understands with the known
3 limitations. The non mentionned functions are *not* implemented and
4 must not be used.
7 ************ glEnable / glDisable
9 - The following flags are handled:
11 GL_CULL_FACE, GL_LIGHTING, GL_COLOR_MATERIAL, GL_TEXTURE_2D, GL_NORMALIZE,
12 GL_LIGHTx, GL_POLYGON_OFFSET_FILL, GL_POLYGON_OFFSET_POINT,
13 GL_POLYGON_OFFSET_LINE
16 - GL_DEPTH_TEST is accepted, but it is only used for lines. For all
17   other primitives, Z buffer use is assumed.  The DepthMode is
18   hardcoded as GL_LESS (OpenGL default).
20 ************ glShadeModel
22 OK.
24 ************ glCullFace
26 OK.
28 ************ glPolygonMode
30 OK.
32 ************ glBegin
34 No tests are performed to prevent some functions of being executed
35 between glBegin/glEnd.
37 ************ glEnd
39 OK.
41 ************ glVertex
43 Some prototypes are not implemented.
46 ************ glColor
48 Some prototypes are not implemented.
50 ************ glNormal
52 Some prototypes are not implemented.
54 ************ glTexCoord
56 - Some prototypes are not implemented.
58 - The Matrix transformation is not applied yet.
60 ************ glEdgeFlag
62 OK. The edge handling has to be tested, although it is not much useful
63 in TinyGL.
65 ************ glMatrixMode / glLoadMatrixf / glLoadIdentity / glMultMatrixf /
66              glPushMatrix / glPopMatrix / glRotatef / glTranslatef / glScalef /
67              glFrustum
69 - The prototypes with doubles are not implemented.
71 ************ glViewport
73 GlViewport calls a function pointers to tell glx (or another display
74 system) to resize the Z buffer and the ximage. Made optional in
75 version 0.2.
77 ************ glGenLists / glIsList / glNewList / glEndList / glCallList
79 OK.
81 ************ glClear / glClearColor / glClearDepth
83 The whole zbuffer and the colors are cleared in any case. The clear color
84 can be redefined, by *not* the initial z value.
86 ************ glRenderMode
88 Only the modes GL_RENDER and GL_SELECT are implemented.
90 ************ glSelectBuffer / glInitNames / glPushName / glPopName / glLoadName
92 OK.
94 ************ glGenTextures / glDeleteTextures / glBindTexture 
96 OK. These functions should be used to get the maximum performance with
97 TinyGL. 
99 ************ glTexImage2D
101 The function accepts only RGB UNSIGNED_BYTES bitmaps. They are
102 internally resized to 256x256 so you'd better use that size. No
103 mipmapping is implemented although it will come if asked. No borders
104 are implemented.
106 ************ glTexEnvi
108 The only supported mode is GL_DECAL, although others are planned if
109 asked.
112 ************ glTexParameteri
114 The other prototypes are not implemented. Only the follwing mode are
115 implemented:
117   glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
118   glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
119   glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
120   glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
122 ************ glPixelStorei
124 The pixels are alware byte aligned.
126 ************ glMaterialfv / glMaterialf / glColorMaterial
131 ************ glLightfv / glLightf / glLightModeli / glLightModelfv
133 OK. The OpenGL lightening is implemented but not optimized.
136 ************ glFlush
138 Ignored.
140 ************ glHint
142 Ignored.
144 ************ glGetIntegerv
146 - only GL_VIEWPORT, GL_MAX_MODELVIEW_STACK_DEPTH, 
147 GL_MAX_PROJECTION_STACK_DEPTH, GL_MAX_LIGHTS, GL_MAX_TEXTURE_SIZE,
148 GL_MAX_TEXTURE_STACK_DEPTH
150 ************ glGetIntegerv
152 - only GL_TEXTURE_MATRIX, GL_PROJECTION_MATRIX, GL_MODELVIEW_MATRIX,
153 GL_LINE_WIDTH, GL_LINE_WIDTH_RANGE, GL_POINT_SIZE, GL_POINT_SIZE_RANGE
155 ************ glPolygonOffset
157 - only API implemented.
159 ************ glEnableClientState, glDisableClientState,
160              
161 - No support for GL_INDEX_ARRAY_POINTER or GL_EDGE_FLAG_ARRAY_POINTER
163 ************ glVertexPointer, glNormalPointer, 
164              glColorPointer, glTexureCoordPointer
166 - OK
168 ------------------------------------------------------------------------------
170 TinyGL GLX emulation:
173 ************ glXQueryExtension
175 Returns always True
177 ************ glXChooseVisual
179 Only 8 bit Pseudocolor or 16 bit Truecolor Visual are accepted. The
180 attribute list is ignored.
182 ************ glXCreateContext
184 The sharing is not implemented although the code could handle it.
186 ************ glXDestroyContext
190 ************ glXMakeCurrent
192 Not all the syntax is supported yet, in particular with the 'NULL' or
193 'None' parameters.
196 ************ glXSwapBuffers
200 ************ glXWaitGL / glXWaitX
202 Ignored.
205 See README.BEOS for BeOS limitations.