Update GLFW to latest dev version (master branch)
This commit is contained in:
parent
b1b4a11bdb
commit
c7d6a44e33
9 changed files with 50 additions and 22 deletions
|
@ -27,11 +27,6 @@ if (WIN32)
|
||||||
"$ENV{VULKAN_SDK}/Bin32"
|
"$ENV{VULKAN_SDK}/Bin32"
|
||||||
"$ENV{VK_SDK_PATH}/Bin32")
|
"$ENV{VK_SDK_PATH}/Bin32")
|
||||||
endif()
|
endif()
|
||||||
elseif (APPLE)
|
|
||||||
find_library(VULKAN_LIBRARY vulkan.1 HINTS
|
|
||||||
"$ENV{VULKAN_SDK}/macOS/lib")
|
|
||||||
find_path(VULKAN_INCLUDE_DIR NAMES vulkan/vulkan.h HINTS
|
|
||||||
"$ENV{VULKAN_SDK}/macOS/include")
|
|
||||||
else()
|
else()
|
||||||
find_path(VULKAN_INCLUDE_DIR NAMES vulkan/vulkan.h HINTS
|
find_path(VULKAN_INCLUDE_DIR NAMES vulkan/vulkan.h HINTS
|
||||||
"$ENV{VULKAN_SDK}/include")
|
"$ENV{VULKAN_SDK}/include")
|
||||||
|
|
2
src/external/glfw/README.md
vendored
2
src/external/glfw/README.md
vendored
|
@ -165,6 +165,8 @@ information on what to include when reporting a bug.
|
||||||
- Added `GLFW_HOVERED` window attribute for polling cursor hover state (#1166)
|
- Added `GLFW_HOVERED` window attribute for polling cursor hover state (#1166)
|
||||||
- Added `GLFW_CENTER_CURSOR` window hint for controlling cursor centering
|
- Added `GLFW_CENTER_CURSOR` window hint for controlling cursor centering
|
||||||
(#749,#842)
|
(#749,#842)
|
||||||
|
- Added `GLFW_FOCUS_ON_SHOW` window hint and attribute to control input focus
|
||||||
|
on calling show window (#1189)
|
||||||
- Added `GLFW_JOYSTICK_HAT_BUTTONS` init hint (#889)
|
- Added `GLFW_JOYSTICK_HAT_BUTTONS` init hint (#889)
|
||||||
- Added `GLFW_LOCK_KEY_MODS` input mode and `GLFW_MOD_*_LOCK` mod bits (#946)
|
- Added `GLFW_LOCK_KEY_MODS` input mode and `GLFW_MOD_*_LOCK` mod bits (#946)
|
||||||
- Added macOS specific `GLFW_COCOA_RETINA_FRAMEBUFFER` window hint
|
- Added macOS specific `GLFW_COCOA_RETINA_FRAMEBUFFER` window hint
|
||||||
|
|
20
src/external/glfw/include/GLFW/glfw3.h
vendored
20
src/external/glfw/include/GLFW/glfw3.h
vendored
|
@ -819,6 +819,12 @@ extern "C" {
|
||||||
* Mouse cursor hover [window attribute](@ref GLFW_HOVERED_attrib).
|
* Mouse cursor hover [window attribute](@ref GLFW_HOVERED_attrib).
|
||||||
*/
|
*/
|
||||||
#define GLFW_HOVERED 0x0002000B
|
#define GLFW_HOVERED 0x0002000B
|
||||||
|
/*! @brief Input focus on calling show window hint and attribute
|
||||||
|
*
|
||||||
|
* Input focus [window hint](@ref GLFW_FOCUS_ON_SHOW_hint) or
|
||||||
|
* [window attribute](@ref GLFW_FOCUS_ON_SHOW_attrib).
|
||||||
|
*/
|
||||||
|
#define GLFW_FOCUS_ON_SHOW 0x0002000C
|
||||||
|
|
||||||
/*! @brief Framebuffer bit depth hint.
|
/*! @brief Framebuffer bit depth hint.
|
||||||
*
|
*
|
||||||
|
@ -3085,6 +3091,11 @@ GLFWAPI void glfwMaximizeWindow(GLFWwindow* window);
|
||||||
* hidden. If the window is already visible or is in full screen mode, this
|
* hidden. If the window is already visible or is in full screen mode, this
|
||||||
* function does nothing.
|
* function does nothing.
|
||||||
*
|
*
|
||||||
|
* By default, windowed mode windows are focused when shown
|
||||||
|
* Set the [GLFW_FOCUS_ON_SHOW](@ref GLFW_FOCUS_ON_SHOW_hint) window hint
|
||||||
|
* to change this behavior for all newly created windows, or change the
|
||||||
|
* behavior for an existing window with @ref glfwSetWindowAttrib.
|
||||||
|
*
|
||||||
* @param[in] window The window to make visible.
|
* @param[in] window The window to make visible.
|
||||||
*
|
*
|
||||||
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
|
* @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
|
||||||
|
@ -3132,6 +3143,10 @@ GLFWAPI void glfwHideWindow(GLFWwindow* window);
|
||||||
* initially created. Set the [GLFW_FOCUSED](@ref GLFW_FOCUSED_hint) to
|
* initially created. Set the [GLFW_FOCUSED](@ref GLFW_FOCUSED_hint) to
|
||||||
* disable this behavior.
|
* disable this behavior.
|
||||||
*
|
*
|
||||||
|
* Also by default, windowed mode windows are focused when shown
|
||||||
|
* with @ref glfwShowWindow. Set the
|
||||||
|
* [GLFW_FOCUS_ON_SHOW](@ref GLFW_FOCUS_ON_SHOW_hint) to disable this behavior.
|
||||||
|
*
|
||||||
* __Do not use this function__ to steal focus from other applications unless
|
* __Do not use this function__ to steal focus from other applications unless
|
||||||
* you are certain that is what the user wants. Focus stealing can be
|
* you are certain that is what the user wants. Focus stealing can be
|
||||||
* extremely disruptive.
|
* extremely disruptive.
|
||||||
|
@ -3306,8 +3321,9 @@ GLFWAPI int glfwGetWindowAttrib(GLFWwindow* window, int attrib);
|
||||||
*
|
*
|
||||||
* The supported attributes are [GLFW_DECORATED](@ref GLFW_DECORATED_attrib),
|
* The supported attributes are [GLFW_DECORATED](@ref GLFW_DECORATED_attrib),
|
||||||
* [GLFW_RESIZABLE](@ref GLFW_RESIZABLE_attrib),
|
* [GLFW_RESIZABLE](@ref GLFW_RESIZABLE_attrib),
|
||||||
* [GLFW_FLOATING](@ref GLFW_FLOATING_attrib) and
|
* [GLFW_FLOATING](@ref GLFW_FLOATING_attrib),
|
||||||
* [GLFW_AUTO_ICONIFY](@ref GLFW_AUTO_ICONIFY_attrib).
|
* [GLFW_AUTO_ICONIFY](@ref GLFW_AUTO_ICONIFY_attrib) and
|
||||||
|
* [GLFW_FOCUS_ON_SHOW](@ref GLFW_FOCUS_ON_SHOW_attrib).
|
||||||
*
|
*
|
||||||
* Some of these attributes are ignored for full screen windows. The new
|
* Some of these attributes are ignored for full screen windows. The new
|
||||||
* value will take effect if the window is later made windowed.
|
* value will take effect if the window is later made windowed.
|
||||||
|
|
16
src/external/glfw/src/CMakeLists.txt
vendored
16
src/external/glfw/src/CMakeLists.txt
vendored
|
@ -92,9 +92,7 @@ if (${CMAKE_C_COMPILER_ID} STREQUAL GNU OR ${CMAKE_C_COMPILER_ID} STREQUAL Clang
|
||||||
COMPILE_FLAGS -Wdeclaration-after-statement)
|
COMPILE_FLAGS -Wdeclaration-after-statement)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
add_library(glfw_objlib OBJECT ${glfw_SOURCES} ${glfw_HEADERS})
|
add_library(glfw ${glfw_SOURCES} ${glfw_HEADERS})
|
||||||
add_library(glfw $<TARGET_OBJECTS:glfw_objlib>)
|
|
||||||
|
|
||||||
set_target_properties(glfw PROPERTIES
|
set_target_properties(glfw PROPERTIES
|
||||||
OUTPUT_NAME ${GLFW_LIB_NAME}
|
OUTPUT_NAME ${GLFW_LIB_NAME}
|
||||||
VERSION ${GLFW_VERSION}
|
VERSION ${GLFW_VERSION}
|
||||||
|
@ -102,11 +100,11 @@ set_target_properties(glfw PROPERTIES
|
||||||
POSITION_INDEPENDENT_CODE ON
|
POSITION_INDEPENDENT_CODE ON
|
||||||
FOLDER "GLFW3")
|
FOLDER "GLFW3")
|
||||||
|
|
||||||
target_compile_definitions(glfw_objlib PRIVATE _GLFW_USE_CONFIG_H)
|
target_compile_definitions(glfw PRIVATE _GLFW_USE_CONFIG_H)
|
||||||
target_include_directories(glfw_objlib PUBLIC
|
target_include_directories(glfw PUBLIC
|
||||||
"$<BUILD_INTERFACE:${GLFW_SOURCE_DIR}/include>"
|
"$<BUILD_INTERFACE:${GLFW_SOURCE_DIR}/include>"
|
||||||
"$<INSTALL_INTERFACE:$<INSTALL_PREFIX>/include>")
|
"$<INSTALL_INTERFACE:$<INSTALL_PREFIX>/include>")
|
||||||
target_include_directories(glfw_objlib PRIVATE
|
target_include_directories(glfw PRIVATE
|
||||||
"${GLFW_SOURCE_DIR}/src"
|
"${GLFW_SOURCE_DIR}/src"
|
||||||
"${GLFW_BINARY_DIR}/src"
|
"${GLFW_BINARY_DIR}/src"
|
||||||
${glfw_INCLUDE_DIRS})
|
${glfw_INCLUDE_DIRS})
|
||||||
|
@ -115,11 +113,11 @@ target_include_directories(glfw_objlib PRIVATE
|
||||||
# the inclusion of stddef.h (by glfw3.h), which is itself included before
|
# the inclusion of stddef.h (by glfw3.h), which is itself included before
|
||||||
# win32_platform.h. We define them here until a saner solution can be found
|
# win32_platform.h. We define them here until a saner solution can be found
|
||||||
# NOTE: MinGW-w64 and Visual C++ do /not/ need this hack.
|
# NOTE: MinGW-w64 and Visual C++ do /not/ need this hack.
|
||||||
target_compile_definitions(glfw_objlib PRIVATE
|
target_compile_definitions(glfw PRIVATE
|
||||||
"$<$<BOOL:${MINGW}>:UNICODE;WINVER=0x0501>")
|
"$<$<BOOL:${MINGW}>:UNICODE;WINVER=0x0501>")
|
||||||
|
|
||||||
# Enable a reasonable set of warnings (no, -Wextra is not reasonable)
|
# Enable a reasonable set of warnings (no, -Wextra is not reasonable)
|
||||||
target_compile_options(glfw_objlib PRIVATE
|
target_compile_options(glfw PRIVATE
|
||||||
"$<$<C_COMPILER_ID:Clang>:-Wall>"
|
"$<$<C_COMPILER_ID:Clang>:-Wall>"
|
||||||
"$<$<C_COMPILER_ID:GNU>:-Wall>")
|
"$<$<C_COMPILER_ID:GNU>:-Wall>")
|
||||||
|
|
||||||
|
@ -137,7 +135,7 @@ if (BUILD_SHARED_LIBS)
|
||||||
endif()
|
endif()
|
||||||
elseif (APPLE)
|
elseif (APPLE)
|
||||||
# Add -fno-common to work around a bug in Apple's GCC
|
# Add -fno-common to work around a bug in Apple's GCC
|
||||||
target_compile_options(glfw_objlib PRIVATE "-fno-common")
|
target_compile_options(glfw PRIVATE "-fno-common")
|
||||||
|
|
||||||
set_target_properties(glfw PROPERTIES
|
set_target_properties(glfw PROPERTIES
|
||||||
INSTALL_NAME_DIR "lib${LIB_SUFFIX}")
|
INSTALL_NAME_DIR "lib${LIB_SUFFIX}")
|
||||||
|
|
5
src/external/glfw/src/input.c
vendored
5
src/external/glfw/src/input.c
vendored
|
@ -32,7 +32,6 @@
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <ctype.h>
|
|
||||||
|
|
||||||
// Internal key state used for sticky keys
|
// Internal key state used for sticky keys
|
||||||
#define _GLFW_STICK 3
|
#define _GLFW_STICK 3
|
||||||
|
@ -1086,7 +1085,9 @@ GLFWAPI int glfwUpdateGamepadMappings(const char* string)
|
||||||
|
|
||||||
while (*c)
|
while (*c)
|
||||||
{
|
{
|
||||||
if (isxdigit(*c))
|
if ((*c >= '0' && *c <= '9') ||
|
||||||
|
(*c >= 'a' && *c <= 'f') ||
|
||||||
|
(*c >= 'A' && *c <= 'F'))
|
||||||
{
|
{
|
||||||
char line[1024];
|
char line[1024];
|
||||||
|
|
||||||
|
|
2
src/external/glfw/src/internal.h
vendored
2
src/external/glfw/src/internal.h
vendored
|
@ -267,6 +267,7 @@ struct _GLFWwndconfig
|
||||||
GLFWbool floating;
|
GLFWbool floating;
|
||||||
GLFWbool maximized;
|
GLFWbool maximized;
|
||||||
GLFWbool centerCursor;
|
GLFWbool centerCursor;
|
||||||
|
GLFWbool focusOnShow;
|
||||||
struct {
|
struct {
|
||||||
GLFWbool retina;
|
GLFWbool retina;
|
||||||
char frameName[256];
|
char frameName[256];
|
||||||
|
@ -372,6 +373,7 @@ struct _GLFWwindow
|
||||||
GLFWbool decorated;
|
GLFWbool decorated;
|
||||||
GLFWbool autoIconify;
|
GLFWbool autoIconify;
|
||||||
GLFWbool floating;
|
GLFWbool floating;
|
||||||
|
GLFWbool focusOnShow;
|
||||||
GLFWbool shouldClose;
|
GLFWbool shouldClose;
|
||||||
void* userPointer;
|
void* userPointer;
|
||||||
GLFWvidmode videoMode;
|
GLFWvidmode videoMode;
|
||||||
|
|
4
src/external/glfw/src/win32_platform.h
vendored
4
src/external/glfw/src/win32_platform.h
vendored
|
@ -242,7 +242,9 @@ typedef VkBool32 (APIENTRY *PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR)(
|
||||||
#include "egl_context.h"
|
#include "egl_context.h"
|
||||||
#include "osmesa_context.h"
|
#include "osmesa_context.h"
|
||||||
|
|
||||||
#define _GLFW_WNDCLASSNAME L"GLFW30"
|
#if !defined(_GLFW_WNDCLASSNAME)
|
||||||
|
#define _GLFW_WNDCLASSNAME L"GLFW30"
|
||||||
|
#endif
|
||||||
|
|
||||||
#define _glfw_dlopen(name) LoadLibraryA(name)
|
#define _glfw_dlopen(name) LoadLibraryA(name)
|
||||||
#define _glfw_dlclose(handle) FreeLibrary((HMODULE) handle)
|
#define _glfw_dlclose(handle) FreeLibrary((HMODULE) handle)
|
||||||
|
|
13
src/external/glfw/src/window.c
vendored
13
src/external/glfw/src/window.c
vendored
|
@ -201,6 +201,7 @@ GLFWAPI GLFWwindow* glfwCreateWindow(int width, int height,
|
||||||
window->decorated = wndconfig.decorated;
|
window->decorated = wndconfig.decorated;
|
||||||
window->autoIconify = wndconfig.autoIconify;
|
window->autoIconify = wndconfig.autoIconify;
|
||||||
window->floating = wndconfig.floating;
|
window->floating = wndconfig.floating;
|
||||||
|
window->focusOnShow = wndconfig.focusOnShow;
|
||||||
window->cursorMode = GLFW_CURSOR_NORMAL;
|
window->cursorMode = GLFW_CURSOR_NORMAL;
|
||||||
|
|
||||||
window->minwidth = GLFW_DONT_CARE;
|
window->minwidth = GLFW_DONT_CARE;
|
||||||
|
@ -267,6 +268,7 @@ void glfwDefaultWindowHints(void)
|
||||||
_glfw.hints.window.focused = GLFW_TRUE;
|
_glfw.hints.window.focused = GLFW_TRUE;
|
||||||
_glfw.hints.window.autoIconify = GLFW_TRUE;
|
_glfw.hints.window.autoIconify = GLFW_TRUE;
|
||||||
_glfw.hints.window.centerCursor = GLFW_TRUE;
|
_glfw.hints.window.centerCursor = GLFW_TRUE;
|
||||||
|
_glfw.hints.window.focusOnShow = GLFW_TRUE;
|
||||||
|
|
||||||
// The default is 24 bits of color, 24 bits of depth and 8 bits of stencil,
|
// The default is 24 bits of color, 24 bits of depth and 8 bits of stencil,
|
||||||
// double buffered
|
// double buffered
|
||||||
|
@ -370,6 +372,9 @@ GLFWAPI void glfwWindowHint(int hint, int value)
|
||||||
case GLFW_CENTER_CURSOR:
|
case GLFW_CENTER_CURSOR:
|
||||||
_glfw.hints.window.centerCursor = value ? GLFW_TRUE : GLFW_FALSE;
|
_glfw.hints.window.centerCursor = value ? GLFW_TRUE : GLFW_FALSE;
|
||||||
return;
|
return;
|
||||||
|
case GLFW_FOCUS_ON_SHOW:
|
||||||
|
_glfw.hints.window.focusOnShow = value ? GLFW_TRUE : GLFW_FALSE;
|
||||||
|
return;
|
||||||
case GLFW_CLIENT_API:
|
case GLFW_CLIENT_API:
|
||||||
_glfw.hints.context.client = value;
|
_glfw.hints.context.client = value;
|
||||||
return;
|
return;
|
||||||
|
@ -755,7 +760,9 @@ GLFWAPI void glfwShowWindow(GLFWwindow* handle)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
_glfwPlatformShowWindow(window);
|
_glfwPlatformShowWindow(window);
|
||||||
_glfwPlatformFocusWindow(window);
|
|
||||||
|
if (window->focusOnShow)
|
||||||
|
_glfwPlatformFocusWindow(window);
|
||||||
}
|
}
|
||||||
|
|
||||||
GLFWAPI void glfwRequestWindowAttention(GLFWwindow* handle)
|
GLFWAPI void glfwRequestWindowAttention(GLFWwindow* handle)
|
||||||
|
@ -810,6 +817,8 @@ GLFWAPI int glfwGetWindowAttrib(GLFWwindow* handle, int attrib)
|
||||||
return _glfwPlatformWindowMaximized(window);
|
return _glfwPlatformWindowMaximized(window);
|
||||||
case GLFW_HOVERED:
|
case GLFW_HOVERED:
|
||||||
return _glfwPlatformWindowHovered(window);
|
return _glfwPlatformWindowHovered(window);
|
||||||
|
case GLFW_FOCUS_ON_SHOW:
|
||||||
|
return window->focusOnShow;
|
||||||
case GLFW_TRANSPARENT_FRAMEBUFFER:
|
case GLFW_TRANSPARENT_FRAMEBUFFER:
|
||||||
return _glfwPlatformFramebufferTransparent(window);
|
return _glfwPlatformFramebufferTransparent(window);
|
||||||
case GLFW_RESIZABLE:
|
case GLFW_RESIZABLE:
|
||||||
|
@ -886,6 +895,8 @@ GLFWAPI void glfwSetWindowAttrib(GLFWwindow* handle, int attrib, int value)
|
||||||
if (!window->monitor)
|
if (!window->monitor)
|
||||||
_glfwPlatformSetWindowFloating(window, value);
|
_glfwPlatformSetWindowFloating(window, value);
|
||||||
}
|
}
|
||||||
|
else if (attrib == GLFW_FOCUS_ON_SHOW)
|
||||||
|
window->focusOnShow = value;
|
||||||
else
|
else
|
||||||
_glfwInputError(GLFW_INVALID_ENUM, "Invalid window attribute 0x%08X", attrib);
|
_glfwInputError(GLFW_INVALID_ENUM, "Invalid window attribute 0x%08X", attrib);
|
||||||
}
|
}
|
||||||
|
|
5
src/external/glfw/src/x11_window.c
vendored
5
src/external/glfw/src/x11_window.c
vendored
|
@ -2672,8 +2672,9 @@ void _glfwPlatformPollEvents(void)
|
||||||
#if defined(__linux__)
|
#if defined(__linux__)
|
||||||
_glfwDetectJoystickConnectionLinux();
|
_glfwDetectJoystickConnectionLinux();
|
||||||
#endif
|
#endif
|
||||||
int count = XPending(_glfw.x11.display);
|
XPending(_glfw.x11.display);
|
||||||
while (count--)
|
|
||||||
|
while (XQLength(_glfw.x11.display))
|
||||||
{
|
{
|
||||||
XEvent event;
|
XEvent event;
|
||||||
XNextEvent(_glfw.x11.display, &event);
|
XNextEvent(_glfw.x11.display, &event);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue