mirror of
https://github.com/ddnet/ddnet.git
synced 2024-11-10 10:08:18 +00:00
updated to glfw-1.6 and merged previous modifications
This commit is contained in:
parent
07fc7ec8f8
commit
977785b154
|
@ -96,7 +96,8 @@ void _glfwChangeToResourcesDirectory( void )
|
|||
}
|
||||
|
||||
CFRelease( resourcesURL );
|
||||
/*
|
||||
|
||||
/* teeworlds: don't change into resources-dir
|
||||
if( chdir( resourcesPath ) != 0 )
|
||||
{
|
||||
UNBUNDLED;
|
||||
|
|
12
src/engine/external/glfw/lib/win32/platform.h
vendored
12
src/engine/external/glfw/lib/win32/platform.h
vendored
|
@ -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
|
||||
|
@ -283,6 +287,8 @@ struct _GLFWwin_struct {
|
|||
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
|
||||
|
|
24
src/engine/external/glfw/lib/win32/win32_glext.c
vendored
24
src/engine/external/glfw/lib/win32/win32_glext.c
vendored
|
@ -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 ) )
|
||||
|
|
|
@ -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,16 +1170,11 @@ 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/+)
|
||||
|
||||
// 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_VISIBLE;
|
||||
}
|
||||
else
|
||||
if( _glfwLibrary.Sys.WinVer != _GLFW_WIN_95 &&
|
||||
_glfwLibrary.Sys.WinVer != _GLFW_WIN_NT4 &&
|
||||
_glfwLibrary.Sys.WinVer != _GLFW_WIN_XP )
|
||||
{
|
||||
dwStyle |= WS_MINIMIZE;
|
||||
}
|
||||
|
@ -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 );
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue