|
GLU ES v1.5 implementation notes
1. Missing functions
The functions gluBuild1DMipmapLevels(), gluBuild1DMipmaps(), gluBuild3DMipmaps(), gluBuild3DMipmaps() are missing because OpenGL ES 1.x doesn't support 1D and 3D textures. 1D texture nevertheless could be emulated as 2D texture with height equal to one.
2. Quadrics implementation notes
The following functions: gluCylinder(), gluDisk(), gluPartialDisk(), gluSphere() are using OpenGL ES arrays internally. After return from these functions color, vertex, texture and normal arrays are disabled, array pointers are
changed and must be reinstalled by caller to its original state.
Functions gluCylinder(), gluDisk(), gluPartialDisk(), gluSphere() now takes a GLfloat type instead of all GLdouble function arguments in the original GLU.
3. Tessellation objects implementation notes
All callbacks now using GLfloat for parameters instead of GLdouble as in the original GLU.
4. NURBS implementation notes
The notes below concern OpenGL ES 1.0 support only:
a) NURBS code internally queries current OpenGL ES matrices during rendering, so all queries for OpenGL ES matrices are performed through the GL_OES_query_matrix extension. GL_OES_matrix_get extension is not supported now, if your OpenGL ES 1.0 implementation provides GL_OES_matrix_get extension only, feel free to add support for it. Since GL_OES_query_matrix extension can query current matrix only, current matrix is switched internally in NURBS code and after NURBS function calls GL_MODELVIEW_MATRIX became current.
b) NURBS code queries current viewport settings, but in OpenGL ES 1.0 it is not possible to query current viewport settings. GLU ES implementation provides the following functions to workaround this issue:
void gluViewport(GLint x, GLint y, GLsizei width, GLsizei height); - the function parameters are identical to glViewport() function. Developer must call gluViewport() after each glViewport() function call, when GLU ES NURBS are used.
void gluGetIntegerv(GLenum pname, GLint* params); - the function parameters are identical to glGetIntegerv() function. Developer have to call gluGetIntegerv() function with GL_VIEWPORT as pname, if current viewport settings are required to be fetched. All other pnames are forwarded to glGetIntegerv().
void gluGetFloatv(GLenum pname, GLfloat* params); - the function parameters are identical to glGetFloatv() function in OpenGL ES 1.1 and above implementations. Only this pnames are supported: GL_MODELVIEW_MATRIX, GL_PROJECTION_MATRIX. When OpenGL ES 1.1 is used all other pnames are forwarded to glGetFloatv().
The notes below concern OpenGL ES 1.x support:
GLU ES v1.5 provides the following functions:
void gluEnable(GLenum cap); and void gluDisable(GLenum cap); to add compatibility with OpenGL.
GLU ES v1.5 provides the following defines:
GLU_MAP1_COLOR_4
GLU_MAP1_INDEX
GLU_MAP1_NORMAL
GLU_MAP1_TEXTURE_COORD_1
GLU_MAP1_TEXTURE_COORD_2
GLU_MAP1_TEXTURE_COORD_3
GLU_MAP1_TEXTURE_COORD_4
GLU_MAP1_VERTEX_3
GLU_MAP1_VERTEX_4
GLU_MAP2_COLOR_4
GLU_MAP2_INDEX
GLU_MAP2_NORMAL
GLU_MAP2_TEXTURE_COORD_1
GLU_MAP2_TEXTURE_COORD_2
GLU_MAP2_TEXTURE_COORD_3
GLU_MAP2_TEXTURE_COORD_4
GLU_MAP2_VERTEX_3
GLU_MAP2_VERTEX_4
GLU_AUTO_NORMAL
to be used in gluEnable() and gluDisable() functions.
|