QMK/lib/ugfx/3rdparty/tinygl-0.4-ugfx/LIMITATIONS

207 lines
4.4 KiB
Plaintext
Raw Normal View History

2020-03-23 10:48:11 +01:00
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.