shithub: tinygl

ref: 83843949658da44765c67fe9a5865ff5503a9e24
dir: /src/LIMITATIONS/

View raw version

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

------------------------------------------------------------------------------