diff --git a/externals/glfw-3.0.2/lib-mingw/glfw3.dll b/externals/glfw-3.0.2/lib-mingw/glfw3.dll deleted file mode 100644 index 4583efa397..0000000000 Binary files a/externals/glfw-3.0.2/lib-mingw/glfw3.dll and /dev/null differ diff --git a/externals/glfw-3.0.2/lib-msvc100/glfw3.dll b/externals/glfw-3.0.2/lib-msvc100/glfw3.dll deleted file mode 100644 index 9642f18f04..0000000000 Binary files a/externals/glfw-3.0.2/lib-msvc100/glfw3.dll and /dev/null differ diff --git a/externals/glfw-3.0.2/lib-msvc100/glfw3.lib b/externals/glfw-3.0.2/lib-msvc100/glfw3.lib deleted file mode 100644 index 9b28762f14..0000000000 Binary files a/externals/glfw-3.0.2/lib-msvc100/glfw3.lib and /dev/null differ diff --git a/externals/glfw-3.0.2/lib-msvc100/glfw3dll.lib b/externals/glfw-3.0.2/lib-msvc100/glfw3dll.lib deleted file mode 100644 index eac88cedef..0000000000 Binary files a/externals/glfw-3.0.2/lib-msvc100/glfw3dll.lib and /dev/null differ diff --git a/externals/glfw-3.0.2/lib-msvc110/glfw3.dll b/externals/glfw-3.0.2/lib-msvc110/glfw3.dll deleted file mode 100644 index fbe97b0528..0000000000 Binary files a/externals/glfw-3.0.2/lib-msvc110/glfw3.dll and /dev/null differ diff --git a/externals/glfw-3.0.2/lib-msvc110/glfw3.lib b/externals/glfw-3.0.2/lib-msvc110/glfw3.lib deleted file mode 100644 index 45da61c3a9..0000000000 Binary files a/externals/glfw-3.0.2/lib-msvc110/glfw3.lib and /dev/null differ diff --git a/externals/glfw-3.0.2/lib-msvc110/glfw3dll.lib b/externals/glfw-3.0.2/lib-msvc110/glfw3dll.lib deleted file mode 100644 index 7cd51c3f84..0000000000 Binary files a/externals/glfw-3.0.2/lib-msvc110/glfw3dll.lib and /dev/null differ diff --git a/externals/glfw-3.0.2/COPYING.txt b/externals/glfw-3.0.4.bin/COPYING.txt similarity index 100% rename from externals/glfw-3.0.2/COPYING.txt rename to externals/glfw-3.0.4.bin/COPYING.txt diff --git a/externals/glfw-3.0.2/include/GLFW/glfw3.h b/externals/glfw-3.0.4.bin/include/GLFW/glfw3.h similarity index 96% rename from externals/glfw-3.0.2/include/GLFW/glfw3.h rename to externals/glfw-3.0.4.bin/include/GLFW/glfw3.h index de2798b9fc..0f97738c71 100644 --- a/externals/glfw-3.0.2/include/GLFW/glfw3.h +++ b/externals/glfw-3.0.4.bin/include/GLFW/glfw3.h @@ -133,10 +133,38 @@ extern "C" { /* Most GL/glu.h variants on Windows need wchar_t * OpenGL/gl.h blocks the definition of ptrdiff_t by glext.h on OS X */ -#include +#if !defined(GLFW_INCLUDE_NONE) + #include +#endif - -/* ---------------- GLFW related system specific defines ----------------- */ +/* Include the chosen client API headers. + */ +#if defined(__APPLE_CC__) + #if defined(GLFW_INCLUDE_GLCOREARB) + #include + #elif !defined(GLFW_INCLUDE_NONE) + #define GL_GLEXT_LEGACY + #include + #endif + #if defined(GLFW_INCLUDE_GLU) + #include + #endif +#else + #if defined(GLFW_INCLUDE_GLCOREARB) + #include + #elif defined(GLFW_INCLUDE_ES1) + #include + #elif defined(GLFW_INCLUDE_ES2) + #include + #elif defined(GLFW_INCLUDE_ES3) + #include + #elif !defined(GLFW_INCLUDE_NONE) + #include + #endif + #if defined(GLFW_INCLUDE_GLU) + #include + #endif +#endif #if defined(GLFW_DLL) && defined(_GLFW_BUILD_DLL) /* GLFW_DLL is defined by users of GLFW when compiling programs that will link @@ -173,35 +201,6 @@ extern "C" { /* -------------------- END SYSTEM/COMPILER SPECIFIC --------------------- */ -/* Include the chosen client API headers. - */ -#if defined(__APPLE_CC__) - #if defined(GLFW_INCLUDE_GLCOREARB) - #include - #elif !defined(GLFW_INCLUDE_NONE) - #define GL_GLEXT_LEGACY - #include - #endif - #if defined(GLFW_INCLUDE_GLU) - #include - #endif -#else - #if defined(GLFW_INCLUDE_GLCOREARB) - #include - #elif defined(GLFW_INCLUDE_ES1) - #include - #elif defined(GLFW_INCLUDE_ES2) - #include - #elif defined(GLFW_INCLUDE_ES3) - #include - #elif !defined(GLFW_INCLUDE_NONE) - #include - #endif - #if defined(GLFW_INCLUDE_GLU) - #include - #endif -#endif - /************************************************************************* * GLFW API tokens @@ -228,7 +227,7 @@ extern "C" { * API changes. * @ingroup init */ -#define GLFW_VERSION_REVISION 2 +#define GLFW_VERSION_REVISION 4 /*! @} */ /*! @name Key and button actions @@ -707,8 +706,8 @@ typedef void (* GLFWmousebuttonfun)(GLFWwindow*,int,int,int); * This is the function signature for cursor position callback functions. * * @param[in] window The window that received the event. - * @param[in] xpos The new x-coordinate of the cursor. - * @param[in] ypos The new y-coordinate of the cursor. + * @param[in] xpos The new x-coordinate, in screen coordinates, of the cursor. + * @param[in] ypos The new y-coordinate, in screen coordinates, of the cursor. * * @sa glfwSetCursorPosCallback * @@ -766,7 +765,7 @@ typedef void (* GLFWkeyfun)(GLFWwindow*,int,int,int,int); * This is the function signature for Unicode character callback functions. * * @param[in] window The window that received the event. - * @param[in] character The Unicode code point of the character. + * @param[in] codepoint The Unicode code point of the character. * * @sa glfwSetCharCallback * @@ -793,7 +792,7 @@ typedef void (* GLFWmonitorfun)(GLFWmonitor*,int); * * @ingroup monitor */ -typedef struct +typedef struct GLFWvidmode { /*! The width, in screen coordinates, of the video mode. */ @@ -823,7 +822,7 @@ typedef struct * * @ingroup monitor */ -typedef struct +typedef struct GLFWgammaramp { /*! An array of value describing the response of the red channel. */ @@ -864,10 +863,7 @@ typedef struct * * @note This function may only be called from the main thread. * - * @note This function may take several seconds to complete on some systems, - * while on other systems it may take only a fraction of a second to complete. - * - * @note **Mac OS X:** This function will change the current directory of the + * @note **OS X:** This function will change the current directory of the * application to the `Contents/Resources` subdirectory of the application's * bundle, if present. * @@ -1233,17 +1229,26 @@ GLFWAPI void glfwWindowHint(int target, int hint); * to not share resources. * @return The handle of the created window, or `NULL` if an error occurred. * + * @remarks **Windows:** Window creation will fail if the Microsoft GDI + * software OpenGL implementation is the only one available. + * * @remarks **Windows:** If the executable has an icon resource named * `GLFW_ICON,` it will be set as the icon for the window. If no such icon is * present, the `IDI_WINLOGO` icon will be used instead. * - * @remarks **Mac OS X:** The GLFW window has no icon, as it is not a document + * @remarks **OS X:** The GLFW window has no icon, as it is not a document * window, but the dock icon will be the same as the application bundle's icon. * Also, the first time a window is opened the menu bar is populated with * common commands like Hide, Quit and About. The (minimal) about dialog uses * information from the application's bundle. For more information on bundles, * see the Bundle Programming Guide provided by Apple. * + * @remarks **X11:** There is no mechanism for setting the window icon yet. + * + * @remarks The swap interval is not set during window creation, but is left at + * the default value for that platform. For more information, see @ref + * glfwSwapInterval. + * * @note This function may only be called from the main thread. * * @sa glfwDestroyWindow @@ -1355,10 +1360,6 @@ GLFWAPI void glfwGetWindowPos(GLFWwindow* window, int* xpos, int* ypos); * * @note The window manager may put limits on what positions are allowed. * - * @bug **X11:** Some window managers ignore the set position of hidden (i.e. - * unmapped) windows, instead placing them where it thinks is appropriate once - * they are shown. - * * @sa glfwGetWindowPos * * @ingroup window @@ -1368,7 +1369,8 @@ GLFWAPI void glfwSetWindowPos(GLFWwindow* window, int xpos, int ypos); /*! @brief Retrieves the size of the client area of the specified window. * * This function retrieves the size, in screen coordinates, of the client area - * of the specified window. + * of the specified window. If you wish to retrieve the size of the + * framebuffer in pixels, see @ref glfwGetFramebufferSize. * * @param[in] window The window whose size to retrieve. * @param[out] width Where to store the width, in screen coordinates, of the @@ -1409,7 +1411,8 @@ GLFWAPI void glfwSetWindowSize(GLFWwindow* window, int width, int height); /*! @brief Retrieves the size of the framebuffer of the specified window. * * This function retrieves the size, in pixels, of the framebuffer of the - * specified window. + * specified window. If you wish to retrieve the size of the window in screen + * coordinates, see @ref glfwGetWindowSize. * * @param[in] window The window whose framebuffer to query. * @param[out] width Where to store the width, in pixels, of the framebuffer, @@ -1592,7 +1595,10 @@ GLFWAPI GLFWwindowsizefun glfwSetWindowSizeCallback(GLFWwindow* window, GLFWwind * @return The previously set callback, or `NULL` if no callback was set or an * error occurred. * - * @remarks **Mac OS X:** Selecting Quit from the application menu will + * @par New in GLFW 3 + * The close callback no longer returns a value. + * + * @remarks **OS X:** Selecting Quit from the application menu will * trigger the close callback for all windows. * * @ingroup window @@ -1685,6 +1691,12 @@ GLFWAPI GLFWframebuffersizefun glfwSetFramebufferSizeCallback(GLFWwindow* window * This function is no longer called by @ref glfwSwapBuffers. You need to call * it or @ref glfwWaitEvents yourself. * + * @remarks On some platforms, a window move, resize or menu operation will + * cause event processing to block. This is due to how event processing is + * designed on those platforms. You can use the + * [window refresh callback](@ref GLFWwindowrefreshfun) to redraw the contents + * of your window when necessary during the operation. + * * @note This function may only be called from the main thread. * * @note This function may not be called from a callback. @@ -1712,6 +1724,12 @@ GLFWAPI void glfwPollEvents(void); * * This function is not required for joystick input to work. * + * @remarks On some platforms, a window move, resize or menu operation will + * cause event processing to block. This is due to how event processing is + * designed on those platforms. You can use the + * [window refresh callback](@ref GLFWwindowrefreshfun) to redraw the contents + * of your window when necessary during the operation. + * * @note This function may only be called from the main thread. * * @note This function may not be called from a callback. @@ -1747,9 +1765,12 @@ GLFWAPI int glfwGetInputMode(GLFWwindow* window, int mode); * modes: * - `GLFW_CURSOR_NORMAL` makes the cursor visible and behaving normally. * - `GLFW_CURSOR_HIDDEN` makes the cursor invisible when it is over the client - * area of the window. - * - `GLFW_CURSOR_DISABLED` disables the cursor and removes any limitations on - * cursor movement. + * area of the window but does not restrict the cursor from leaving. This is + * useful if you wish to render your own cursor or have no visible cursor at + * all. + * - `GLFW_CURSOR_DISABLED` hides and grabs the cursor, providing virtual + * and unlimited cursor movement. This is useful for implementing for + * example 3D camera controls. * * If `mode` is `GLFW_STICKY_KEYS`, the value must be either `GL_TRUE` to * enable sticky keys, or `GL_FALSE` to disable it. If sticky keys are @@ -1819,7 +1840,8 @@ GLFWAPI int glfwGetMouseButton(GLFWwindow* window, int button); /*! @brief Retrieves the last reported cursor position, relative to the client * area of the window. * - * This function returns the last reported position of the cursor to the + * This function returns the last reported position of the cursor, in screen + * coordinates, relative to the upper-left corner of the client area of the * specified window. * * If the cursor is disabled (with `GLFW_CURSOR_DISABLED`) then the cursor @@ -1842,11 +1864,13 @@ GLFWAPI int glfwGetMouseButton(GLFWwindow* window, int button); */ GLFWAPI void glfwGetCursorPos(GLFWwindow* window, double* xpos, double* ypos); -/*! @brief Sets the position of the cursor, relative to the client area of the window. +/*! @brief Sets the position of the cursor, relative to the client area of the + * window. * - * This function sets the position of the cursor. The specified window must be - * focused. If the window does not have focus when this function is called, it - * fails silently. + * This function sets the position, in screen coordinates, of the cursor + * relative to the upper-left corner of the client area of the specified + * window. The window must be focused. If the window does not have focus when + * this function is called, it fails silently. * * If the cursor is disabled (with `GLFW_CURSOR_DISABLED`) then the cursor * position is unbounded and limited only by the minimum and maximum values of @@ -1854,9 +1878,9 @@ GLFWAPI void glfwGetCursorPos(GLFWwindow* window, double* xpos, double* ypos); * * @param[in] window The desired window. * @param[in] xpos The desired x-coordinate, relative to the left edge of the - * client area, or `NULL`. + * client area. * @param[in] ypos The desired y-coordinate, relative to the top edge of the - * client area, or `NULL`. + * client area. * * @sa glfwGetCursorPos * @@ -1942,7 +1966,8 @@ GLFWAPI GLFWmousebuttonfun glfwSetMouseButtonCallback(GLFWwindow* window, GLFWmo * * This function sets the cursor position callback of the specified window, * which is called when the cursor is moved. The callback is provided with the - * position relative to the upper-left corner of the client area of the window. + * position, in screen coordinates, relative to the upper-left corner of the + * client area of the window. * * @param[in] window The window whose callback to set. * @param[in] cbfun The new callback, or `NULL` to remove the currently set @@ -2202,6 +2227,11 @@ GLFWAPI void glfwSwapBuffers(GLFWwindow* window); * * @remarks This function may be called from secondary threads. * + * @note This function is not called during window creation, leaving the swap + * interval set to whatever is the default on that platform. This is done + * because some swap interval extensions used by GLFW do not allow the swap + * interval to be reset to zero once it has been set to a non-zero value. + * * @note Some GPU drivers do not honor the requested swap interval, either * because of user settings that override the request or due to bugs in the * driver. diff --git a/externals/glfw-3.0.2/include/GLFW/glfw3native.h b/externals/glfw-3.0.4.bin/include/GLFW/glfw3native.h similarity index 100% rename from externals/glfw-3.0.2/include/GLFW/glfw3native.h rename to externals/glfw-3.0.4.bin/include/GLFW/glfw3native.h diff --git a/externals/glfw-3.0.4.bin/lib-mingw-i686/glfw3.dll b/externals/glfw-3.0.4.bin/lib-mingw-i686/glfw3.dll new file mode 100644 index 0000000000..5941d1a0af Binary files /dev/null and b/externals/glfw-3.0.4.bin/lib-mingw-i686/glfw3.dll differ diff --git a/externals/glfw-3.0.4.bin/lib-mingw-i686/glfw3dll.a b/externals/glfw-3.0.4.bin/lib-mingw-i686/glfw3dll.a new file mode 100644 index 0000000000..415d85630c Binary files /dev/null and b/externals/glfw-3.0.4.bin/lib-mingw-i686/glfw3dll.a differ diff --git a/externals/glfw-3.0.4.bin/lib-mingw-i686/libglfw3.a b/externals/glfw-3.0.4.bin/lib-mingw-i686/libglfw3.a new file mode 100644 index 0000000000..7138ee9b5c Binary files /dev/null and b/externals/glfw-3.0.4.bin/lib-mingw-i686/libglfw3.a differ diff --git a/externals/glfw-3.0.4.bin/lib-mingw-x86_64/glfw3.dll b/externals/glfw-3.0.4.bin/lib-mingw-x86_64/glfw3.dll new file mode 100644 index 0000000000..49cf94a80b Binary files /dev/null and b/externals/glfw-3.0.4.bin/lib-mingw-x86_64/glfw3.dll differ diff --git a/externals/glfw-3.0.4.bin/lib-mingw-x86_64/glfw3dll.a b/externals/glfw-3.0.4.bin/lib-mingw-x86_64/glfw3dll.a new file mode 100644 index 0000000000..d71c653772 Binary files /dev/null and b/externals/glfw-3.0.4.bin/lib-mingw-x86_64/glfw3dll.a differ diff --git a/externals/glfw-3.0.4.bin/lib-mingw-x86_64/libglfw3.a b/externals/glfw-3.0.4.bin/lib-mingw-x86_64/libglfw3.a new file mode 100644 index 0000000000..d1ca9a42a9 Binary files /dev/null and b/externals/glfw-3.0.4.bin/lib-mingw-x86_64/libglfw3.a differ diff --git a/externals/glfw-3.0.4.bin/lib-msvc_v110-Win32/glfw3.dll b/externals/glfw-3.0.4.bin/lib-msvc_v110-Win32/glfw3.dll new file mode 100644 index 0000000000..d66c5dd89f Binary files /dev/null and b/externals/glfw-3.0.4.bin/lib-msvc_v110-Win32/glfw3.dll differ diff --git a/externals/glfw-3.0.4.bin/lib-msvc_v110-Win32/glfw3.lib b/externals/glfw-3.0.4.bin/lib-msvc_v110-Win32/glfw3.lib new file mode 100644 index 0000000000..2f972ab1ad Binary files /dev/null and b/externals/glfw-3.0.4.bin/lib-msvc_v110-Win32/glfw3.lib differ diff --git a/externals/glfw-3.0.4.bin/lib-msvc_v110-Win32/glfw3dll.lib b/externals/glfw-3.0.4.bin/lib-msvc_v110-Win32/glfw3dll.lib new file mode 100644 index 0000000000..365cdbafb4 Binary files /dev/null and b/externals/glfw-3.0.4.bin/lib-msvc_v110-Win32/glfw3dll.lib differ diff --git a/externals/glfw-3.0.4.bin/lib-msvc_v110-x64/glfw3.dll b/externals/glfw-3.0.4.bin/lib-msvc_v110-x64/glfw3.dll new file mode 100644 index 0000000000..44e6d49e41 Binary files /dev/null and b/externals/glfw-3.0.4.bin/lib-msvc_v110-x64/glfw3.dll differ diff --git a/externals/glfw-3.0.4.bin/lib-msvc_v110-x64/glfw3.lib b/externals/glfw-3.0.4.bin/lib-msvc_v110-x64/glfw3.lib new file mode 100644 index 0000000000..77757999e6 Binary files /dev/null and b/externals/glfw-3.0.4.bin/lib-msvc_v110-x64/glfw3.lib differ diff --git a/externals/glfw-3.0.4.bin/lib-msvc_v110-x64/glfw3dll.lib b/externals/glfw-3.0.4.bin/lib-msvc_v110-x64/glfw3dll.lib new file mode 100644 index 0000000000..20b5484068 Binary files /dev/null and b/externals/glfw-3.0.4.bin/lib-msvc_v110-x64/glfw3dll.lib differ diff --git a/externals/glfw-3.0.4.bin/lib-msvc_v120-Win32/glfw3.dll b/externals/glfw-3.0.4.bin/lib-msvc_v120-Win32/glfw3.dll new file mode 100644 index 0000000000..e15fc43b45 Binary files /dev/null and b/externals/glfw-3.0.4.bin/lib-msvc_v120-Win32/glfw3.dll differ diff --git a/externals/glfw-3.0.4.bin/lib-msvc_v120-Win32/glfw3.lib b/externals/glfw-3.0.4.bin/lib-msvc_v120-Win32/glfw3.lib new file mode 100644 index 0000000000..071a0ab843 Binary files /dev/null and b/externals/glfw-3.0.4.bin/lib-msvc_v120-Win32/glfw3.lib differ diff --git a/externals/glfw-3.0.4.bin/lib-msvc_v120-Win32/glfw3dll.lib b/externals/glfw-3.0.4.bin/lib-msvc_v120-Win32/glfw3dll.lib new file mode 100644 index 0000000000..d0c5ff5e15 Binary files /dev/null and b/externals/glfw-3.0.4.bin/lib-msvc_v120-Win32/glfw3dll.lib differ diff --git a/externals/glfw-3.0.4.bin/lib-msvc_v120-x64/glfw3.dll b/externals/glfw-3.0.4.bin/lib-msvc_v120-x64/glfw3.dll new file mode 100644 index 0000000000..9da042a6b3 Binary files /dev/null and b/externals/glfw-3.0.4.bin/lib-msvc_v120-x64/glfw3.dll differ diff --git a/externals/glfw-3.0.4.bin/lib-msvc_v120-x64/glfw3.lib b/externals/glfw-3.0.4.bin/lib-msvc_v120-x64/glfw3.lib new file mode 100644 index 0000000000..e2b495ff56 Binary files /dev/null and b/externals/glfw-3.0.4.bin/lib-msvc_v120-x64/glfw3.lib differ diff --git a/externals/glfw-3.0.4.bin/lib-msvc_v120-x64/glfw3dll.lib b/externals/glfw-3.0.4.bin/lib-msvc_v120-x64/glfw3dll.lib new file mode 100644 index 0000000000..3d6e86418b Binary files /dev/null and b/externals/glfw-3.0.4.bin/lib-msvc_v120-x64/glfw3dll.lib differ diff --git a/vsprops/app.props b/vsprops/app.props index 8a32277719..b9c583e0f4 100644 --- a/vsprops/app.props +++ b/vsprops/app.props @@ -11,7 +11,7 @@ xcopy "$(SolutionDir)data" "$(EmuBinDir)" /Y /S /D -xcopy "$(ExternalsDir)glfw-3.0.2\lib-msvc100\glfw3.dll" "$(EmuBinDir)" /Y /S /D +xcopy "$(ExternalsDir)glfw-3.0.4.bin\lib-msvc_$(PlatformToolset)-$(Platform)\glfw3.dll" "$(EmuBinDir)" /Y /S /D %(Command) diff --git a/vsprops/externals.props b/vsprops/externals.props index d401fee5c4..2d320c7942 100644 --- a/vsprops/externals.props +++ b/vsprops/externals.props @@ -9,13 +9,13 @@ - $(ExternalsDir)glfw-3.0.2\include;$(ExternalsDir)qhexedit;%(AdditionalIncludeDirectories) + $(ExternalsDir)glfw-3.0.4.bin\include;$(ExternalsDir)qhexedit;%(AdditionalIncludeDirectories) - $(ExternalsDir)glfw-3.0.2\lib-msvc100;$(ExternalsDir)libjpeg;$(ExternalsDir)sdl-2.0.0\lib\$(PlatformName);%(AdditionalLibraryDirectories) + $(ExternalsDir)glfw-3.0.4.bin\lib-msvc_$(PlatformToolset)-$(Platform);$(ExternalsDir)libjpeg;$(ExternalsDir)sdl-2.0.0\lib\$(PlatformName);%(AdditionalLibraryDirectories) glfw3dll.lib;opengl32.lib;glu32.lib;%(AdditionalDependencies)