- Document what works with GLES1 and GLES2 as of now
- Conditionaly disable what doesn't work so that libfreeglut can be compiled as-is for GLES1 and GLES2 (Android and Mesa EGL) - These #ifdef's are meant to disappear as more functions are implemented for GLES git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@1201 7f0cb862-5218-0410-a997-914c9d46530a
This commit is contained in:
parent
45a5e59f94
commit
0d92390463
@ -62,13 +62,13 @@ SET(FREEGLUT_SRCS
|
|||||||
IF(NOT FREEGLUT_GLES2 AND NOT FREEGLUT_GLES1)
|
IF(NOT FREEGLUT_GLES2 AND NOT FREEGLUT_GLES1)
|
||||||
LIST(APPEND FREEGLUT_SRCS
|
LIST(APPEND FREEGLUT_SRCS
|
||||||
src/fg_font.c
|
src/fg_font.c
|
||||||
src/fg_geometry.c
|
|
||||||
src/fg_menu.c
|
src/fg_menu.c
|
||||||
src/fg_teapot.c
|
src/fg_teapot.c
|
||||||
src/fg_teapot_data.h
|
src/fg_teapot_data.h
|
||||||
)
|
)
|
||||||
ELSE()
|
ELSE()
|
||||||
LIST(APPEND FREEGLUT_SRCS
|
LIST(APPEND FREEGLUT_SRCS
|
||||||
|
src/fg_geometry.c
|
||||||
src/gles_stubs.c
|
src/gles_stubs.c
|
||||||
)
|
)
|
||||||
ENDIF()
|
ENDIF()
|
||||||
|
@ -161,6 +161,7 @@ FGAPI void FGAPIENTRY glutStrokeString( void* font, const unsigned char *stri
|
|||||||
/*
|
/*
|
||||||
* Geometry functions, see freeglut_geometry.c
|
* Geometry functions, see freeglut_geometry.c
|
||||||
*/
|
*/
|
||||||
|
#ifndef GL_ES_VERSION_2_0
|
||||||
FGAPI void FGAPIENTRY glutWireRhombicDodecahedron( void );
|
FGAPI void FGAPIENTRY glutWireRhombicDodecahedron( void );
|
||||||
FGAPI void FGAPIENTRY glutSolidRhombicDodecahedron( void );
|
FGAPI void FGAPIENTRY glutSolidRhombicDodecahedron( void );
|
||||||
|
|
||||||
@ -168,6 +169,7 @@ FGAPI void FGAPIENTRY glutWireSierpinskiSponge ( int num_levels, double offse
|
|||||||
FGAPI void FGAPIENTRY glutSolidSierpinskiSponge ( int num_levels, double offset[3], double scale );
|
FGAPI void FGAPIENTRY glutSolidSierpinskiSponge ( int num_levels, double offset[3], double scale );
|
||||||
FGAPI void FGAPIENTRY glutWireCylinder( double radius, double height, GLint slices, GLint stacks);
|
FGAPI void FGAPIENTRY glutWireCylinder( double radius, double height, GLint slices, GLint stacks);
|
||||||
FGAPI void FGAPIENTRY glutSolidCylinder( double radius, double height, GLint slices, GLint stacks);
|
FGAPI void FGAPIENTRY glutSolidCylinder( double radius, double height, GLint slices, GLint stacks);
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Extension functions, see freeglut_ext.c
|
* Extension functions, see freeglut_ext.c
|
||||||
|
@ -525,13 +525,18 @@ FGAPI int FGAPIENTRY glutStrokeLength( void* font, const unsigned char* stri
|
|||||||
* Geometry functions, see freeglut_geometry.c
|
* Geometry functions, see freeglut_geometry.c
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#ifndef GL_ES_VERSION_2_0
|
||||||
FGAPI void FGAPIENTRY glutWireCube( double size );
|
FGAPI void FGAPIENTRY glutWireCube( double size );
|
||||||
FGAPI void FGAPIENTRY glutSolidCube( double size );
|
FGAPI void FGAPIENTRY glutSolidCube( double size );
|
||||||
|
#endif
|
||||||
|
#ifndef EGL_VERSION_1_0
|
||||||
FGAPI void FGAPIENTRY glutWireSphere( double radius, GLint slices, GLint stacks );
|
FGAPI void FGAPIENTRY glutWireSphere( double radius, GLint slices, GLint stacks );
|
||||||
FGAPI void FGAPIENTRY glutSolidSphere( double radius, GLint slices, GLint stacks );
|
FGAPI void FGAPIENTRY glutSolidSphere( double radius, GLint slices, GLint stacks );
|
||||||
FGAPI void FGAPIENTRY glutWireCone( double base, double height, GLint slices, GLint stacks );
|
FGAPI void FGAPIENTRY glutWireCone( double base, double height, GLint slices, GLint stacks );
|
||||||
FGAPI void FGAPIENTRY glutSolidCone( double base, double height, GLint slices, GLint stacks );
|
FGAPI void FGAPIENTRY glutSolidCone( double base, double height, GLint slices, GLint stacks );
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef GL_ES_VERSION_2_0
|
||||||
FGAPI void FGAPIENTRY glutWireTorus( double innerRadius, double outerRadius, GLint sides, GLint rings );
|
FGAPI void FGAPIENTRY glutWireTorus( double innerRadius, double outerRadius, GLint sides, GLint rings );
|
||||||
FGAPI void FGAPIENTRY glutSolidTorus( double innerRadius, double outerRadius, GLint sides, GLint rings );
|
FGAPI void FGAPIENTRY glutSolidTorus( double innerRadius, double outerRadius, GLint sides, GLint rings );
|
||||||
FGAPI void FGAPIENTRY glutWireDodecahedron( void );
|
FGAPI void FGAPIENTRY glutWireDodecahedron( void );
|
||||||
@ -542,12 +547,16 @@ FGAPI void FGAPIENTRY glutWireTetrahedron( void );
|
|||||||
FGAPI void FGAPIENTRY glutSolidTetrahedron( void );
|
FGAPI void FGAPIENTRY glutSolidTetrahedron( void );
|
||||||
FGAPI void FGAPIENTRY glutWireIcosahedron( void );
|
FGAPI void FGAPIENTRY glutWireIcosahedron( void );
|
||||||
FGAPI void FGAPIENTRY glutSolidIcosahedron( void );
|
FGAPI void FGAPIENTRY glutSolidIcosahedron( void );
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Teapot rendering functions, found in freeglut_teapot.c
|
* Teapot rendering functions, found in freeglut_teapot.c
|
||||||
*/
|
*/
|
||||||
|
/* TODO: doesn't work with GLES1 yet */
|
||||||
|
#ifndef EGL_VERSION_1_0
|
||||||
FGAPI void FGAPIENTRY glutWireTeapot( double size );
|
FGAPI void FGAPIENTRY glutWireTeapot( double size );
|
||||||
FGAPI void FGAPIENTRY glutSolidTeapot( double size );
|
FGAPI void FGAPIENTRY glutSolidTeapot( double size );
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Game mode functions, see freeglut_gamemode.c
|
* Game mode functions, see freeglut_gamemode.c
|
||||||
|
@ -126,24 +126,34 @@ static GLUTproc fghGetGLUTProcAddress( const char* procName )
|
|||||||
CHECK_NAME(glutStrokeWidth);
|
CHECK_NAME(glutStrokeWidth);
|
||||||
CHECK_NAME(glutBitmapLength);
|
CHECK_NAME(glutBitmapLength);
|
||||||
CHECK_NAME(glutStrokeLength);
|
CHECK_NAME(glutStrokeLength);
|
||||||
|
#ifndef EGL_VERSION_1_0
|
||||||
CHECK_NAME(glutWireSphere);
|
CHECK_NAME(glutWireSphere);
|
||||||
CHECK_NAME(glutSolidSphere);
|
CHECK_NAME(glutSolidSphere);
|
||||||
CHECK_NAME(glutWireCone);
|
CHECK_NAME(glutWireCone);
|
||||||
CHECK_NAME(glutSolidCone);
|
CHECK_NAME(glutSolidCone);
|
||||||
CHECK_NAME(glutWireCube);
|
|
||||||
CHECK_NAME(glutSolidCube);
|
|
||||||
CHECK_NAME(glutWireTorus);
|
CHECK_NAME(glutWireTorus);
|
||||||
CHECK_NAME(glutSolidTorus);
|
CHECK_NAME(glutSolidTorus);
|
||||||
CHECK_NAME(glutWireDodecahedron);
|
CHECK_NAME(glutWireCylinder);
|
||||||
CHECK_NAME(glutSolidDodecahedron);
|
CHECK_NAME(glutSolidCylinder);
|
||||||
CHECK_NAME(glutWireTeapot);
|
CHECK_NAME(glutWireTeapot);
|
||||||
CHECK_NAME(glutSolidTeapot);
|
CHECK_NAME(glutSolidTeapot);
|
||||||
|
#endif
|
||||||
|
#ifndef GL_ES_VERSION_2_0
|
||||||
|
CHECK_NAME(glutWireCube);
|
||||||
|
CHECK_NAME(glutSolidCube);
|
||||||
|
CHECK_NAME(glutWireDodecahedron);
|
||||||
|
CHECK_NAME(glutSolidDodecahedron);
|
||||||
CHECK_NAME(glutWireOctahedron);
|
CHECK_NAME(glutWireOctahedron);
|
||||||
CHECK_NAME(glutSolidOctahedron);
|
CHECK_NAME(glutSolidOctahedron);
|
||||||
CHECK_NAME(glutWireTetrahedron);
|
CHECK_NAME(glutWireTetrahedron);
|
||||||
CHECK_NAME(glutSolidTetrahedron);
|
CHECK_NAME(glutSolidTetrahedron);
|
||||||
CHECK_NAME(glutWireIcosahedron);
|
CHECK_NAME(glutWireIcosahedron);
|
||||||
CHECK_NAME(glutSolidIcosahedron);
|
CHECK_NAME(glutSolidIcosahedron);
|
||||||
|
CHECK_NAME(glutWireRhombicDodecahedron);
|
||||||
|
CHECK_NAME(glutSolidRhombicDodecahedron);
|
||||||
|
CHECK_NAME(glutWireSierpinskiSponge);
|
||||||
|
CHECK_NAME(glutSolidSierpinskiSponge);
|
||||||
|
#endif
|
||||||
CHECK_NAME(glutVideoResizeGet);
|
CHECK_NAME(glutVideoResizeGet);
|
||||||
CHECK_NAME(glutSetupVideoResizing);
|
CHECK_NAME(glutSetupVideoResizing);
|
||||||
CHECK_NAME(glutStopVideoResizing);
|
CHECK_NAME(glutStopVideoResizing);
|
||||||
@ -171,12 +181,6 @@ static GLUTproc fghGetGLUTProcAddress( const char* procName )
|
|||||||
CHECK_NAME(glutStrokeHeight);
|
CHECK_NAME(glutStrokeHeight);
|
||||||
CHECK_NAME(glutBitmapString);
|
CHECK_NAME(glutBitmapString);
|
||||||
CHECK_NAME(glutStrokeString);
|
CHECK_NAME(glutStrokeString);
|
||||||
CHECK_NAME(glutWireRhombicDodecahedron);
|
|
||||||
CHECK_NAME(glutSolidRhombicDodecahedron);
|
|
||||||
CHECK_NAME(glutWireSierpinskiSponge);
|
|
||||||
CHECK_NAME(glutSolidSierpinskiSponge);
|
|
||||||
CHECK_NAME(glutWireCylinder);
|
|
||||||
CHECK_NAME(glutSolidCylinder);
|
|
||||||
CHECK_NAME(glutGetProcAddress);
|
CHECK_NAME(glutGetProcAddress);
|
||||||
CHECK_NAME(glutMouseWheelFunc);
|
CHECK_NAME(glutMouseWheelFunc);
|
||||||
CHECK_NAME(glutJoystickGetNumAxes);
|
CHECK_NAME(glutJoystickGetNumAxes);
|
||||||
|
@ -33,6 +33,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef GL_ES_VERSION_2_0
|
||||||
/* General functions for drawing geometry
|
/* General functions for drawing geometry
|
||||||
* Solids are drawn by glDrawArrays if composed of triangles, or by
|
* Solids are drawn by glDrawArrays if composed of triangles, or by
|
||||||
* glDrawElements if consisting of squares or pentagons that were
|
* glDrawElements if consisting of squares or pentagons that were
|
||||||
@ -725,11 +726,13 @@ static void fghSierpinskiSponge ( int numLevels, double offset[3], GLfloat scale
|
|||||||
free(normals );
|
free(normals );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif /* GL_ES_VERSION_2_0 */
|
||||||
|
|
||||||
|
|
||||||
/* -- INTERFACE FUNCTIONS ---------------------------------------------- */
|
/* -- INTERFACE FUNCTIONS ---------------------------------------------- */
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef EGL_VERSION_1_0
|
||||||
/*
|
/*
|
||||||
* Draws a solid sphere
|
* Draws a solid sphere
|
||||||
*/
|
*/
|
||||||
@ -1324,6 +1327,7 @@ void FGAPIENTRY glutSolidTorus( double dInnerRadius, double dOuterRadius, GLint
|
|||||||
free ( normal ) ;
|
free ( normal ) ;
|
||||||
glPopMatrix();
|
glPopMatrix();
|
||||||
}
|
}
|
||||||
|
#endif /* EGL_VERSION_1_0 */
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
/* TODO: implement me! */
|
||||||
|
|
||||||
#include <GL/freeglut.h>
|
#include <GL/freeglut.h>
|
||||||
#include "fg_internal.h"
|
#include "fg_internal.h"
|
||||||
|
|
||||||
@ -14,3 +16,33 @@ GLboolean fgCheckActiveMenu ( SFG_Window *window, int button, GLboolean pressed,
|
|||||||
int mouse_x, int mouse_y ) {
|
int mouse_x, int mouse_y ) {
|
||||||
fprintf(stderr, "fgCheckActiveMenu: STUB\n");
|
fprintf(stderr, "fgCheckActiveMenu: STUB\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int glutCreateMenu( void (* callback)( int menu ) ) {}
|
||||||
|
void glutDestroyMenu( int menu ) {}
|
||||||
|
int glutGetMenu( void ) {}
|
||||||
|
void glutSetMenu( int menu ) {}
|
||||||
|
void glutAddMenuEntry( const char* label, int value ) {}
|
||||||
|
void glutAddSubMenu( const char* label, int subMenu ) {}
|
||||||
|
void glutChangeToMenuEntry( int item, const char* label, int value ) {}
|
||||||
|
void glutChangeToSubMenu( int item, const char* label, int value ) {}
|
||||||
|
void glutRemoveMenuItem( int item ) {}
|
||||||
|
void glutAttachMenu( int button ) {}
|
||||||
|
void glutDetachMenu( int button ) {}
|
||||||
|
|
||||||
|
void glutBitmapCharacter( void* font, int character ) {}
|
||||||
|
int glutBitmapWidth( void* font, int character ) {}
|
||||||
|
void glutStrokeCharacter( void* font, int character ) {}
|
||||||
|
int glutStrokeWidth( void* font, int character ) {}
|
||||||
|
int glutBitmapLength( void* font, const unsigned char* string ) {}
|
||||||
|
int glutStrokeLength( void* font, const unsigned char* string ) {}
|
||||||
|
|
||||||
|
void *glutGetMenuData( void ) {}
|
||||||
|
void glutSetMenuData(void* data) {}
|
||||||
|
|
||||||
|
int glutBitmapHeight( void* font ) {}
|
||||||
|
GLfloat glutStrokeHeight( void* font ) {}
|
||||||
|
void glutBitmapString( void* font, const unsigned char *string ) {}
|
||||||
|
void glutStrokeString( void* font, const unsigned char *string ) {}
|
||||||
|
|
||||||
|
void glutWireTeapot( double size ){}
|
||||||
|
void glutSolidTeapot( double size ){}
|
||||||
|
Reference in New Issue
Block a user