ecere/Semaphore,OpenGL: Added OSX includes; Enabled GLX on Mac
authorJerome St-Louis <jerome@ecere.com>
Sat, 17 Nov 2012 20:52:58 +0000 (15:52 -0500)
committerJerome St-Louis <jerome@ecere.com>
Sat, 17 Nov 2012 20:52:58 +0000 (15:52 -0500)
- Also fixed permissions and sample path in configure OSX instructions

configure [changed mode: 0644->0755]
deps/libffi-3.0.11/Makefile [changed mode: 0755->0644]
deps/libffi-3.0.11/install-sh [changed mode: 0644->0755]
ecere/src/gfx/drivers/OpenGLDisplayDriver.ec
ecere/src/sys/Semaphore.ec

old mode 100644 (file)
new mode 100755 (executable)
index 066bfd7..d0560d0
--- a/configure
+++ b/configure
@@ -7,7 +7,7 @@ echo "The Ecere cross-platform SDK is pre-configured. Just type:
       to the path and set SYSROOT to the SDK directory. e.g. with Xcode 4.5.2:
 
                export PATH=$PATH:/Applications/Xcode.app/Contents/Developer/usr/bin
-      export SYSROOT=/Applications/Xcode.app/Contents/Developer/SDKs/MacOSX10.7.sdk
+      export SYSROOT=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk
       make;
                                (Lion™/Xcode 4.5.2™ recommended)
 
old mode 100755 (executable)
new mode 100644 (file)
old mode 100644 (file)
new mode 100755 (executable)
index 432e219..d1ba370 100644 (file)
@@ -4,7 +4,7 @@
 namespace gfx::drivers;
 
 // OpenGL Extensions
-#if defined(__unix__)
+#if defined(__unix__) || defined(__APPLE__)
 
 #if !defined(__MINGW32__)
 #define GL_GLEXT_PROTOTYPES
@@ -86,7 +86,7 @@ namespace gfx::drivers;
 
 import "Display"
 
-#if defined(__unix__)
+#if defined(__unix__) || defined(__APPLE__)
 
 #ifndef __ANDROID__
 import "XInterface"
@@ -1093,7 +1093,7 @@ class OpenGLDisplayDriver : DisplayDriver
       if(useSingleGLContext) return true;
    #if defined(__WIN32__)
       wglMakeCurrent(oglSystem.hdc, oglSystem.glrc);
-   #elif defined(__unix__)
+   #elif defined(__unix__) || defined(__APPLE__)
       //if(previous) return true;
       // printf("Making SYSTEM current\n");
 /*#if defined(__APPLE__)
@@ -1114,7 +1114,7 @@ class OpenGLDisplayDriver : DisplayDriver
       if(useSingleGLContext) return;
    #if defined(__WIN32__)
       wglMakeCurrent(null, null);
-   #elif defined(__unix__)
+   #elif defined(__unix__) || defined(__APPLE__)
       // printf("Making NULL current\n");
       #if defined(__ANDROID__)
       #else
@@ -1132,7 +1132,7 @@ class OpenGLDisplayDriver : DisplayDriver
       if(useSingleGLContext) return true;
    #if defined(__WIN32__)
       wglMakeCurrent(oglDisplay.hdc, oglDisplay.glrc);
-   #elif defined(__unix__)
+   #elif defined(__unix__) || defined(__APPLE__)
       // if(previous) glXMakeCurrent(xGlobalDisplay, None, null);
       // printf("   Making DISPLAY current\n");
       #if defined(__ANDROID__)
@@ -1176,7 +1176,7 @@ class OpenGLDisplayDriver : DisplayDriver
          if(oglDisplay.memDC) DeleteDC(oglDisplay.memDC);
          if(oglDisplay.memBitmap) DeleteObject(oglDisplay.memBitmap); 
 
-   #elif defined(__unix__)
+   #elif defined(__unix__) || defined(__APPLE__)
       #if defined(__ANDROID__)
       #else
          if(oglDisplay.shapePixmap)
@@ -1341,7 +1341,7 @@ class OpenGLDisplayDriver : DisplayDriver
             }
          }
       }
-   #elif defined(__unix__)
+   #elif defined(__unix__) || defined(__APPLE__)
       #if defined(__ANDROID__)
          egl_init_display(guiApp.desktop.windowHandle);
          result = true;
@@ -1400,7 +1400,7 @@ class OpenGLDisplayDriver : DisplayDriver
          ReleaseDC(oglSystem.hwnd, oglSystem.hdc);
       DestroyWindow(oglSystem.hwnd);
 
-   #elif defined(__unix__)
+   #elif defined(__unix__) || defined(__APPLE__)
       #if defined(__ANDROID__)
          egl_term_display();
       #else
@@ -1446,7 +1446,7 @@ class OpenGLDisplayDriver : DisplayDriver
          }
          else
             ReleaseDC(display.window, oglDisplay.hdc);
-   #elif defined(__unix__)
+   #elif defined(__unix__) || defined(__APPLE__)
       #if defined(__ANDROID__)
       #else
          XVisualInfo * visualInfo = null;
@@ -1552,7 +1552,7 @@ class OpenGLDisplayDriver : DisplayDriver
    if(!useSingleGLContext)
    #if defined(__WIN32__)
       wglMakeCurrent(null, null);
-   #elif defined(__unix__)
+   #elif defined(__unix__) || defined(__APPLE__)
       #if defined(__ANDROID__)
       result = true;
       #else
@@ -1728,7 +1728,7 @@ class OpenGLDisplayDriver : DisplayDriver
             }
             ReleaseDC(display.window, hdc);
          }
-#elif defined(__unix__)
+#elif defined(__unix__) || defined(__APPLE__)
       #if defined(__ANDROID__)
          result = true;
       #else
@@ -1892,7 +1892,7 @@ class OpenGLDisplayDriver : DisplayDriver
          CreateDisplay(display);
 #if defined(__WIN32__)
          wglMakeCurrent(oglDisplay.hdc, oglDisplay.glrc);
-#elif defined(__unix__)
+#elif defined(__unix__) || defined(__APPLE__)
       #if defined(__ANDROID__)
          width = eglWidth;
          height = eglHeight;
@@ -2024,7 +2024,7 @@ class OpenGLDisplayDriver : DisplayDriver
             */
 
             ReleaseDC(0, hdc);
-#elif defined(__unix__)
+#elif defined(__unix__) || defined(__APPLE__)
       #if defined(__ANDROID__)
       #else
             XTransform transform = 
@@ -2054,7 +2054,7 @@ class OpenGLDisplayDriver : DisplayDriver
 #if defined(__WIN32__)
          //wglSwapLayerBuffers(oglDisplay.hdc,WGL_SWAP_MAIN_PLANE); 
          SwapBuffers(oglDisplay.hdc);
-#elif defined(__unix__)
+#elif defined(__unix__) || defined(__APPLE__)
       #if defined(__ANDROID__)
          eglSwapBuffers(eglDisplay, eglSurface);
       #else
index 2a593cf..6ddb063 100644 (file)
@@ -9,6 +9,12 @@ namespace sys;
 #if defined(__WIN32__)
 #define WIN32_LEAN_AND_MEAN
 #include <windows.h>
+#elif defined(__APPLE__)
+#define set _set
+#include <mach/mach.h>
+#include <mach/task.h>
+#include <mach/semaphore.h>
+#undef set
 #else
 #include <semaphore.h>
 #endif
@@ -35,7 +41,7 @@ public class Semaphore : struct
 #if defined(__WIN32__)
       handle = CreateSemaphore(null, 0, 1, null);
 #elif defined(__APPLE__)
-      semaphore_create(current_task(), &semaphore, SYNC_POLICY_FIFO, 0);
+      semaphore_create(mach_task_self(), &semaphore, SYNC_POLICY_FIFO, 0);
 #else
       sem_init(&semaphore, 0, 0);
 #endif
@@ -48,7 +54,7 @@ public class Semaphore : struct
 #if defined(__WIN32__)
       if(handle) CloseHandle(handle);
 #elif defined(__APPLE__)
-      semaphore_destroy(current_task(), &semaphore);
+      semaphore_destroy(mach_task_self(), semaphore);
 #else
       sem_destroy(&semaphore);
 #endif
@@ -123,8 +129,8 @@ public:
          if(handle) CloseHandle(handle);
          handle = CreateSemaphore(null, initCount, value, null);
 #elif defined(__APPLE__)
-         semaphore_destroy(semaphore);
-         semaphore_create(current_task(), &semaphore, SYNC_POLICY_FIFO, 0);
+         semaphore_destroy(mach_task_self(), semaphore);
+         semaphore_create(mach_task_self(), &semaphore, SYNC_POLICY_FIFO, 0);
          count = value;
 #else
          sem_destroy(&semaphore);