TinyGL v0.4
Supported OpenGL API functions

API Function
Comments / Limitations


int glArrayElement (GLint i);
void glBegin (void);
No tests are performed to prevent some functions of being executed
between glBegin/glEnd.

void glBindTexture (GLenum target, GLuint texture);

void glBlendFunc (GLenum sfactor, GLenum dfactor);
sfactor must be GL_SRC_ALPHA and dfactor must be GL_ONE_MINUS_SRC_ALPHA.
void glCallList (GLuint list);

void glClear (GLbitfield mask );
The whole zbuffer and the colors are cleared in any case. The clear color can be redefined, by *not* the initial z value.
int glClearColor (GLclampf red, GLclampf green,GLclampf blue, GLclampf alpha);
The whole zbuffer and the colors are cleared in any case. The clear color can be redefined, by *not* the initial z value.
void glClearDepth (GLclampd depth);
The whole zbuffer and the colors are cleared in any case. The clear color can be redefined, by *not* the initial z value.
void glColor Implemented prototypes: glColor3f, glColor3fv, glColor4f, glColor4fv
void glColorMaterial (Glenum face, GLenum mode);

void glColorPointer (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);

void glCullFace (GLenum mode);

void glDeleteTextures (GLsizei n, const GLuint *textures);

void glDisable (GLenum cap);
(see glEnable for supported flags)
void glDisableClientState (GLenum cap);
(see glEnableClientState for supported flags)
void glEdgeFlag (GLboolean flag);
void glEnable (GLenum cap);
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).

void glEnableClientState (GLenum cap);
No support for GL_INDEX_ARRAY_POINTER or GL_EDGE_FLAG_ARRAY_POINTER
void glEnd (void);

void glEndList (void);

void glFlush (void);
Ignored.
void glFrontFace (GLenum mode);
void glFrustum (GLdouble left, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);

void glGenLists (GLsizei range);

void glGenTextures (GLsizei n, GLuint *textures);

void glGetFloatv (GLenum pname, GLfloat *params);
pname can be GL_TEXTURE_MATRIX, GL_PROJECTION_MATRIX, GL_MODELVIEW_MATRIX, GL_LINE_WIDTH, GL_LINE_WIDTH_RANGE, GL_POINT_SIZE, GL_POINT_SIZE_RANGE
void glGetIntegerv (GLenum pname, GLfloat *params)
pname can be GL_VIEWPORT, GL_MAX_MODELVIEW_STACK_DEPTH, GL_MAX_PROJECTION_STACK_DEPTH, GL_MAX_LIGHTS, GL_MAX_TEXTURE_SIZE,
GL_MAX_TEXTURE_STACK_DEPTH

const GLubyte* glGetString (GLenum name);

void glHint (GLenum target, GLenum mode);

void glIsList (GLuint list);

void glLight
The OpenGL lighting is implemented but not optimized.
Implemented prototypes: glLightf, glLightfv
void glLightModel
The OpenGL lighting is implemented but not optimized.
Implemented prototypes: glLightModelfv, glLightModeli
void glLoadMatrix
Implemented prototypes: glLoadMatrixf
void glLoadName (GLuint name);
void glMaterial
Implemented prototypes: glMaterialf, glMaterialfv
void glMatrixMode (GLenum mode);

void glMultMatrix
Implemented prototypes: glMultMatrixf
void glNewList (GLuint list, GLenum mode);

void glNormal
Implemented prototypes: glNormal3f, glNormal3fv
void glNormalPointer (GLenum type, GLsizei stride,  const GLvoid *pointer);

void glPixelStore
Implemented prototypes: glPixelStorei
The pixels are always byte aligned.

void glPolygonMode (GLenum face, GLenum mode);

void glPolygonOffset (GLfloat factor, GLfloat units);

void glPopMatrix (void);

void glPopName (void);

void glPushMatrix (void);

void glPushName (GLuint name);

void glRenderMode (GLenum mode);
Only the modes GL_RENDER and GL_SELECT are implemented.
void glRotate
Implemented prototypes: glRotatef
void glScale
Implemented prototypes: glScalef
void glSelectBuffer (GLsizei size, GLuint *buffer);

void glShadeModel (GLenum mode);

void glTexCoord
Implemented prototypes: glTexCoord2f, glTexCoord2fv, glTexCoord4f
void glTexCoordPointer (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);

void glTexEnv
Implemented prototypes: glTexEnvi
The only supported mode is GL_DECAL
void glTexImage2D (GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
Only RGB UNSIGNED_BYTES bitmaps are accepted. They are internally resized to 256x256 so it's best to use that size. No mipmapping or borders are implemented.
void glTexParameter
Implemented prototypes: glTexParameteri.
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);
void glTranslate
Implemented prototypes: glTranslatef
void glVertex
Implemented prototypes: glVertex2f, glVertex3f, glVertex3fv, glVertex4f
void glVertexPointer (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);

void glViewport (GLint x, GLint y, GLsizei width, GLsize height);