shithub: tinygl

ref: 8a2faea87198104c3f8360a09d126a61e70fecd2
dir: /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_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.