X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=src%2Fegl%2Ffg_init_egl.c;h=3c83fb2a2d7b0e533e896b56025d0ee916f05e12;hb=af47c3f93c7834b4006c49ec9df6a6ffdd3025de;hp=1bd4b14b6051a0f56da28c71ffdd8bd31a9f3171;hpb=d1cccef518bc222b3733706aa1e5776c6cb9fec9;p=freeglut diff --git a/src/egl/fg_init_egl.c b/src/egl/fg_init_egl.c index 1bd4b14..3c83fb2 100644 --- a/src/egl/fg_init_egl.c +++ b/src/egl/fg_init_egl.c @@ -1,5 +1,5 @@ /* - * freeglut_init_android.c + * fg_init_egl.c * * Various freeglut initialization functions. * @@ -27,37 +27,45 @@ #include #include "fg_internal.h" -#include - /* * A call to this function should initialize all the display stuff... */ -void fgPlatformInitialize( const char* displayName ) +void fghPlatformInitializeEGL() { - fprintf(stderr, "fgPlatformInitialize\n"); - fgState.Initialised = GL_TRUE; - /* CreateDisplay */ /* Using EGL_DEFAULT_DISPLAY, or a specific native display */ +#ifdef FREEGLUT_WAYLAND + fgDisplay.pDisplay.egl.Display = eglGetDisplay( + (EGLNativeDisplayType)fgDisplay.pDisplay.display); +#else EGLNativeDisplayType nativeDisplay = EGL_DEFAULT_DISPLAY; fgDisplay.pDisplay.egl.Display = eglGetDisplay(nativeDisplay); +#endif FREEGLUT_INTERNAL_ERROR_EXIT(fgDisplay.pDisplay.egl.Display != EGL_NO_DISPLAY, "No display available", "fgPlatformInitialize"); - if (!eglInitialize(fgDisplay.pDisplay.egl.Display, NULL, NULL)) + if (eglInitialize(fgDisplay.pDisplay.egl.Display, &fgDisplay.pDisplay.egl.MajorVersion, &fgDisplay.pDisplay.egl.MinorVersion) != EGL_TRUE) fgError("eglInitialize: error %x\n", eglGetError()); - // fgDisplay.ScreenWidth = ...; - // fgDisplay.ScreenHeight = ...; - // fgDisplay.ScreenWidthMM = ...; - // fgDisplay.ScreenHeightMM = ...; +# ifdef GL_VERSION_1_1 /* or later */ + eglBindAPI(EGL_OPENGL_API); +# else + eglBindAPI(EGL_OPENGL_ES_API); +# endif + + /* fgDisplay.ScreenWidth = ...; */ + /* fgDisplay.ScreenHeight = ...; */ + /* fgDisplay.ScreenWidthMM = ...; */ + /* fgDisplay.ScreenHeightMM = ...; */ } -void fgPlatformCloseDisplay ( void ) +void fghPlatformCloseDisplayEGL() { if (fgDisplay.pDisplay.egl.Display != EGL_NO_DISPLAY) { eglTerminate(fgDisplay.pDisplay.egl.Display); fgDisplay.pDisplay.egl.Display = EGL_NO_DISPLAY; + fgDisplay.pDisplay.egl.MajorVersion = 0; + fgDisplay.pDisplay.egl.MinorVersion = 0; } }