ref: 33cc6572582f25b2b284f17f2562095ef9f4cb05
dir: /LIMITATIONS/
//Maintainer's note: This file is not maintained, it remains in the repository as a historical artifact. 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.