cdrom: change pause timing again
[pcsx_rearmed.git] / plugins / gpu-gles / gpuDraw.c
index ebb3bf0..d6670ee 100644 (file)
@@ -111,7 +111,7 @@ BOOL           bCheckMask=FALSE;
 int            iUseMask=0;\r
 int            iSetMask=0;\r
 unsigned short sSetMask=0;\r
-unsigned long  lSetMask=0;\r
+unsigned int   lSetMask=0;\r
 \r
 // drawing/coord vars\r
 \r
@@ -248,9 +248,9 @@ void CreateScanLines(void)
 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
@@ -291,7 +291,7 @@ bool TestEGLError(const char* pszLocation)
        EGLint iErr = eglGetError();\r
        if (iErr != EGL_SUCCESS)\r
        {\r
-               printf("%s failed (0x%x).\n", pszLocation, iErr);\r
+               printf("%s failed (0x%x).\n", pszLocation, (int)iErr);\r
                return FALSE;\r
        }\r
 \r
@@ -435,18 +435,29 @@ static int initEGL(void)
        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
+ glDepthRangef(0.0f, 1.0f);glError();\r
+\r
  glViewport(rRatioRect.left,                           // init viewport by ratio rect\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
@@ -455,9 +466,8 @@ int GLinitialize()
  glLoadIdentity();\r
  glScalef(1.0f/255.99f,1.0f/255.99f,1.0f);             // geforce precision hack\r
 #endif \r
- glDepthRangef(0.0f, 1.0f);glError();\r
  \r
- glPolygonOffset( -0.2f, -0.2f );glError();\r
//glPolygonOffset( -0.2f, -0.2f );glError();\r
 \r
  glMatrixMode(GL_PROJECTION); glError();               // init projection with psx resolution\r
  glLoadIdentity(); glError();\r
@@ -531,16 +541,19 @@ void GLcleanup()
 {                                                     \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
@@ -559,7 +572,7 @@ void GLcleanup()
 //              real psx polygon coord mapping right... the following\r
 //              works not to bad with many games, though\r
 \r
-__inline BOOL CheckCoord4()\r
+static __inline BOOL CheckCoord4()\r
 {\r
  if(lx0<0)\r
   {\r
@@ -625,7 +638,7 @@ __inline BOOL CheckCoord4()
  return FALSE;\r
 }\r
 \r
-__inline BOOL CheckCoord3()\r
+static __inline BOOL CheckCoord3()\r
 {\r
  if(lx0<0)\r
   {\r
@@ -662,7 +675,7 @@ __inline BOOL CheckCoord3()
 }\r
 \r
 \r
-__inline BOOL CheckCoord2()\r
+static __inline BOOL CheckCoord2()\r
 {\r
  if(lx0<0)\r
   {\r
@@ -908,14 +921,14 @@ void offsetST(void)
 \r
 ///////////////////////////////////////////////////////// \r
 \r
-void offsetScreenUpload(long Position)\r
+void offsetScreenUpload(int Position)\r
 {\r
  if(bDisplayNotSet)\r
   SetOGLDisplaySettings(1);\r
 \r
  if(Position==-1)\r
   {\r
-   long lmdx,lmdy;\r
+   int lmdx,lmdy;\r
 \r
    lmdx=xrUploadArea.x0;\r
    lmdy=xrUploadArea.y0;\r