ref: c8a1b2691a467bb384a839d1358677fceba71006
dir: /src/LIMITATIONS/
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_STIPPLE, 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). ************ glPolygonStipple OK. (Implemented by Gek! The variables for it are stored per zBuffer rather than per context.) ************ glDeleteList(GLuint list) OK. ************ glDeleteLists(GLuint list, GLuint range) OK. ************ 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 (TODO) ************ 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 always 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 ------------------------------------------------------------------------------