Update GLFW to 3.0.4 and include x64 lib for MSVC

This commit is contained in:
Yuri Kunde Schlesner 2014-08-23 21:24:08 -03:00
parent 478289140d
commit 523385955c
30 changed files with 94 additions and 64 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -133,10 +133,38 @@ extern "C" {
/* Most GL/glu.h variants on Windows need wchar_t /* 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 */ * OpenGL/gl.h blocks the definition of ptrdiff_t by glext.h on OS X */
#if !defined(GLFW_INCLUDE_NONE)
#include <stddef.h> #include <stddef.h>
#endif
/* Include the chosen client API headers.
/* ---------------- GLFW related system specific defines ----------------- */ */
#if defined(__APPLE_CC__)
#if defined(GLFW_INCLUDE_GLCOREARB)
#include <OpenGL/gl3.h>
#elif !defined(GLFW_INCLUDE_NONE)
#define GL_GLEXT_LEGACY
#include <OpenGL/gl.h>
#endif
#if defined(GLFW_INCLUDE_GLU)
#include <OpenGL/glu.h>
#endif
#else
#if defined(GLFW_INCLUDE_GLCOREARB)
#include <GL/glcorearb.h>
#elif defined(GLFW_INCLUDE_ES1)
#include <GLES/gl.h>
#elif defined(GLFW_INCLUDE_ES2)
#include <GLES2/gl2.h>
#elif defined(GLFW_INCLUDE_ES3)
#include <GLES3/gl3.h>
#elif !defined(GLFW_INCLUDE_NONE)
#include <GL/gl.h>
#endif
#if defined(GLFW_INCLUDE_GLU)
#include <GL/glu.h>
#endif
#endif
#if defined(GLFW_DLL) && defined(_GLFW_BUILD_DLL) #if defined(GLFW_DLL) && defined(_GLFW_BUILD_DLL)
/* GLFW_DLL is defined by users of GLFW when compiling programs that will link /* GLFW_DLL is defined by users of GLFW when compiling programs that will link
@ -173,35 +201,6 @@ extern "C" {
/* -------------------- END SYSTEM/COMPILER SPECIFIC --------------------- */ /* -------------------- END SYSTEM/COMPILER SPECIFIC --------------------- */
/* Include the chosen client API headers.
*/
#if defined(__APPLE_CC__)
#if defined(GLFW_INCLUDE_GLCOREARB)
#include <OpenGL/gl3.h>
#elif !defined(GLFW_INCLUDE_NONE)
#define GL_GLEXT_LEGACY
#include <OpenGL/gl.h>
#endif
#if defined(GLFW_INCLUDE_GLU)
#include <OpenGL/glu.h>
#endif
#else
#if defined(GLFW_INCLUDE_GLCOREARB)
#include <GL/glcorearb.h>
#elif defined(GLFW_INCLUDE_ES1)
#include <GLES/gl.h>
#elif defined(GLFW_INCLUDE_ES2)
#include <GLES2/gl2.h>
#elif defined(GLFW_INCLUDE_ES3)
#include <GLES3/gl3.h>
#elif !defined(GLFW_INCLUDE_NONE)
#include <GL/gl.h>
#endif
#if defined(GLFW_INCLUDE_GLU)
#include <GL/glu.h>
#endif
#endif
/************************************************************************* /*************************************************************************
* GLFW API tokens * GLFW API tokens
@ -228,7 +227,7 @@ extern "C" {
* API changes. * API changes.
* @ingroup init * @ingroup init
*/ */
#define GLFW_VERSION_REVISION 2 #define GLFW_VERSION_REVISION 4
/*! @} */ /*! @} */
/*! @name Key and button actions /*! @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. * This is the function signature for cursor position callback functions.
* *
* @param[in] window The window that received the event. * @param[in] window The window that received the event.
* @param[in] xpos The new x-coordinate of the cursor. * @param[in] xpos The new x-coordinate, in screen coordinates, of the cursor.
* @param[in] ypos The new y-coordinate of the cursor. * @param[in] ypos The new y-coordinate, in screen coordinates, of the cursor.
* *
* @sa glfwSetCursorPosCallback * @sa glfwSetCursorPosCallback
* *
@ -766,7 +765,7 @@ typedef void (* GLFWkeyfun)(GLFWwindow*,int,int,int,int);
* This is the function signature for Unicode character callback functions. * This is the function signature for Unicode character callback functions.
* *
* @param[in] window The window that received the event. * @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 * @sa glfwSetCharCallback
* *
@ -793,7 +792,7 @@ typedef void (* GLFWmonitorfun)(GLFWmonitor*,int);
* *
* @ingroup monitor * @ingroup monitor
*/ */
typedef struct typedef struct GLFWvidmode
{ {
/*! The width, in screen coordinates, of the video mode. /*! The width, in screen coordinates, of the video mode.
*/ */
@ -823,7 +822,7 @@ typedef struct
* *
* @ingroup monitor * @ingroup monitor
*/ */
typedef struct typedef struct GLFWgammaramp
{ {
/*! An array of value describing the response of the red channel. /*! 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 only be called from the main thread.
* *
* @note This function may take several seconds to complete on some systems, * @note **OS X:** This function will change the current directory of the
* 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
* application to the `Contents/Resources` subdirectory of the application's * application to the `Contents/Resources` subdirectory of the application's
* bundle, if present. * bundle, if present.
* *
@ -1233,17 +1229,26 @@ GLFWAPI void glfwWindowHint(int target, int hint);
* to not share resources. * to not share resources.
* @return The handle of the created window, or `NULL` if an error occurred. * @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 * @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 * `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. * 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. * 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 * 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 * common commands like Hide, Quit and About. The (minimal) about dialog uses
* information from the application's bundle. For more information on bundles, * information from the application's bundle. For more information on bundles,
* see the Bundle Programming Guide provided by Apple. * 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. * @note This function may only be called from the main thread.
* *
* @sa glfwDestroyWindow * @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. * @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 * @sa glfwGetWindowPos
* *
* @ingroup window * @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. /*! @brief Retrieves the size of the client area of the specified window.
* *
* This function retrieves the size, in screen coordinates, of the client area * 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[in] window The window whose size to retrieve.
* @param[out] width Where to store the width, in screen coordinates, of the * @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. /*! @brief Retrieves the size of the framebuffer of the specified window.
* *
* This function retrieves the size, in pixels, of the framebuffer of the * 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[in] window The window whose framebuffer to query.
* @param[out] width Where to store the width, in pixels, of the framebuffer, * @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 * @return The previously set callback, or `NULL` if no callback was set or an
* error occurred. * 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. * trigger the close callback for all windows.
* *
* @ingroup window * @ingroup window
@ -1685,6 +1691,12 @@ GLFWAPI GLFWframebuffersizefun glfwSetFramebufferSizeCallback(GLFWwindow* window
* This function is no longer called by @ref glfwSwapBuffers. You need to call * This function is no longer called by @ref glfwSwapBuffers. You need to call
* it or @ref glfwWaitEvents yourself. * 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 only be called from the main thread.
* *
* @note This function may not be called from a callback. * @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. * 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 only be called from the main thread.
* *
* @note This function may not be called from a callback. * @note This function may not be called from a callback.
@ -1747,9 +1765,12 @@ GLFWAPI int glfwGetInputMode(GLFWwindow* window, int mode);
* modes: * modes:
* - `GLFW_CURSOR_NORMAL` makes the cursor visible and behaving normally. * - `GLFW_CURSOR_NORMAL` makes the cursor visible and behaving normally.
* - `GLFW_CURSOR_HIDDEN` makes the cursor invisible when it is over the client * - `GLFW_CURSOR_HIDDEN` makes the cursor invisible when it is over the client
* area of the window. * area of the window but does not restrict the cursor from leaving. This is
* - `GLFW_CURSOR_DISABLED` disables the cursor and removes any limitations on * useful if you wish to render your own cursor or have no visible cursor at
* cursor movement. * 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 * 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 * 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 /*! @brief Retrieves the last reported cursor position, relative to the client
* area of the window. * 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. * specified window.
* *
* If the cursor is disabled (with `GLFW_CURSOR_DISABLED`) then the cursor * 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); 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 * This function sets the position, in screen coordinates, of the cursor
* focused. If the window does not have focus when this function is called, it * relative to the upper-left corner of the client area of the specified
* fails silently. * 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 * 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 * 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] window The desired window.
* @param[in] xpos The desired x-coordinate, relative to the left edge of the * @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 * @param[in] ypos The desired y-coordinate, relative to the top edge of the
* client area, or `NULL`. * client area.
* *
* @sa glfwGetCursorPos * @sa glfwGetCursorPos
* *
@ -1942,7 +1966,8 @@ GLFWAPI GLFWmousebuttonfun glfwSetMouseButtonCallback(GLFWwindow* window, GLFWmo
* *
* This function sets the cursor position callback of the specified window, * 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 * 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] window The window whose callback to set.
* @param[in] cbfun The new callback, or `NULL` to remove the currently 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. * @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 * @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 * because of user settings that override the request or due to bugs in the
* driver. * driver.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -11,7 +11,7 @@
<ItemDefinitionGroup> <ItemDefinitionGroup>
<PostBuildEvent> <PostBuildEvent>
<Command>xcopy "$(SolutionDir)data" "$(EmuBinDir)" /Y /S /D <Command>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)</Command> %(Command)</Command>
</PostBuildEvent> </PostBuildEvent>
<Link> <Link>

View file

@ -9,13 +9,13 @@
</PropertyGroup> </PropertyGroup>
<ItemDefinitionGroup> <ItemDefinitionGroup>
<ClCompile> <ClCompile>
<AdditionalIncludeDirectories>$(ExternalsDir)glfw-3.0.2\include;$(ExternalsDir)qhexedit;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <AdditionalIncludeDirectories>$(ExternalsDir)glfw-3.0.4.bin\include;$(ExternalsDir)qhexedit;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions> <PreprocessorDefinitions>
</PreprocessorDefinitions> </PreprocessorDefinitions>
</ClCompile> </ClCompile>
<Lib /> <Lib />
<Link> <Link>
<AdditionalLibraryDirectories>$(ExternalsDir)glfw-3.0.2\lib-msvc100;$(ExternalsDir)libjpeg;$(ExternalsDir)sdl-2.0.0\lib\$(PlatformName);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> <AdditionalLibraryDirectories>$(ExternalsDir)glfw-3.0.4.bin\lib-msvc_$(PlatformToolset)-$(Platform);$(ExternalsDir)libjpeg;$(ExternalsDir)sdl-2.0.0\lib\$(PlatformName);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>glfw3dll.lib;opengl32.lib;glu32.lib;%(AdditionalDependencies)</AdditionalDependencies> <AdditionalDependencies>glfw3dll.lib;opengl32.lib;glu32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<IgnoreSpecificDefaultLibraries> <IgnoreSpecificDefaultLibraries>
</IgnoreSpecificDefaultLibraries> </IgnoreSpecificDefaultLibraries>