about summary refs log tree commit diff
path: root/src/engine/external/glfw/lib/window.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/engine/external/glfw/lib/window.c')
-rw-r--r--src/engine/external/glfw/lib/window.c727
1 files changed, 0 insertions, 727 deletions
diff --git a/src/engine/external/glfw/lib/window.c b/src/engine/external/glfw/lib/window.c
deleted file mode 100644
index a878c5f7..00000000
--- a/src/engine/external/glfw/lib/window.c
+++ /dev/null
@@ -1,727 +0,0 @@
-//========================================================================

-// GLFW - An OpenGL framework

-// File:        window.c

-// Platform:    Any

-// API version: 2.6

-// WWW:         http://glfw.sourceforge.net

-//------------------------------------------------------------------------

-// Copyright (c) 2002-2006 Camilla Berglund

-//

-// This software is provided 'as-is', without any express or implied

-// warranty. In no event will the authors be held liable for any damages

-// arising from the use of this software.

-//

-// Permission is granted to anyone to use this software for any purpose,

-// including commercial applications, and to alter it and redistribute it

-// freely, subject to the following restrictions:

-//

-// 1. The origin of this software must not be misrepresented; you must not

-//    claim that you wrote the original software. If you use this software

-//    in a product, an acknowledgment in the product documentation would

-//    be appreciated but is not required.

-//

-// 2. Altered source versions must be plainly marked as such, and must not

-//    be misrepresented as being the original software.

-//

-// 3. This notice may not be removed or altered from any source

-//    distribution.

-//

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

-

-#include "internal.h"

-

-

-

-//************************************************************************

-//****                  GLFW internal functions                       ****

-//************************************************************************

-

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

-// Clear all open window hints

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

-

-void _glfwClearWindowHints( void )

-{

-    _glfwWinHints.RefreshRate    = 0;

-    _glfwWinHints.AccumRedBits   = 0;

-    _glfwWinHints.AccumGreenBits = 0;

-    _glfwWinHints.AccumBlueBits  = 0;

-    _glfwWinHints.AccumAlphaBits = 0;

-    _glfwWinHints.AuxBuffers     = 0;

-    _glfwWinHints.Stereo         = 0;

-    _glfwWinHints.WindowNoResize = 0;

-    _glfwWinHints.Samples        = 0;

-}

-

-

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

-// Handle the input tracking part of window deactivation

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

-

-void _glfwInputDeactivation( void )

-{

-    int i;

-

-    // Release all keyboard keys

-    for( i = 0; i <= GLFW_KEY_LAST; i ++ )

-    {

-        if( _glfwInput.Key[ i ] == GLFW_PRESS )

-	{

-	    _glfwInputKey( i, GLFW_RELEASE );

-	}

-    }

-

-    // Release all mouse buttons

-    for( i = 0; i <= GLFW_MOUSE_BUTTON_LAST; i ++ )

-    {

-        if( _glfwInput.MouseButton[ i ] == GLFW_PRESS )

-	{

-	    _glfwInputMouseClick( i, GLFW_RELEASE );

-	}

-    }

-}

-

-

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

-// _glfwClearInput() - Clear all input state

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

-

-void _glfwClearInput( void )

-{

-    int i;

-

-    // Release all keyboard keys

-    for( i = 0; i <= GLFW_KEY_LAST; i ++ )

-    {

-        _glfwInput.Key[ i ] = GLFW_RELEASE;

-    }

-

-    // Clear last character

-    _glfwInput.LastChar = 0;

-

-    // Release all mouse buttons

-    for( i = 0; i <= GLFW_MOUSE_BUTTON_LAST; i ++ )

-    {

-        _glfwInput.MouseButton[ i ] = GLFW_RELEASE;

-    }

-

-    // Set mouse position to (0,0)

-    _glfwInput.MousePosX = 0;

-    _glfwInput.MousePosY = 0;

-

-    // Set mouse wheel position to 0

-    _glfwInput.WheelPos = 0;

-

-    // The default is to use non sticky keys and mouse buttons

-    _glfwInput.StickyKeys = GL_FALSE;

-    _glfwInput.StickyMouseButtons = GL_FALSE;

-

-    // The default is to disable key repeat

-    _glfwInput.KeyRepeat = GL_FALSE;

-}

-

-

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

-// _glfwInputKey() - Register keyboard activity

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

-

-void _glfwInputKey( int key, int action )

-{

-    int keyrepeat = 0;

-

-    if( key < 0 || key > GLFW_KEY_LAST )

-    {

-	return;

-    }

-

-    // Are we trying to release an already released key?

-    if( action == GLFW_RELEASE && _glfwInput.Key[ key ] != GLFW_PRESS )

-    {

-	return;

-    }

-

-    // Register key action

-    if( action == GLFW_RELEASE && _glfwInput.StickyKeys )

-    {

-	_glfwInput.Key[ key ] = GLFW_STICK;

-    }

-    else

-    {

-	keyrepeat = (_glfwInput.Key[ key ] == GLFW_PRESS) &&

-		    (action == GLFW_PRESS);

-	_glfwInput.Key[ key ] = (char) action;

-    }

-

-    // Call user callback function

-    if( _glfwWin.KeyCallback && (_glfwInput.KeyRepeat || !keyrepeat) )

-    {

-	_glfwWin.KeyCallback( key, action );

-    }

-}

-

-

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

-// _glfwInputChar() - Register (keyboard) character activity

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

-

-void _glfwInputChar( int character, int action )

-{

-    int keyrepeat = 0;

-

-    // Valid Unicode (ISO 10646) character?

-    if( !( (character >= 32 && character <= 126) || character >= 160 ) )

-    {

-        return;

-    }

-

-    // Is this a key repeat?

-    if( action == GLFW_PRESS && _glfwInput.LastChar == character )

-    {

-        keyrepeat = 1;

-    }

-

-    // Store this character as last character (or clear it, if released)

-    if( action == GLFW_PRESS )

-    {

-        _glfwInput.LastChar = character;

-    }

-    else

-    {

-        _glfwInput.LastChar = 0;

-    }

-

-    // Call user callback function

-    if( _glfwWin.CharCallback && (_glfwInput.KeyRepeat || !keyrepeat) )

-    {

-        _glfwWin.CharCallback( character, action );

-    }

-}

-

-

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

-// _glfwInputMouseClick() - Register mouse button clicks

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

-

-void _glfwInputMouseClick( int button, int action )

-{

-    if( button >= 0 && button <= GLFW_MOUSE_BUTTON_LAST )

-    {

-        // Register mouse button action

-        if( action == GLFW_RELEASE && _glfwInput.StickyMouseButtons )

-        {

-            _glfwInput.MouseButton[ button ] = GLFW_STICK;

-        }

-        else

-        {

-            _glfwInput.MouseButton[ button ] = (char) action;

-        }

-

-        // Call user callback function

-        if( _glfwWin.MouseButtonCallback )

-        {

-            _glfwWin.MouseButtonCallback( button, action );

-        }

-    }

-}

-

-

-

-//************************************************************************

-//****                    GLFW user functions                         ****

-//************************************************************************

-

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

-// glfwOpenWindow() - Here is where the window is created, and the OpenGL

-// rendering context is created

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

-

-GLFWAPI int GLFWAPIENTRY glfwOpenWindow( int width, int height,

-    int redbits, int greenbits, int bluebits, int alphabits,

-    int depthbits, int stencilbits, int mode )

-{

-    int x;

-    _GLFWhints hints;

-

-    // Is GLFW initialized?

-    if( !_glfwInitialized || _glfwWin.Opened )

-    {

-        return GL_FALSE;

-    }

-

-    // Copy and clear window hints

-    hints = _glfwWinHints;

-    _glfwClearWindowHints();

-

-    // Check input arguments

-    if( mode != GLFW_WINDOW && mode != GLFW_FULLSCREEN )

-    {

-        return GL_FALSE;

-    }

-

-    // Clear GLFW window state

-    _glfwWin.Active            = GL_TRUE;

-    _glfwWin.Iconified         = GL_FALSE;

-    _glfwWin.MouseLock         = GL_FALSE;

-    _glfwWin.AutoPollEvents    = GL_TRUE;

-    _glfwClearInput();

-

-    // Unregister all callback functions

-    _glfwWin.WindowSizeCallback    = NULL;

-    _glfwWin.WindowCloseCallback   = NULL;

-    _glfwWin.WindowRefreshCallback = NULL;

-    _glfwWin.KeyCallback           = NULL;

-    _glfwWin.CharCallback          = NULL;

-    _glfwWin.MousePosCallback      = NULL;

-    _glfwWin.MouseButtonCallback   = NULL;

-    _glfwWin.MouseWheelCallback    = NULL;

-

-    // Check width & height

-    if( width > 0 && height <= 0 )

-    {

-        // Set the window aspect ratio to 4:3

-        height = (width * 3) / 4;

-    }

-    else if( width <= 0 && height > 0 )

-    {

-        // Set the window aspect ratio to 4:3

-        width = (height * 4) / 3;

-    }

-    else if( width <= 0 && height <= 0 )

-    {

-        // Default window size

-        width  = 640;

-        height = 480;

-    }

-

-    // Remember window settings

-    _glfwWin.Width          = width;

-    _glfwWin.Height         = height;

-    _glfwWin.Fullscreen     = (mode == GLFW_FULLSCREEN ? 1 : 0);

-

-    // Platform specific window opening routine

-    if( !_glfwPlatformOpenWindow( width, height, redbits, greenbits,

-            bluebits, alphabits, depthbits, stencilbits, mode, &hints ) )

-    {

-        return GL_FALSE;

-    }

-

-    // Flag that window is now opened

-    _glfwWin.Opened = GL_TRUE;

-

-    // Get window parameters (such as color buffer bits etc)

-    _glfwPlatformRefreshWindowParams();

-

-    // Get OpenGL version

-    glfwGetGLVersion( &_glfwWin.GLVerMajor, &_glfwWin.GLVerMinor, &x );

-

-    // Do we have non-power-of-two textures?

-    _glfwWin.Has_GL_ARB_texture_non_power_of_two =

-        glfwExtensionSupported( "GL_ARB_texture_non_power_of_two" );

-

-    // Do we have automatic mipmap generation?

-    _glfwWin.Has_GL_SGIS_generate_mipmap =

-        (_glfwWin.GLVerMajor >= 2) || (_glfwWin.GLVerMinor >= 4) ||

-        glfwExtensionSupported( "GL_SGIS_generate_mipmap" );

-

-    // If full-screen mode was requested, disable mouse cursor

-    if( mode == GLFW_FULLSCREEN )

-    {

-        glfwDisable( GLFW_MOUSE_CURSOR );

-    }

-

-    return GL_TRUE;

-}

-

-

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

-// glfwOpenWindowHint() - Set hints for opening the window

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

-

-GLFWAPI void GLFWAPIENTRY glfwOpenWindowHint( int target, int hint )

-{

-    // Is GLFW initialized?

-    if( !_glfwInitialized )

-    {

-        return;

-    }

-

-    switch( target )

-    {

-        case GLFW_REFRESH_RATE:

-            _glfwWinHints.RefreshRate = hint;

-            break;

-        case GLFW_ACCUM_RED_BITS:

-            _glfwWinHints.AccumRedBits = hint;

-            break;

-        case GLFW_ACCUM_GREEN_BITS:

-            _glfwWinHints.AccumGreenBits = hint;

-            break;

-        case GLFW_ACCUM_BLUE_BITS:

-            _glfwWinHints.AccumBlueBits = hint;

-            break;

-        case GLFW_ACCUM_ALPHA_BITS:

-            _glfwWinHints.AccumAlphaBits = hint;

-            break;

-        case GLFW_AUX_BUFFERS:

-            _glfwWinHints.AuxBuffers = hint;

-            break;

-        case GLFW_STEREO:

-            _glfwWinHints.Stereo = hint;

-            break;

-        case GLFW_WINDOW_NO_RESIZE:

-            _glfwWinHints.WindowNoResize = hint;

-            break;

-	case GLFW_FSAA_SAMPLES:

-            _glfwWinHints.Samples = hint;

-            break;

-        default:

-            break;

-    }

-}

-

-

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

-// glfwCloseWindow() - Properly kill the window / video display

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

-

-GLFWAPI void GLFWAPIENTRY glfwCloseWindow( void )

-{

-    // Is GLFW initialized?

-    if( !_glfwInitialized )

-    {

-        return;

-    }

-

-    // Show mouse pointer again (if hidden)

-    glfwEnable( GLFW_MOUSE_CURSOR );

-

-    // Close window

-    _glfwPlatformCloseWindow();

-

-    // Window is no longer opened

-    _glfwWin.Opened = GL_FALSE;

-}

-

-

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

-// glfwSetWindowTitle() - Set the window title

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

-

-GLFWAPI void GLFWAPIENTRY glfwSetWindowTitle( const char *title )

-{

-    // Is GLFW initialized?

-    if( !_glfwInitialized || !_glfwWin.Opened )

-    {

-        return;

-    }

-

-    // Set window title

-    _glfwPlatformSetWindowTitle( title );

-}

-

-

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

-// glfwGetWindowSize() - Get the window size

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

-

-GLFWAPI void GLFWAPIENTRY glfwGetWindowSize( int *width, int *height )

-{

-    if( width != NULL )

-    {

-        *width = _glfwWin.Width;

-    }

-    if( height != NULL )

-    {

-        *height = _glfwWin.Height;

-    }

-}

-

-

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

-// glfwSetWindowSize() - Set the window size

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

-

-GLFWAPI void GLFWAPIENTRY glfwSetWindowSize( int width, int height )

-{

-    // Is GLFW initialized?

-    if( !_glfwInitialized || !_glfwWin.Opened || _glfwWin.Iconified )

-    {

-        return;

-    }

-

-    // Don't do anything if the window size did not change

-    if( width == _glfwWin.Width && height == _glfwWin.Height )

-    {

-        return;

-    }

-

-    // Change window size

-    _glfwPlatformSetWindowSize( width, height );

-

-    // Refresh window parameters (may have changed due to changed video

-    // modes)

-    _glfwPlatformRefreshWindowParams();

-}

-

-

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

-// glfwSetWindowPos() - Set the window position

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

-

-GLFWAPI void GLFWAPIENTRY glfwSetWindowPos( int x, int y )

-{

-    // Is GLFW initialized?

-    if( !_glfwInitialized || !_glfwWin.Opened || _glfwWin.Fullscreen ||

-        _glfwWin.Iconified )

-    {

-        return;

-    }

-

-    // Set window position

-    _glfwPlatformSetWindowPos( x, y );

-}

-

-

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

-// glfwIconfyWindow() - Window iconification

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

-

-GLFWAPI void GLFWAPIENTRY glfwIconifyWindow( void )

-{

-    // Is GLFW initialized?

-    if( !_glfwInitialized || !_glfwWin.Opened || _glfwWin.Iconified )

-    {

-        return;

-    }

-

-    // Iconify window

-    _glfwPlatformIconifyWindow();

-}

-

-

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

-// glfwRestoreWindow() - Window un-iconification

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

-

-GLFWAPI void GLFWAPIENTRY glfwRestoreWindow( void )

-{

-    // Is GLFW initialized?

-    if( !_glfwInitialized || !_glfwWin.Opened || !_glfwWin.Iconified )

-    {

-        return;

-    }

-

-    // Restore iconified window

-    _glfwPlatformRestoreWindow();

-

-    // Refresh window parameters

-    _glfwPlatformRefreshWindowParams();

-}

-

-

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

-// glfwSwapBuffers() - Swap buffers (double-buffering) and poll any new

-// events

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

-

-GLFWAPI void GLFWAPIENTRY glfwSwapBuffers( void )

-{

-    // Is GLFW initialized?

-    if( !_glfwInitialized || !_glfwWin.Opened )

-    {

-        return;

-    }

-

-    // Check for window messages

-    if( _glfwWin.AutoPollEvents )

-    {

-        glfwPollEvents();

-    }

-

-    // Update display-buffer

-    if( _glfwWin.Opened )

-    {

-        _glfwPlatformSwapBuffers();

-    }

-}

-

-

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

-// glfwSwapInterval() - Set double buffering swap interval (0 = vsync off)

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

-

-GLFWAPI void GLFWAPIENTRY glfwSwapInterval( int interval )

-{

-    // Is GLFW initialized?

-    if( !_glfwInitialized || !_glfwWin.Opened )

-    {

-        return;

-    }

-

-    // Set double buffering swap interval

-    _glfwPlatformSwapInterval( interval );

-}

-

-

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

-// glfwGetWindowParam() - Get window parameter

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

-

-GLFWAPI int GLFWAPIENTRY glfwGetWindowParam( int param )

-{

-    // Is GLFW initialized?

-    if( !_glfwInitialized )

-    {

-        return 0;

-    }

-

-    // Is the window opened?

-    if( !_glfwWin.Opened )

-    {

-        if( param == GLFW_OPENED )

-        {

-            return GL_FALSE;

-        }

-        return 0;

-    }

-

-    // Window parameters

-    switch( param )

-    {

-        case GLFW_OPENED:

-            return GL_TRUE;

-        case GLFW_ACTIVE:

-            return _glfwWin.Active;

-        case GLFW_ICONIFIED:

-            return _glfwWin.Iconified;

-        case GLFW_ACCELERATED:

-            return _glfwWin.Accelerated;

-        case GLFW_RED_BITS:

-            return _glfwWin.RedBits;

-        case GLFW_GREEN_BITS:

-            return _glfwWin.GreenBits;

-        case GLFW_BLUE_BITS:

-            return _glfwWin.BlueBits;

-        case GLFW_ALPHA_BITS:

-            return _glfwWin.AlphaBits;

-        case GLFW_DEPTH_BITS:

-            return _glfwWin.DepthBits;

-        case GLFW_STENCIL_BITS:

-            return _glfwWin.StencilBits;

-        case GLFW_ACCUM_RED_BITS:

-            return _glfwWin.AccumRedBits;

-        case GLFW_ACCUM_GREEN_BITS:

-            return _glfwWin.AccumGreenBits;

-        case GLFW_ACCUM_BLUE_BITS:

-            return _glfwWin.AccumBlueBits;

-        case GLFW_ACCUM_ALPHA_BITS:

-            return _glfwWin.AccumAlphaBits;

-        case GLFW_AUX_BUFFERS:

-            return _glfwWin.AuxBuffers;

-        case GLFW_STEREO:

-            return _glfwWin.Stereo;

-        case GLFW_REFRESH_RATE:

-            return _glfwWin.RefreshRate;

-        case GLFW_WINDOW_NO_RESIZE:

-            return _glfwWin.WindowNoResize;

-	case GLFW_FSAA_SAMPLES:

-	    return _glfwWin.Samples;

-        default:

-            return 0;

-    }

-}

-

-

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

-// glfwSetWindowSizeCallback() - Set callback function for window size

-// changes

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

-

-GLFWAPI void GLFWAPIENTRY glfwSetWindowSizeCallback( GLFWwindowsizefun cbfun )

-{

-    // Is GLFW initialized?

-    if( !_glfwInitialized || !_glfwWin.Opened )

-    {

-        return;

-    }

-

-    // Set callback function

-    _glfwWin.WindowSizeCallback = cbfun;

-

-    // Call the callback function to let the application know the current

-    // window size

-    if( cbfun )

-    {

-        cbfun( _glfwWin.Width, _glfwWin.Height );

-    }

-}

-

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

-// glfwSetWindowCloseCallback() - Set callback function for window close

-// events

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

-

-GLFWAPI void GLFWAPIENTRY glfwSetWindowCloseCallback( GLFWwindowclosefun cbfun )

-{

-    // Is GLFW initialized?

-    if( !_glfwInitialized || !_glfwWin.Opened )

-    {

-        return;

-    }

-

-    // Set callback function

-    _glfwWin.WindowCloseCallback = cbfun;

-}

-

-

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

-// glfwSetWindowRefreshCallback() - Set callback function for window

-// refresh events

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

-

-GLFWAPI void GLFWAPIENTRY glfwSetWindowRefreshCallback( GLFWwindowrefreshfun cbfun )

-{

-    // Is GLFW initialized?

-    if( !_glfwInitialized || !_glfwWin.Opened )

-    {

-        return;

-    }

-

-    // Set callback function

-    _glfwWin.WindowRefreshCallback = cbfun;

-}

-

-

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

-// glfwPollEvents() - Poll for new window and input events

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

-

-GLFWAPI void GLFWAPIENTRY glfwPollEvents( void )

-{

-    // Is GLFW initialized?

-    if( !_glfwInitialized || !_glfwWin.Opened )

-    {

-        return;

-    }

-

-    // Poll for new events

-    _glfwPlatformPollEvents();

-}

-

-

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

-// glfwWaitEvents() - Wait for new window and input events

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

-

-GLFWAPI void GLFWAPIENTRY glfwWaitEvents( void )

-{

-    // Is GLFW initialized?

-    if( !_glfwInitialized || !_glfwWin.Opened )

-    {

-        return;

-    }

-

-    // Poll for new events

-    _glfwPlatformWaitEvents();

-}

-