int use_fsaa = 0;\r
\r
EGLDisplay display;\r
-EGLConfig config;\r
-EGLContext context;\r
EGLSurface surface;\r
+static EGLConfig config;\r
+static EGLContext context;\r
\r
#if defined(USE_X11)\r
#include "X11/Xlib.h"\r
return 0;\r
}\r
\r
-int GLinitialize() \r
+static int created_gles_context;\r
+\r
+int GLinitialize(void *ext_gles_display, void *ext_gles_surface)\r
{\r
- if(initEGL()!=0)\r
- return -1;\r
+ if(ext_gles_display != NULL && ext_gles_surface != NULL) { \r
+ display = (EGLDisplay)ext_gles_display;\r
+ surface = (EGLSurface)ext_gles_surface;\r
+ }\r
+ else {\r
+ if(initEGL()!=0)\r
+ return -1;\r
+ created_gles_context=1;\r
+ }\r
\r
//----------------------------------------------------// \r
\r
iResY-(rRatioRect.top+rRatioRect.bottom),\r
rRatioRect.right, \r
rRatioRect.bottom); glError();\r
- \r
+\r
glScissor(0, 0, iResX, iResY); glError(); // init clipping (fullscreen)\r
glEnable(GL_SCISSOR_TEST); glError();\r
\r
{ \r
CleanupTextureStore(); // bye textures\r
\r
- eglMakeCurrent( display, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT );\r
- eglDestroySurface( display, surface );\r
- eglDestroyContext( display, context );\r
- eglTerminate( display );\r
+ if(created_gles_context) {\r
+ eglMakeCurrent( display, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT );\r
+ eglDestroySurface( display, surface );\r
+ eglDestroyContext( display, context );\r
+ eglTerminate( display );\r
\r
#if defined(USE_X11)\r
if (x11Window) XDestroyWindow(x11Display, x11Window);\r
if (x11Colormap) XFreeColormap( x11Display, x11Colormap );\r
if (x11Display) XCloseDisplay(x11Display);\r
#endif\r
+ created_gles_context=0;\r
+ }\r
}\r
\r
////////////////////////////////////////////////////////////////////////\r