about summary refs log tree commit diff
path: root/src/engine/external/glfw/lib
diff options
context:
space:
mode:
authorDominik Geyer <dominik.geyer@gmx.de>2008-10-16 17:09:34 +0000
committerDominik Geyer <dominik.geyer@gmx.de>2008-10-16 17:09:34 +0000
commit977785b154f4153cc99e5c0ca866c154bb71bfbc (patch)
tree4fb2db379164c0b8cf1cf70c2a3d2ebc41e8704d /src/engine/external/glfw/lib
parent07fc7ec8f899abdf8f24f9e17d019ee6b3a33a68 (diff)
downloadzcatch-977785b154f4153cc99e5c0ca866c154bb71bfbc.tar.gz
zcatch-977785b154f4153cc99e5c0ca866c154bb71bfbc.zip
updated to glfw-1.6 and merged previous modifications
Diffstat (limited to 'src/engine/external/glfw/lib')
-rw-r--r--src/engine/external/glfw/lib/macosx/macosx_init.c5
-rw-r--r--src/engine/external/glfw/lib/win32/platform.h16
-rw-r--r--src/engine/external/glfw/lib/win32/win32_glext.c24
-rw-r--r--src/engine/external/glfw/lib/win32/win32_window.c47
-rw-r--r--src/engine/external/glfw/lib/x11/x11_window.c9
5 files changed, 56 insertions, 45 deletions
diff --git a/src/engine/external/glfw/lib/macosx/macosx_init.c b/src/engine/external/glfw/lib/macosx/macosx_init.c
index 3ee6dc43..3f49220b 100644
--- a/src/engine/external/glfw/lib/macosx/macosx_init.c
+++ b/src/engine/external/glfw/lib/macosx/macosx_init.c
@@ -96,12 +96,13 @@ void _glfwChangeToResourcesDirectory( void )
     }

 

     CFRelease( resourcesURL );

-/*

+

+    /* teeworlds: don't change into resources-dir

     if( chdir( resourcesPath ) != 0 )

     {

         UNBUNDLED;

     }

-	*/

+    */

 }

 

 int _glfwPlatformInit( void )

diff --git a/src/engine/external/glfw/lib/win32/platform.h b/src/engine/external/glfw/lib/win32/platform.h
index 25ada3b0..b7c9f02d 100644
--- a/src/engine/external/glfw/lib/win32/platform.h
+++ b/src/engine/external/glfw/lib/win32/platform.h
@@ -130,11 +130,15 @@ typedef struct tagKBDLLHOOKSTRUCT {
 #endif

 

 // wglSwapIntervalEXT typedef (Win32 buffer-swap interval control)

-typedef int (APIENTRY * WGLSWAPINTERVALEXT_T) (int interval);

+typedef int (APIENTRY * WGLSWAPINTERVALEXT_T) (int);

 // wglChoosePixelFormatARB typedef

-typedef BOOL (WINAPI * WGLCHOOSEPIXELFORMATARB_T) (HDC hdc, const int *piAttribIList, const FLOAT *pfAttribFList, UINT nMaxFormats, int *piFormats, UINT *nNumFormats);

+typedef BOOL (WINAPI * WGLCHOOSEPIXELFORMATARB_T) (HDC, const int *, const FLOAT *, UINT, int *, UINT *);

 // wglGetPixelFormatAttribivARB typedef

-typedef BOOL (WINAPI * WGLGETPIXELFORMATATTRIBIVARB_T) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int *piAttributes, int *piValues);

+typedef BOOL (WINAPI * WGLGETPIXELFORMATATTRIBIVARB_T) (HDC, int, int, UINT, const int *, int *);

+// wglGetExtensionStringEXT typedef

+typedef const char *(APIENTRY * WGLGETEXTENSIONSSTRINGEXT_T)( void );

+// wglGetExtensionStringARB typedef

+typedef const char *(APIENTRY * WGLGETEXTENSIONSSTRINGARB_T)( HDC );

 

 #define WGL_DRAW_TO_WINDOW_ARB    0x2001

 #define WGL_SUPPORT_OPENGL_ARB    0x2010

@@ -280,9 +284,11 @@ struct _GLFWwin_struct {
     DWORD     dwExStyle;       // --"--

 

     // Platform specific extensions (context specific)

-    WGLSWAPINTERVALEXT_T SwapInterval;

-    WGLCHOOSEPIXELFORMATARB_T ChoosePixelFormat;

+    WGLSWAPINTERVALEXT_T           SwapInterval;

+    WGLCHOOSEPIXELFORMATARB_T      ChoosePixelFormat;

     WGLGETPIXELFORMATATTRIBIVARB_T GetPixelFormatAttribiv;

+    WGLGETEXTENSIONSSTRINGEXT_T    GetExtensionsStringEXT;

+    WGLGETEXTENSIONSSTRINGARB_T    GetExtensionsStringARB;

 

     // Various platform specific internal variables

     int       OldMouseLock;    // Old mouse-lock flag (used for remembering

diff --git a/src/engine/external/glfw/lib/win32/win32_glext.c b/src/engine/external/glfw/lib/win32/win32_glext.c
index 00d2767d..3f4ea6f6 100644
--- a/src/engine/external/glfw/lib/win32/win32_glext.c
+++ b/src/engine/external/glfw/lib/win32/win32_glext.c
@@ -31,16 +31,6 @@
 #include "internal.h"

 

 

-//========================================================================

-// We use the WGL_EXT_extensions_string if it is available, or

-// WGL_ARB_extensions_string if it is available.

-//========================================================================

-

-typedef const char *(APIENTRY * WGLGETEXTENSIONSSTRINGEXT_T)( void );

-typedef const char *(APIENTRY * WGLGETEXTENSIONSSTRINGARB_T)( HDC hdc );

-

-

-

 //************************************************************************

 //****               Platform implementation functions                ****

 //************************************************************************

@@ -53,15 +43,11 @@ typedef const char *(APIENTRY * WGLGETEXTENSIONSSTRINGARB_T)( HDC hdc );
 int _glfwPlatformExtensionSupported( const char *extension )

 {

     const GLubyte *extensions;

-    WGLGETEXTENSIONSSTRINGEXT_T _wglGetExtensionsStringEXT;

-    WGLGETEXTENSIONSSTRINGARB_T _wglGetExtensionsStringARB;

 

     // Try wglGetExtensionsStringEXT

-    _wglGetExtensionsStringEXT = (WGLGETEXTENSIONSSTRINGEXT_T)

-        wglGetProcAddress( "wglGetExtensionsStringEXT" );

-    if( _wglGetExtensionsStringEXT != NULL )

+    if( _glfwWin.GetExtensionsStringEXT != NULL )

     {

-        extensions = (GLubyte *) _wglGetExtensionsStringEXT();

+        extensions = (GLubyte *) _glfwWin.GetExtensionsStringEXT();

         if( extensions != NULL )

         {

             if( _glfwStringInExtensionString( extension, extensions ) )

@@ -72,11 +58,9 @@ int _glfwPlatformExtensionSupported( const char *extension )
     }

 

     // Try wglGetExtensionsStringARB

-    _wglGetExtensionsStringARB = (WGLGETEXTENSIONSSTRINGARB_T)

-        wglGetProcAddress( "wglGetExtensionsStringARB" );

-    if( _wglGetExtensionsStringARB != NULL )

+    if( _glfwWin.GetExtensionsStringARB != NULL )

     {

-        extensions = (GLubyte *) _wglGetExtensionsStringARB(_glfwWin.DC);

+        extensions = (GLubyte *) _glfwWin.GetExtensionsStringARB( _glfwWin.DC );

         if( extensions != NULL )

         {

             if( _glfwStringInExtensionString( extension, extensions ) )

diff --git a/src/engine/external/glfw/lib/win32/win32_window.c b/src/engine/external/glfw/lib/win32/win32_window.c
index 83c0eeae..32d6a6d4 100644
--- a/src/engine/external/glfw/lib/win32/win32_window.c
+++ b/src/engine/external/glfw/lib/win32/win32_window.c
@@ -230,12 +230,12 @@ static int _glfwSetPixelFormatAttrib( int redbits, int greenbits, int bluebits,
     int PixelFormat, dummy, count = 0;

     int attribs[128];

     PIXELFORMATDESCRIPTOR pfd;

-

+    

     int accumredbits = hints->AccumRedBits;

     int accumgreenbits = hints->AccumGreenBits;

     int accumbluebits = hints->AccumBlueBits;

     int accumalphabits = hints->AccumAlphaBits;

-    

+

     _glfwSetWGLAttribute( WGL_DRAW_TO_WINDOW_ARB, GL_TRUE );

     _glfwSetWGLAttribute( WGL_ACCELERATION_ARB,   WGL_FULL_ACCELERATION_ARB );

     _glfwSetWGLAttribute( WGL_SUPPORT_OPENGL_ARB, GL_TRUE );

@@ -248,7 +248,7 @@ static int _glfwSetPixelFormatAttrib( int redbits, int greenbits, int bluebits,
     _glfwSetWGLAttribute( WGL_DEPTH_BITS_ARB,     depthbits );

     _glfwSetWGLAttribute( WGL_STENCIL_BITS_ARB,   stencilbits );

     _glfwSetWGLAttribute( WGL_AUX_BUFFERS_ARB,    hints->AuxBuffers );

-

+    

     if( accumredbits || accumgreenbits || accumbluebits || accumalphabits )

     {

         _glfwSetWGLAttribute( WGL_ACCUM_BITS_ARB, accumredbits +

@@ -884,6 +884,19 @@ static void _glfwInitWGLExtensions( void )
     GLubyte *extensions;

     int     has_swap_control, has_pixel_format;

 

+    _glfwWin.GetExtensionsStringEXT = (WGLGETEXTENSIONSSTRINGEXT_T)

+        wglGetProcAddress( "wglGetExtensionsStringEXT" );

+    if( !_glfwWin.GetExtensionsStringEXT )

+    {

+	// Try wglGetExtensionsStringARB

+	_glfwWin.GetExtensionsStringARB = (WGLGETEXTENSIONSSTRINGARB_T)

+	    wglGetProcAddress( "wglGetExtensionsStringARB" );

+	if( !_glfwWin.GetExtensionsStringARB )

+	{

+	    return;

+	}

+    }

+

     // Initialize OpenGL extension: WGL_EXT_swap_control

     has_swap_control = GL_FALSE;

     has_pixel_format = GL_FALSE;

@@ -950,6 +963,7 @@ static int _glfwCreateWindow( int redbits, int greenbits, int bluebits,
 {

     int    full_width, full_height;

     RECT   wa;

+    POINT  pos;

 

     _glfwWin.DC  = NULL;

     _glfwWin.RC  = NULL;

@@ -1030,6 +1044,12 @@ static int _glfwCreateWindow( int redbits, int greenbits, int bluebits,
     // Initialize WGL-specific OpenGL extensions

     _glfwInitWGLExtensions();

 

+    // Initialize mouse position

+    GetCursorPos( &pos );

+    ScreenToClient( _glfwWin.Wnd, &pos );

+    _glfwInput.OldMouseX = _glfwInput.MousePosX = pos.x;

+    _glfwInput.OldMouseY = _glfwInput.MousePosY = pos.y;

+

     return GL_TRUE;

 }

 

@@ -1150,20 +1170,15 @@ int _glfwPlatformOpenWindow( int width, int height,
 

         // Here's a trick for helping us getting window focus

         // (SetForegroundWindow doesn't work properly under

-        // Win98/ME/2K/XP/.NET/+)

-		

-		/*

-        if( _glfwLibrary.Sys.WinVer == _GLFW_WIN_95 ||

-            _glfwLibrary.Sys.WinVer == _GLFW_WIN_NT4 || 

-            _glfwLibrary.Sys.WinVer == _GLFW_WIN_XP )

-        {

-            dwStyle |= WS_VISIBLE;

-        }

-        else

+        // Win98/ME/2K/.NET/+)

+	/*

+        if( _glfwLibrary.Sys.WinVer != _GLFW_WIN_95 &&

+            _glfwLibrary.Sys.WinVer != _GLFW_WIN_NT4 && 

+            _glfwLibrary.Sys.WinVer != _GLFW_WIN_XP )

         {

             dwStyle |= WS_MINIMIZE;

         }

-		*/

+	*/

     }

     else

     {

@@ -1189,6 +1204,9 @@ int _glfwPlatformOpenWindow( int width, int height,
 

     if( _glfwWin.ChoosePixelFormat && hints->Samples > 0 )

     {

+	// Iteratively try to create a context with a decreasing number of

+	// FSAA samples (requires window recreation).

+

         for (;;)

         {

             _glfwDestroyWindow();

@@ -1252,7 +1270,6 @@ void _glfwPlatformCloseWindow( void )
         // Switch back to desktop resolution

         ChangeDisplaySettings( NULL, CDS_FULLSCREEN );

     }

-

 }

 

 

diff --git a/src/engine/external/glfw/lib/x11/x11_window.c b/src/engine/external/glfw/lib/x11/x11_window.c
index ed4c42f5..4ed2007b 100644
--- a/src/engine/external/glfw/lib/x11/x11_window.c
+++ b/src/engine/external/glfw/lib/x11/x11_window.c
@@ -978,9 +978,6 @@ int _glfwPlatformOpenWindow( int width, int height, int redbits,
         return GL_FALSE;

     }

 

-    // Set window & icon name

-    _glfwPlatformSetWindowTitle( "Teeworlds" );

-

     // Get the delete window WM protocol atom

     _glfwWin.WMDeleteWindow = XInternAtom( _glfwLibrary.Dpy,

                                            "WM_DELETE_WINDOW",

@@ -1075,6 +1072,10 @@ int _glfwPlatformOpenWindow( int width, int height, int redbits,
                       _glfwWin.Width/2, _glfwWin.Height/2 );

     }

 

+    // Set window & icon name

+    // teeworlds: set our own title early, workaround for some window-managers

+    _glfwPlatformSetWindowTitle( "Teeworlds" );

+

     // Connect the context to the window

     glXMakeCurrent( _glfwLibrary.Dpy, _glfwWin.Win, _glfwWin.CX );

 

@@ -1521,6 +1522,8 @@ void _glfwPlatformPollEvents( void )
     // or without XSync, but when the GL window is rendered over a slow

     // network I have noticed bad event syncronisation problems when XSync

     // is not used, so I decided to use it.

+    //

+    // teeworlds: don't synchronise

     //XSync( _glfwLibrary.Dpy, False );

 

     // Empty the window event queue