From: Vincent R. <forumer@sm...> - 2009-10-03 10:37:23
I am a windows mobile developper and recently I wanted to play with openGL
ES and I found a glut|es project based on freeglut.
Unfortunately it doesn't work with my device using opengl es
implementation from Qualcomm,
so I wanted to restart from latest trunk and apply some patch.
I was surprised to see some preliminary work and a project targetting
embedded Visual Studio (eVC)
but when I imported it inside VS2005 there was a lot of errors so I have
started to make some changes.
To sum up what was necessary:
1) on mobile device we used opengl ES and not openGL and includes are
slighly different because we include
generally <GLES/gl> and <GLES/glues.h> so I have added a GLES folder
inside include folder with a glutes header.
Another option would be to add a folder GLES with inside a header that
would redirect to freeglut_std.h as you already do for desktop platform.
2) On wince there is no errno so you should protect include by #if
3) Normally opengl es doesn't define the following definitions and code
using it should be protected
#define GL_ACCUM_RED_BITS 0x0D58
#define GL_ACCUM_GREEN_BITS 0x0D59
#define GL_ACCUM_BLUE_BITS 0x0D5A
#define GL_ACCUM_ALPHA_BITS 0x0D5B
#define GL_RGBA_MODE 0x0C31
#define GL_DOUBLEBUFFER 0x0C32
#define GL_STEREO 0x0C33
However I have defined them in my local opengl es include but maybe it
would be safer to protect
them by a #ifndef _WIN32_WCE.
Finally and this is my biggest issue, in freeglut_display.c you are using
SwapBuffers on windows platforms
but it doesn't exist on windows ce so I wanted to use the same code as
glutes but this is not possible anymore.
Indeed it was using the following lines :
if(fgStructure.Window->Window.SurfaceType == EGL_WINDOW_BIT)
else if(fgStructure.Window->Window.SurfaceType == EGL_PIXMAP_BIT)
InvalidateRect(fgStructure.Window->Window.Handle, NULL, FALSE);
but fgStructure had changed and doesn't have a eglDisplay anymore or at
least I don't know how to get it.
Any idea on how to fix it ?
One last thing you should create a build folder with inside the following
It would be cleaner that having some folder for each configuration
Visual2008Static, Visual2008, ...
I am ready to help you with this.
Would it be possible to create a branch for me to add support for OpenGL
Or maybe I could post regularly some patch to be integrated because ?
What is the best option ?