Commit Graph

2973 Commits

Author SHA1 Message Date
Camilla Löwy
3fd4e79adb WGL: Fix misplaced block comment 2019-05-24 14:43:49 +02:00
Camilla Löwy
56aad76b16 Add C dialect reminders to each source file
Files built for Win32 must use C89 style declarations for compatibility
with VS 2010 and 2012, which are still supported by GLFW.
2019-05-24 14:43:49 +02:00
Camilla Löwy
0b01d850ed NSGL: Remove enforcement of forward-compatible flag
This sharp corner should have been addressed a long time ago.
2019-05-19 21:10:29 +02:00
Camilla Löwy
a255e7ace6 Move to the modern CMake project version option
This replaces the manual ad-hoc version variables we have used since
CMake 2.x (and GLFW 2.x lite).
2019-05-17 16:12:52 +02:00
Konstantin Podsvirov
15af302f77 Fix use of absolute path in INSTALL_INTERFACE
Closes #1470.
2019-05-17 16:12:52 +02:00
Emmanuel Gil Peyrot
599fb3de34 Wayland: Remove wl_shell support
This protocol is part of the core Wayland, but it is pretty badly
designed and is missing quite a few features, and is in the process of
being phased out in compositors.  Its support in GLFW requires
duplicating pretty much every single window management codepath.

This bumps the required compositor versions to the ones which have
implemented xdg-shell, approximately two years ago, which seems sensible
to me.
2019-04-20 10:05:15 +02:00
Camilla Löwy
a337c56848 Start 3.4 2019-04-16 23:08:39 +02:00
Camilla Löwy
ab118b2529 Fix copyright years (somewhat) 2019-04-15 20:50:00 +02:00
Camilla Löwy
1f91697cd3 Win32: Fix VS static analysis warnings 2019-04-15 15:37:15 +02:00
Camilla Löwy
334a485968 Win32: Fix potential buffer overrun
Found with VS static analysis.
2019-04-15 15:35:19 +02:00
Camilla Löwy
0e74265426 Cocoa: Fix cursor hover test 2019-04-15 14:52:17 +02:00
Camilla Löwy
3c3981a4f0 Cocoa: Fix coordinate transformations
Window relative mouse locations provided via NSWindow and NSEvent are
based at 0,1 while screen relative locations use 0,0.  Incorrect
handling of this had crept into other coordinate transformations.  Note
that most of these errors canceled each other out, so the reported
positions of windows, monitors and work areas are unaffected.  This
corrects the cursor position for glfwGetCursorPos and glfwSetCursorPos.

Fixes #1461.
2019-04-15 14:52:17 +02:00
Camilla Löwy
28f118f4de NSGL: Disable swap interval
Swap interval now uses CVDisplayLink.
2019-04-15 14:36:12 +02:00
Camilla Löwy
93962ec168 Win32: Fix VS 2010 build error 2019-04-15 02:46:07 +02:00
Camilla Löwy
3461d1c2a5 Fix missing context APIs in version strings 2019-04-08 20:51:34 +02:00
Camilla Löwy
c585bf010b Fix file flags 2019-04-07 20:44:21 +02:00
Cliff Smolinsky
87458617e0 Win32: Bypass composition check on Windows 8+
DWM composition is always enabled on Windows 8 and later, so there's no
need to call DwmIsCompositionEnabled on those platforms.

Fixes #1452.
Closes #1453.
2019-04-01 18:11:55 +02:00
Camilla Löwy
297999c9e1 Add missing SDL2 attribution 2019-04-01 17:42:27 +02:00
Camilla Löwy
5292914ce1 Win32: Fix message pump filtering during init
Fixes #886.
2019-03-28 23:50:13 +01:00
Camilla Löwy
02874d9c14 Align joystick axis to gamepad button behavior
This is an SDL2 compatibility fix.
2019-03-28 23:01:27 +01:00
Camilla Löwy
0d355379e0 Cocoa: Support some sim page joystick elements
This is an SDL2 compatibility fix.
2019-03-28 22:58:47 +01:00
Camilla Löwy
c32dc3a085 Fix half-axis to gamepad button value mapping
Negative half-axes were not negated when mapped onto gamepad buttons.
2019-03-27 20:34:54 +01:00
Camilla Löwy
cad22cb2f6 Cocoa: Fix missing check for selector
Fixes #1457.
2019-03-27 20:04:43 +01:00
Camilla Löwy
1fca33b3c1 Cocoa: Remove checks for pre-10.8 SDK
OS X 10.8 is now the minimum required version but these checks were not
removed when that change was made.
2019-03-27 20:03:05 +01:00
Camilla Löwy
9420e6f0d0 Fix invalid ranges for gamepad axis sources
Buttons and hat bits were mapped to [0,1] instead of [-1,1].

Fixes #1293.
2019-03-27 19:35:19 +01:00
Camilla Löwy
980fc9b52f Cocoa: Apply retina window hint to Metal layer
Related to #1340.
2019-03-27 17:14:30 +01:00
Camilla Löwy
e108c0de0d Cocoa: Explicitly set layer on surface creation
Implicitly setting the layer doesn't work when there is already a layer.
Our view is now layer-hosting for Vulkan.

Fixes #1340.
2019-03-27 16:28:16 +01:00
Camilla Löwy
056c5d3f90 Cleanup 2019-03-27 01:26:39 +01:00
Camilla Löwy
a4fbc6fe91 NSGL: Disable API deprecation warnings 2019-03-26 18:30:17 +01:00
Camilla Löwy
8d7e5cdb49 NSGL: Update current display for display link
This solution of one display link per window is far from ideal but is
still better than no solution.

As a side-effect this fixes swap interval breaking being ignored for
occluded windows on earlier versions of macOS.

Fixes #680.
Fixes #1337.
Related to #1417.
Fixes #1435.
2019-03-05 20:22:00 +01:00
Camilla Löwy
f8bcc7e65c NSGL: Fix leak of condition object
Related to #1417.
2019-03-05 20:22:00 +01:00
Camilla Löwy
ba761ab06e NSGL: Fix display link leaking and left running
Related to #1417.
2019-03-05 20:22:00 +01:00
Camilla Löwy
d0e8d06d95 Cleanup
Related to #1417.
2019-03-05 20:22:00 +01:00
Camilla Löwy
3615d437a7 Formatting
Related to #1417.
2019-03-05 20:22:00 +01:00
amarcu5
82ca58da04 NSGL: Implement swap interval with CVDisplayLink
This fixes OpenGL swap interval (vsync) on macOS 10.14 Mojave by using
CVDisplayLink to synchronise to the monitor refresh rate rather than
setting NSOpenGLContextParameterSwapInterval.

Solution based on advice provided by @rcgordon.

Closes #1417.
2019-03-05 20:21:56 +01:00
Camilla Löwy
4e3204d86d Cocoa: Replace global autorelease pool with blocks
This is another small step towards having GLFW play nice with other
toolkits sharing the same process, including AppKit.

Any macOS platform function that touches Cocoa must now wrap itself in
an autoreleasepool block.

Since GLFW no longer provides an autoreleasepool outside of its
functions, THIS MAY BREAK EXISTING CODE MIXING GLFW AND COCOA.  Sorry!
Please add your own autoreleasepool blocks as needed.

Fixes #1107.
Closes #1114.
2019-03-05 20:11:20 +01:00
Camilla Löwy
9883cb64f0 Cocoa: Disable shadow for transparent framebuffer 2019-03-05 20:03:29 +01:00
Camilla Löwy
4b20fb705b Cocoa: Fix work area using NS screen coordinates
Related to #1322.
2019-03-05 17:41:32 +01:00
Camilla Löwy
3a2a97f15d X11: Fix implementation of work area retrieval
This intersects the global work area from _NET_WORKAREA with the monitor
viewport.  The monitor viewport falls back to the core display
dimensions where working RandR is missing.  The _NET_WORKAREA query is
now checked for success.  The _NET_WORKAREA extent array is now indexed
by _NET_CURRENT_DESKTOP.  The _NET_WORKAREA atom is now checked for
availability.

Related to #1322.
2019-03-05 16:58:45 +01:00
Camilla Löwy
4f14c1e776 X11: Fix copypaste errors
Related to #1322.
2019-03-05 16:58:45 +01:00
Camilla Löwy
d82e7b5cb1 Win32: Use cached monitor handle for work area
This facility was added after the original PR was made.

Related to #1322.
2019-03-05 16:58:45 +01:00
Camilla Löwy
0118743333 Formatting
Related to #1322.
2019-03-05 16:58:45 +01:00
Camilla Löwy
a726942bfe Cocoa: Unify NSScreen cached lookup for monitors
Related to #1322.
2019-03-05 16:58:45 +01:00
Doug Binks
68fd4e8bb3 Cocoa: Fix work area retrieval on missing screen
Closes #1322.
2019-03-05 16:58:45 +01:00
Doug Binks
ba4e78e57f Wayland: Return whole output area as work area
Related to #1322.
2019-03-05 16:10:59 +01:00
Doug Binks
222ac78a44 Cocoa: Add work area NULL checks and fix size
Related to #1322.
2019-03-05 16:10:59 +01:00
Doug Binks
bea4818030 X11: Add NULL checks in work area retrieval
Related to #1322.
2019-03-05 16:10:59 +01:00
Doug Binks
e6d22346f9 Fix copypaste error in glfwGetMonitorWorkarea
Related to #1322.
2019-03-05 16:10:59 +01:00
Doug Binks
f7733c7b4f Win32: Add missing out parameter NULL checks
This fixes _glfwPlatformGetMonitorWorkarea not checking if its out
parameters were NULL.

Related to #1322.
2019-03-05 16:10:59 +01:00
Doug Binks
5c752355cb Win32: Fix and simplify work area retrieval
Related to #1322.
2019-03-05 16:10:59 +01:00
Felipe Ferreira da Silva
be295ccbea Add glfwGetMonitorWorkarea
This function retrieves the work area rectangle of the specified
monitor.

Related to #920.
Closes #989.
2019-03-05 16:10:59 +01:00
Camilla Löwy
c20754c4a6 Fix Coverity Scan false positive 2019-03-04 18:52:56 +01:00
Camilla Löwy
621ece63c8 Round refresh rate instead of truncating
Fixes #1441.
2019-03-04 17:31:14 +01:00
Camilla Löwy
2fbb560eb7 Cocoa: Fix window creation blocking after re-init
Fixes #1439.
2019-02-25 02:41:05 +01:00
Camilla Löwy
7c3aaf8065 Win32: Fix OCR_HAND macro missing on MinGW
Fixes #1438.
2019-02-24 04:18:11 +01:00
Camilla Löwy
44af6bb936 Wayland: Implement raw mouse motion control
Related to #1400.
Related to #1401.
2019-02-22 14:52:02 +01:00
Camilla Löwy
1155c83013 Rename raw input to raw mouse motion, cleanup
This renames 'raw input' to 'raw mouse motion' as there are other kinds
of raw input.  The update path is restructured to avoid reinitializing
all of disabled cursor mode.  Modification of shared state is moved out
into shared code.  Raw mouse motion is disabled by default for
compatibility.

Related to #1401.
2019-02-22 13:04:11 +01:00
Nathan Poirier
9e29f556fd Add GLFW_RAW_INPUT and glfwRawInputSupported
This adds runtime per-window control of whether accelerated or raw mouse
motion is provided when the cursor is disabled.

Fixes #1400.
Closes #1401.
2019-02-22 13:04:11 +01:00
Emmanuel Gil Peyrot
5f9cbd0ebc Wayland: keyboard repeat rate is given in Hz
It was currently interpreted as ms, which is obviously wrong.

Thanks to https://github.com/Smithay/client-toolkit/pull/62 for making
me notice this issue.
2019-02-20 15:56:04 +01:00
Camilla Löwy
ec3784f3d7 WGL: Unify query error handling 2019-02-17 18:34:56 +01:00
Camilla Löwy
782f7fe0c7 WGL: Fix leak on format attrib query failure
This was found by Coverity Scan.
2019-02-17 18:34:56 +01:00
Emmanuel Gil Peyrot
45bd991ea9 Wayland: Fix auto-iconify on kwin_wayland
We now keep track of the fullscreen and activated state and only iconify
if we were previously fullscreen and now we are either not fullscreen or
not activated anymore.

This is the proper way to do it, compared to the previous hack where we
didn’t iconify only if it was the first configure event received.
2019-02-15 18:12:09 +01:00
Emmanuel Gil Peyrot
edf0a07174 Wayland: Only auto-iconify fullscreen windows
Thanks to kwin for exposing a bug here!
2019-02-15 17:03:37 +01:00
Greg V
36ce73bbfd Wayland: use SHM_ANON on FreeBSD
This works like memfd on Linux.
2019-02-15 15:45:25 +01:00
Camilla Löwy
1d95acdf56 Cocoa: Fix detection of Clang 2019-02-14 00:19:45 +01:00
schraf
2e70950c0f Fix quoting of CMAKE_C_COMPILER_ID
I was getting an error in this cmake file when using 3.10.2 on linux.
Here was the error message I was getting:

[cmake] CMake Error at external/glfw/src/CMakeLists.txt:82 (if):
[cmake]   if given arguments:
[cmake]
[cmake]     "STREQUAL" "GNU" "OR" "STREQUAL" "Clang"
[cmake]
[cmake]   Unknown arguments specified

Adding the quotes around the cmake variables seems to do the trick. That
was also done with the STREQUAL condition earlier on line 66.

Closes #1411.
2019-02-14 00:19:45 +01:00
Camilla Löwy
2a27eb95e4 X11: Fix system cursor used for GLFW_HAND_CURSOR
Fixes #1432.
2019-02-14 00:04:39 +01:00
Camilla Löwy
e2fa82ffbb Cleanup
Related to #1431.
2019-02-13 23:21:05 +01:00
Max Risuhin
cf79f06257 Win32: Fix standard cursors not being DPI aware
Closes #1431.
2019-02-11 19:19:06 +01:00
Camilla Löwy
90e22947c6 Cleanup 2019-01-31 01:58:04 +01:00
Camilla Löwy
463ef7eb71 Cocoa: Fix handling of analog joystick buttons
The reported state was not clamped to [0,1], i.e. GLFW_RELEASE and
GLFW_PRESS.

Fixes #1385.
2019-01-31 01:54:49 +01:00
Camilla Löwy
51ca41dd9f Cocoa: Add missing IOHID page and usages
Related to #1385.
2019-01-31 01:53:55 +01:00
Camilla Löwy
530b37f4db Cocoa: Disable automatic tabbing for GLFW windows
Related to #1250.
2019-01-31 00:20:24 +01:00
Camilla Löwy
78e6a0063d X11: Fix EWMH state update for hidden windows
The EWMH window state code assumed the window was mapped.

Fixes #1358.
2019-01-31 00:02:16 +01:00
Camilla Löwy
b41cd34143 Cleanup 2019-01-25 12:46:46 +01:00
Camilla Löwy
d5ab3e919a Cleanup
Replace client area with content area.
2019-01-25 12:46:46 +01:00
iamCaveLamp
a46104ee69 Removed duplicates of centerCursor function 2019-01-22 20:17:35 +01:00
Camilla Löwy
3d748cf530 Cleanup
Related to #1381.
2019-01-17 00:12:59 +01:00
Doug Binks
babafc13db WGL: Add array-based call to wglGetPixelFormatAttribivARB
This improves performance of pixel format enumeration and helps the very
poor performance reported on a small number of machines.

Closes #1381.
2019-01-17 00:12:59 +01:00
Camilla Löwy
2053f3ed22 Cleanup 2019-01-17 00:11:17 +01:00
Camilla Löwy
55b1a16f90 Remove window requirement for all event functions
This lets an application wait for non-window events without needing to
create a window.

Fixes #1317.
2019-01-15 19:28:17 +01:00
Camilla Löwy
ea7eb2ddab Cocoa: Move app delegate and menu creation to init
The application delegate needs to be set at init to receive monitor
events before window creation.  Menu creation is moved to
applicationWillFinishLaunching: to play nicer with other toolkits in the
same process.

Related to #1317.
2019-01-11 01:05:00 +01:00
Camilla Löwy
9a9568212c Cocoa: Move slightly towards modern Objective-C 2019-01-10 23:20:56 +01:00
Camilla Löwy
72c3908e14 X11: Fix glfwSetWindowMonitor not flushing buffer 2019-01-02 21:55:30 +01:00
Camilla Löwy
cde0aaaab1 X11: Fix glfwSetWindowMonitor not updating hints
This makes glfwSetWindowMonitor update the WM_NORMAL_HINTS when resizing
non-user-resizable windowed mode windows.
2019-01-02 21:55:30 +01:00
Camilla Löwy
1635fe2826 Cleanup
Put the non-client painting related message cases with the client ones
so that they can be happy together.

Related to #1383.
2018-12-26 15:22:20 +01:00
Aaron Loucks
9ac9d7b85a Win32: Disable non-client painting if undecorated
Fixes an issue where a small title bar and window caption
buttons were being painted after restoring a minimized
undecorated window.

Closes #1383.
2018-12-26 15:00:39 +01:00
Vallentin
e29882523e Fix typos
Closes #1402.
2018-12-26 15:00:39 +01:00
Camilla Löwy
3531c320af Fix glfwSetGamma generating ramps of invalid sizes
This makes glfwSetGamma generate a gamma ramp of the same size as the
monitor's current ramp, which will avoid failure on non-256 entry
monitors on X11 and avoid ramp interpolation on macOS.

Closes #1387.
Fixes #1388.
2018-12-26 15:00:39 +01:00
Camilla Löwy
52c7a4fc7f Fix glfwGetGammaRamp error handling
This makes glfwGetGammaRamp return NULL on platform error as specified.

Related to #1387.
2018-12-26 15:00:39 +01:00
Camilla Löwy
3201eedc34 Cleanup
We have a usable fminf now.
2018-12-26 14:59:51 +01:00
Alexander Monakov
064dfaa549 Wayland: Remove gamma-related TODOs
Commit 9c513346ad ("Gamma will never be
supported on Wayland") made it clear that it cannot be implemented, so
this removes the TODO markers and rewords the error messages.

Related to #1387.
2018-12-26 14:50:22 +01:00
Camilla Löwy
751c6f9a27 Fix assertions for glfwSetGamma value
The NaN assert was implicit in the other ones.  The lower bound assert
incorrectly allowed a value of zero.

Related to #1387.
2018-12-26 14:48:40 +01:00
Camilla Löwy
8c611fd5d0 Win32: Fix build on older versions of Visual C++
Older versions did not provide fmin or fmax.  This adds internal
versions of fminf and fmaxf that should not be confused with
standards compliant implementations.
2018-12-26 14:45:40 +01:00
Camilla Löwy
a59315ed6a Win32: Fix joystick element info memory leak
The array was freed on failure but not on success.

Fixes #1396.
2018-12-26 14:43:33 +01:00
Keith Bauer
c4903d9267 Cocoa: Fix half of all key events for Caps Lock
This adds reporting of those Caps Lock key events that cause the lock
state to change.

The full fix involving IOHID is being worked on in #1368.

Related to #1368.
Closes #1373.
2018-12-25 21:39:48 +01:00
Andrew Belt
cc621765e5 Cocoa: Accept focusing mouse click as input
This makes the behavior on macOS consistent with other platforms.

Fixes #1209.
Closes #1386.
2018-12-25 20:50:50 +01:00
Camilla Löwy
17a15a20f2 Cocoa: Move to modern Objective-C literals 2018-12-25 18:52:56 +01:00
Camilla Löwy
c3ed70a4b7 Cocoa: Add NSApplicationDelegate protocol 2018-12-25 18:35:09 +01:00
Camilla Löwy
88c5edb409 Cocoa: Remove subclassing of NSApplication
This removes the GLFW NSApplication subclass as a step towards better
coexistence with other libraries that touch Cocoa.

This moves application object creation to platform init to allow event
processing before window creation.

Related to #1317.
2018-12-25 18:13:59 +01:00
Rolf Eike Beer
f9923e9095 Use GNUInstallDirs for install destinations
This has the advantage that the user may override e.g. the include
location, and the correct libdir (lib, lib64, lib/something) is
automatically determined.

Closes #1367.
2018-12-03 19:28:31 +01:00
Camilla Löwy
f680001b95 Cocoa: Remove superfluous compatibility macro 2018-11-27 21:44:20 +01:00
Camilla Löwy
18145a7f3d Cocoa: Use NSURLs for drag and drop
Fixes #1377.
2018-11-27 21:44:20 +01:00
Dominique Martinet
62993d9391 x11 window: update cursor position on enter event
click events would have an incorrect position after changing workspace,
if the mouse didn't move in between.
(Another example where this matters is a new window, if it appears under
the cursor, clicking would lead the application to think the user clicked
at 0,0)
2018-11-03 14:17:39 +01:00
MrVallentin
85fd5aa6c4 Use HTTPS when possible 2018-11-03 11:57:47 +01:00
meditator
d9466050d9 X11: Fix missing check for NET_WM_STATE
Closes #1356.
2018-11-01 17:26:51 +01:00
Camilla Löwy
5595fa3ae6 Cocoa: Fix OpenGL rendering not being displayed
Fix based on information provided by @rcgordon.

Fixes #1334.
Closes #1346.
2018-10-26 16:24:16 +02:00
Camilla Löwy
6dfc12a439 Cocoa: Fix some macOS 10.14 deprecation warnings 2018-10-26 15:19:48 +02:00
Camilla Löwy
031a8f9583 Cocoa: Cleanup 2018-10-24 18:01:12 +02:00
Emmanuel Gil Peyrot
c08abffc50 Wayland: Implement clipboard copy 2018-10-24 14:03:08 +02:00
Emmanuel Gil Peyrot
8b54e28c4e Wayland: Implement clipboard paste 2018-10-24 14:03:08 +02:00
Emmanuel Gil Peyrot
3c4b9a7eef Wayland: Add boilerplate for clipboard handling 2018-10-24 14:03:08 +02:00
Ricardo Vieira
92b3fd02e5 wayland: save serial from all input sources 2018-10-24 14:03:08 +02:00
Camilla Löwy
0b3677c2b1 X11: Clarify comment 2018-10-22 00:51:08 +02:00
Camilla Löwy
e779280802 Win32: Fix invalid calls to GetDpiForWindow
The check for Windows 10 Anniversary Edition or later was not always
performed before calling GetDpiForWindow.

Fixes #1335.
Closes #1363.
2018-10-22 00:51:08 +02:00
Camilla Löwy
1725d1c4f5 Win32: Fix build on early Windows 10 SDKs
Related to #1320.
2018-10-22 00:51:08 +02:00
Camilla Löwy
6bd264244a WGL: Cleanup 2018-10-22 00:51:08 +02:00
emersion
5afcd0981b wayland: add support for XCURSOR_THEME and XCURSOR_SIZE
These can be set by the compositor or the user to configure the
xcursor theme and size.
2018-10-11 00:58:23 +02:00
Emmanuel Gil Peyrot
cc805c0963 Mir: Remove this experimental backend
As of the release of Mir 1.0, libmirclient has been deprecated[1] and
its developers recommend clients using it to switch to Wayland.  This
patch removes support for libmirclient and instruct users to use the
experimental Wayland backend instead.

[1] https://discourse.ubuntu.com/t/mir-news-28th-september-2018/8184
2018-10-05 11:59:26 +02:00
Emmanuel Gil Peyrot
e75af5f531 Linux: Include the null byte in joystick path
This potential bug was found thanks to gcc 8’s -Wstringop-truncation
warning.
2018-10-03 22:03:20 +02:00
Emmanuel Gil Peyrot
dcd2a19d90 Wayland: Add support for xdg-decoration
This allows compositors which prefer to draw the decorations around
clients to do so, rather than letting GLFW draw its own decorations.
The appearance is thus entirely subject to the compositor used, but
should generally be better than the current solid colour decorations we
have, which we continue to use when the compositor doesn’t support this
protocol or tells us to draw the decorations ourselves.

This new protocol has been tested against wlroots’s rootston compositor.

Fixes #1257.
2018-10-01 16:37:24 +02:00
Emmanuel Gil Peyrot
3e884aea46 Wayland: Use memfd_create() and seals if available
This allows the compositor to avoid having to setup and teardown a
SIGBUS signal handler whenever it needs to read from this surface, as it
knows we won’t be able to shrink the file and so doesn’t have to protect
against that.

This codepath will only be used on Linux ≥ 3.17 with glibc ≥ 2.27, and
possibly other kernels and libc.  The former code will continue to be
used as a fallback, either if memfd_create() fails or if it isn’t
available.
2018-10-01 13:13:19 +02:00
Emmanuel Gil Peyrot
ab16fcc8db Wayland: Check for buffer creation failure
This prevents unusable decoration objects from being created, and
invalid cursors from being returned to the user.
2018-09-29 22:59:02 +02:00
Emmanuel Gil Peyrot
754b7feaa1 Wayland: Rename handlers for more unicity 2018-09-29 21:01:03 +02:00
Emmanuel Gil Peyrot
4d3f0fb5df Wayland: Split long lines for function declaration 2018-09-29 18:11:13 +02:00
Emmanuel Gil Peyrot
15cad02235 Wayland: Use HiDPI cursors for standard cursors 2018-09-11 14:28:44 +02:00
Emmanuel Gil Peyrot
e0b83bbe8d Wayland: Use HiDPI cursors on decorations 2018-09-11 14:28:44 +02:00
Emmanuel Gil Peyrot
321062833a Wayland: Load a bigger cursor theme for HiDPI 2018-09-11 14:28:44 +02:00
Emmanuel Gil Peyrot
5ea6e6cda2 Wayland: Add support for animated standard cursors 2018-09-09 13:12:20 +02:00
Emmanuel Gil Peyrot
dede6d6886 Wayland: Add a timerfd for animated cursors 2018-09-09 13:12:20 +02:00
Emmanuel Gil Peyrot
685f2a5f91 Wayland: Close forgotten timerfd on terminate. 2018-09-09 13:12:20 +02:00
Camilla Löwy
eeac43c3f7 Win32: Fix symbol definition detection
Related to #1320.
2018-09-05 22:45:06 +02:00
Camilla Löwy
089ea9af22 Add GLFW_SCALE_TO_MONITOR
This adds the GLFW_SCALE_TO_MONITOR window hint for automatically
resizing the content area of a window to the requested size times the
monitor content scale each time it is placed on a new monitor.  This
only applies to windowed mode windows and includes the initial placement
at window creation.

This hint only has an effect on platforms where screen coordinates and
pixels always map 1:1 such as Windows and X11.  Platforms like macOS
instead change the resolution of the framebuffer independently of the
window size.

Related to #676.
Related to #1115.
2018-09-03 23:12:39 +02:00
Camilla Löwy
5294439595 Win32: Add support for Per-Monitor V2 awareness
This adds basic support for the Per-Monitor V2 level of DPI awareness
in Windows 10, which allows for automatic DPI scaling of window
decorations.

This commit does not include resizing the window content area to match
the new window content scale.

Related to #1115.
Fixes #1294.
2018-09-03 23:12:39 +02:00
Doug Binks
ed12a54afd Win32: Fix keypad equals key reported as unknown
Fixes #1315.
Closes #1316.
2018-08-30 13:47:54 +02:00
Camilla Löwy
338afe3c6d X11: Clean up cursor shape translation 2018-08-30 13:47:54 +02:00
Camilla Löwy
b1b21292b9 X11: Clean up context lookup 2018-08-30 13:47:54 +02:00
Camilla Löwy
a67d8afbd4 Win32: Clean up DWM detection 2018-08-24 15:06:39 +02:00
Camilla Löwy
d4cbe451fc Win32: Clean up cursor shape translation 2018-08-24 15:06:39 +02:00
Camilla Löwy
096ace5a68 Clarify comment 2018-08-24 15:06:39 +02:00
Camilla Löwy
f82a8f09eb Win32: Disable mouse trails for full screen
When mouse trails are enabled, the cursor becomes invisible when the
OpenGL ICD detects a full screen window and switches to page flipping.

Mouse trails are now disabled as long as any full screen windows are
visible.

Fixes #1263.
2018-08-02 00:01:26 +02:00
Doug Binks
0be4f3f75a Add GLFW_FOCUS_ON_SHOW window hint and attribute
This adds a window hint and attribute for controlling whether
glfwShowWindow gives the specified window input focus in addition to
making it visible.

Fixes #1189.
Closes #1275.
2018-05-29 15:51:36 +02:00
Camilla Löwy
fdfb5ab466 Fix tpyo 2018-05-18 15:22:48 +02:00
Camilla Löwy
a9a5a0b016 Replace use of ctype function that caused warning 2018-05-18 11:30:14 +02:00
Camilla Löwy
8d1a64c831 X11: Make event polling more robust
This makes X11 event polling less likely to block if the application
uses the display via native access.

Fixes #1225.
2018-05-17 14:41:16 +02:00
Camilla Löwy
15d89bdff6 Win32: Allow compile-time override of class name
To use, define _GLFW_WNDCLASSNAME to any sane wide string.

Fixes #1120.
2018-05-16 17:15:02 +02:00
Camilla Löwy
7ef34eb06d X11: Add support for Cygwin/X sonames 2018-04-25 21:50:51 +02:00
Camilla Löwy
c443b02472 Cleanup 2018-04-25 21:50:51 +02:00
Andreas Noever
fcc244ea6d Win32: Fix windows build with WINVER >= Vista
In 32e78aeb2 the definition of DWM_BLURBEHIND in win32_platform.h was
moved behind a WINVER < 0x0600 preprocessor check (< Vista). This broke
the build for WINVER >= 0x0600 since DWM_BLURBEHIND is not defined.

Starting with Vista DWM_BLURBEHIND is available in Dwmapi.h.
So we can just include the header directly on Vista and above.

Closes #1253.
2018-04-25 21:50:51 +02:00
Camilla Löwy
8b9221d845 X11: Fix missing dlclose calls for X extensions 2018-04-25 21:49:41 +02:00
Camilla Löwy
50eccd298a Fix cursor mode application for unfocused windows
Fixes #1239.
Fixes #1247.
2018-04-25 21:49:26 +02:00
Camilla Löwy
819a2205e5 Cleanup 2018-04-12 03:27:06 +02:00
Greg V
0a3c4f5d80 Add support for Wayland on FreeBSD and other OSes 2018-03-27 22:03:37 +02:00
Camilla Löwy
2884915000 Cocoa: Set CAMetalLayer contents scale from window
Fixes #1229.
2018-03-20 19:58:39 +01:00
Camilla Löwy
5f8108e8a9 Cocoa: Fix SDK version numbers
The pattern for version 10.10 and later was incorrectly applied to
version number for 10.8.

Fixes #1232.
2018-03-20 01:03:37 +01:00
Camilla Löwy
94ffc12b38 Fix value for VK_MVK_macos_surface constant
Value changed between MoltenVK 0.15 and 0.16 and GLFW was never updated.

Related to #870.
2018-03-03 22:07:54 +01:00
Camilla Löwy
ab3bfb4205 Cocoa: Update MoltenVK support for LunarG SDK
GLFW now checks for the libvulkan.1.dylib loader instead of what is now
the ICD.  This removes checking for libMoltenVK.dylib to avoid cryptic
errors.  This unfortunately also breaks compatibility with the
standalone MoltenVK SDK.

This also removes support for the static loader library as that is not
present in the LunarG SDK.

Related to #870.
2018-03-01 21:45:46 +01:00
Emmanuel Gil Peyrot
8d98a6e37d Add a FreeMonitor platform API
This fixes the leak of a wl_output object everytime a monitor is freed.
2018-03-01 08:31:54 +01:00
Camilla Löwy
77879736af Cocoa: Event polling did not initialize AppKit
Fixes #1218.
2018-03-01 02:23:27 +01:00
Emmanuel Gil Peyrot
0d4534733b Wayland: Destroy subcompositor and viewporter on terminate 2018-02-25 16:54:44 +01:00
Emmanuel Gil Peyrot
2926ce4838 Prevent resizing smaller than 1×1 2018-02-25 16:54:44 +01:00
Emmanuel Gil Peyrot
a8e551cffa Fix resizing and moving under xdg-shell 2018-02-25 16:54:44 +01:00
Emmanuel Gil Peyrot
a0dbffb8f2 Set decorations as opaque, to optimise composition 2018-02-25 16:54:44 +01:00
Emmanuel Gil Peyrot
dfc7eacd50 Do not leak the 1×1 buffer used for decorations 2018-02-25 16:54:44 +01:00
Emmanuel Gil Peyrot
0c4ca85149 Fix _glfwPlatformSetWindowMonitor to correctly destroy/recreate decorations 2018-02-25 16:54:44 +01:00
Emmanuel Gil Peyrot
c9d691e65e Fix window size calculation when wp_viewporter isn’t supported 2018-02-25 16:54:44 +01:00
Emmanuel Gil Peyrot
60e82ba472 Handle scaling factor (hidpi) correctly 2018-02-25 16:54:44 +01:00
Emmanuel Gil Peyrot
f51c219b1c Handle maximized size correctly 2018-02-25 16:54:44 +01:00
Emmanuel Gil Peyrot
31cea7fa24 Remove decorations when fullscreen 2018-02-25 16:54:44 +01:00
Emmanuel Gil Peyrot
58b21d336c Factorise moving to fullscreen 2018-02-25 16:54:44 +01:00
Emmanuel Gil Peyrot
8ed91e8a77 Only create decorations if wp_viewporter is supported 2018-02-25 16:54:44 +01:00
Emmanuel Gil Peyrot
4e31dc5e6e Make it possible to toggle window decorations 2018-02-25 16:54:44 +01:00
Emmanuel Gil Peyrot
1f8ec20b55 Correctly destroy subsurfaces on window destroy 2018-02-25 16:54:44 +01:00
Emmanuel Gil Peyrot
4a42364a19 Return correct values for frame size 2018-02-25 16:54:44 +01:00
Emmanuel Gil Peyrot
9f7ec6b094 Implement window decorations 2018-02-25 16:54:44 +01:00
Emmanuel Gil Peyrot
9dc18a62a6 Rename wl_pointer to pointer 2018-02-25 16:54:44 +01:00
Emmanuel Gil Peyrot
5b65b9b860 Prevent a crash when giving focus to a non-GLFWwindow surface 2018-02-25 16:54:44 +01:00
Emmanuel Gil Peyrot
552e40a4be Add wl_subcompositor support 2018-02-25 16:54:44 +01:00
Emmanuel Gil Peyrot
79e16baca3 Add wp_viewporter support 2018-02-25 16:54:44 +01:00
Emmanuel Gil Peyrot
9a7656364e Split shm buffer creation out of _glfwPlatformCreateCursor 2018-02-25 16:54:44 +01:00
Emmanuel Gil Peyrot
2de3605b4c Make createAnonymousFile static 2018-02-25 16:54:44 +01:00
Emmanuel Gil Peyrot
d6b9d00ceb Wayland: Handle monitor removal 2018-02-24 22:18:39 +01:00
Emmanuel Gil Peyrot
f67b610dd4 Wayland: Handle repeats which missed a timer 2018-02-24 21:06:25 +01:00
Emmanuel Gil Peyrot
608f055c72 Wayland: Open the timerfd with cloexec 2018-02-24 21:06:25 +01:00
Emmanuel Gil Peyrot
84d10b32c3 Wayland: Ask xkbcommon whether to repeat a key 2018-02-24 21:06:25 +01:00
Emmanuel Gil Peyrot
8bc0c5c2c0 Wayland: dlsym() xkb_keymap_key_repeats 2018-02-24 21:06:25 +01:00
Emmanuel Gil Peyrot
97bf16e5b6 Wayland: Check for wayland protocol version
wl_keyboard version 4 is more recent than the libwayland available in
Ubuntu 14.04.
2018-02-24 21:06:25 +01:00
Emmanuel Gil Peyrot
90f5edc0b8 Wayland: Use a timerfd for key repeat 2018-02-24 21:06:25 +01:00
Emmanuel Gil Peyrot
c14a35e21e Wayland: Obtain keyboard repeat_info
This had to bump the seat version, we now may get the seat name but we
don’t do anything with it.
2018-02-24 21:06:25 +01:00
Camilla Löwy
f4cd470bcb Move to modern mappings database with modifiers 2018-02-13 18:57:56 +01:00
Camilla Löwy
3c9011030f Cleanup 2018-02-13 18:33:31 +01:00
Camilla Löwy
2040309d0c Add support for gamepad mapping input modifiers
This adds support for the + and - and ~ input modifiers for joystick
axes.  It also changes how joystick axes are translated to buttons to
more closely match SDL 2.0.7.

Output modifiers are still not supported but have not yet been seen in
the wild.
2018-02-13 18:30:07 +01:00
Camilla Löwy
58cc4b2c5c Move full screen cursor centering to shared code 2018-02-07 16:47:00 +01:00
Camilla Löwy
d10463ac91 Win32: Fix extra resize event during mode switch
The switch to full screen is now done with a single call to
SetWindowPos.
2018-02-07 16:46:59 +01:00
Camilla Löwy
cfb5cb8805 Add comment 2018-02-07 16:46:58 +01:00
Camilla Löwy
1d75b205cb Cleanup
Allow window creation despite video mode setting failure.

Video mode setting failure is ignored the rest of the time and the
desired video mode has never been a hard constraint anyway.
2018-02-07 16:46:58 +01:00
Ahmad Fatoum
f940a97500 Linux: Add support for kernels < v2.6.39
Broke build for me on CentOS-6, which sports a 2.6.32 kernel:
http://www.cpantesters.org/cpan/report/d956d128-0339-11e8-b0d1-b6c4abd39192

CentOS-6 is supported till 2020-11-30.

Closes #1196.
2018-02-07 16:46:58 +01:00
Camilla Löwy
c29e4455bb Move more context logic out of glfwCreateWindow 2018-02-06 13:10:41 +01:00
Camilla Löwy
9bfa499d94 Formatting 2018-02-06 13:10:41 +01:00
Camilla Löwy
53b193a161 Wayland: Fix uninitialized variable warning
Related to #1143.
Fixes #1197.
2018-02-06 13:10:41 +01:00
Emmanuel Gil Peyrot
f5d3954568 Stop checking for resizing
Fixes #1197
2018-02-06 12:57:17 +01:00
Camilla Löwy
ae53cd29ef Improve context function error descriptions
Fixes #1193.
2018-01-30 19:28:37 +01:00
Camilla Löwy
a678665c49 Cleanup 2018-01-30 19:28:37 +01:00
Corentin Wallez
8a8eefa0d8 Fail Vulkan surface creation if window has context
OpenGL / OpenGL ES cannot share presentation on a window with Vulkan.
This adds an error to `glfwCreateWindowSurface` when it is called on a
window without the GLFW_CLIENT_API hint set to GLFW_NO_API.  This
prevents undefined bahevior and hard to debug crashes.

Fixes #1194.
Closes #1205.
2018-01-30 19:25:17 +01:00
Emmanuel Gil Peyrot
525ad7bfb8 Close the libwayland-cursor handle after destroying the cursor theme
Fixes a segfault on glfwTerminate().
2018-01-29 04:55:55 +01:00
Emmanuel Gil Peyrot
eb7c9994bf Prevent auto-iconify from firing on window creation 2018-01-29 03:59:47 +01:00
Emmanuel Gil Peyrot
f2617a671f Add a roundtrip after creating the xdg-surface
The specification says we must not attach a buffer until we’ve received
a configure event.
2018-01-29 03:59:47 +01:00
Emmanuel Gil Peyrot
4778d02c67 Ignore _glfwPlatformShowWindow when already visible 2018-01-29 03:59:47 +01:00
Emmanuel Gil Peyrot
f710db6504 Ignore configure events of 0×0px 2018-01-29 03:59:47 +01:00
Emmanuel Gil Peyrot
0e759c9422 Don’t set min/max size on GLFW_DONT_CARE 2018-01-29 03:59:47 +01:00
Emmanuel Gil Peyrot
ae44a28125 Wayland: Add an alternate surface role using xdg-shell
This protocol matches desktops much better than the deprecated
wl_shell, fixing a bunch of race conditions, removing undefined
behaviour, adding missing features, and generally providing a much more
user-friendly experience.

Since most compositors don’t support it yet, the wl_shell_surface role
is kept as fallback for now.
2018-01-29 03:59:47 +01:00
Emmanuel Gil Peyrot
14856e8b60 Wayland: Bind, listen and destroy xdg_wm_base 2018-01-29 03:59:47 +01:00
Emmanuel Gil Peyrot
73567ae5be Wayland: Add xdg-shell to the platform 2018-01-29 03:59:47 +01:00
Emmanuel Gil Peyrot
0d5f7a9eab Wayland: Add xdg-shell to the build system 2018-01-29 03:59:47 +01:00
Emmanuel Gil Peyrot
a199efae44 Wayland: Emit an error when wl_shell is absent or unusable 2018-01-29 03:59:47 +01:00
Emmanuel Gil Peyrot
440e7e36f3 Fix typography of error messages 2018-01-29 02:34:10 +01:00
Emmanuel Gil Peyrot
407a3e2860 Load libwayland-cursor at runtime 2018-01-29 02:34:10 +01:00
Emmanuel Gil Peyrot
5fbf4ddde8 Load libwayland-egl at runtime 2018-01-29 02:34:10 +01:00
Emmanuel Gil Peyrot
6e69f63ffa Use the _glfw_dlopen/dlsym/dlclose define 2018-01-29 02:26:12 +01:00
Emmanuel Gil Peyrot
eb732457ea Prevent a race between surface destruction and focus
The Wayland protocol is asynchronous, by the time we destroy a surface,
the compositor may have sent a wl_keyboard::enter or wl_pointer::enter
events which now point to no surface, yet we receive it after.

To prevent this race, we can just ignore any enter event targetting a
NULL surface.

Fixes #1150.
2018-01-29 02:03:24 +01:00
Camilla Löwy
973bf29622 Remove use of non-standard function strdup
Related to #873.
2018-01-17 11:56:35 +01:00
Camilla Löwy
bb3ab87a18 Remove unmaintained internal Doxygen docs
The useful bits have been transformed to function definition comments.
The style guide stub has been added to the regular docs build.
2018-01-17 11:25:32 +01:00
Emmanuel Gil Peyrot
6c421f131d Wayland: Implement scale callback
Closes #1181.
2018-01-09 22:39:35 +01:00
Emmanuel Gil Peyrot
93186e4999 Wayland: Fix glfwTerminate segfault on failed init
Closes #1172.
2018-01-09 22:13:28 +01:00
ocornut
20b12204af Win32: Fix GLFW_FOCUSED hint being ignored
The window was activated by _glfwPlatformShowWindow, causing the
GLFW_FOCUSED window hint to be ignored when set to false.

Fixes #1179.
Closes #1180.
2018-01-09 20:36:13 +01:00
Camilla Löwy
ee9dffcd66 Add GLFW_HOVERED for polling cursor hover state
This window attribute corresponds to the cursor enter/leave callback.

Fixes #1166.
2018-01-09 18:02:52 +01:00
Camilla Löwy
370eac3c48 Add glfwSetWindowContentScaleCallback
Related to #677.
Related to #1115.
2018-01-09 18:00:22 +01:00
Camilla Löwy
1034b6e0db Move context management out of glfwCreateWindow
Related to #25.
2018-01-09 17:58:54 +01:00
przemekmirek
9f91bd6ea9 Win32: Fix HDEVNOTIFY handle leak
Closes #1170.
2018-01-05 08:12:51 +01:00
Emmanuel Gil Peyrot
10c18f8124 Use quotes consistently for wayland-protocols 2017-12-20 04:53:42 +01:00
Camilla Löwy
7c2c7858c6 Add monitor and joystick user pointers 2017-12-19 15:08:28 +01:00
Camilla Löwy
9da2285b14 Cocoa: Make frame autosave hint a string 2017-12-19 15:08:28 +01:00
Camilla Löwy
6158801aeb Change glfwInitHintString to glfwWindowHintString
Fixes #1139.
2017-12-19 15:08:27 +01:00
Emmanuel Gil Peyrot
c3cba58a71 Remove trailing whitespace 2017-12-14 15:36:55 +01:00
Camilla Löwy
ce4672d74b Make glfwSetGamma use powf instead of pow
Related to #1125.
2017-12-14 02:22:27 +01:00
Camilla Löwy
8dab9f6ab1 Wayland: Clarify assertion
Related to #1143.
2017-12-13 21:57:32 +01:00
Camilla Löwy
682f1cf203 Fix wrong element array for hat to axis 2017-12-06 18:01:34 +01:00
Camilla Löwy
0e8c4ea7ce Add lock key modifier bits input mode
This adds the GLFW_MOD_CAPS_LOCK and GLFW_MOD_NUM_LOCK modifier bits.
Set the GLFW_LOCK_KEY_MODS input mode to enable these for all callbacks
that receive modifier bits.

Fixes #946.
2017-12-06 18:01:34 +01:00
Camilla Löwy
fd72eb917e Mir: Fix modifier bit translation 2017-12-06 18:01:33 +01:00
Camilla Löwy
638c4b604e Cleanup 2017-12-06 18:01:33 +01:00
Camilla Löwy
c2858e9ed7 Verify gamepad mapping indices match hardware 2017-12-06 18:01:32 +01:00
Camilla Löwy
7c87948eaf Win32: Fix accidentally working bit tests
Good grief.
2017-11-28 19:59:59 +01:00
Camilla Löwy
30489c5aa1 X11: Expose zero monitor for functional headless
Fixes #1147.
2017-11-28 14:37:49 +01:00
Camilla Löwy
9e6c0c747b X11: Fix segfault when using NVidia EGL 2017-11-27 15:54:33 +01:00
Camilla Löwy
3169179de1 Fix string literal exceeding max length
Fixes #1145.
2017-11-23 20:54:44 +01:00
Camilla Löwy
fe9c7a01c5 Update gamepad mappings and source URL
This matches the recent upstream update.
2017-11-23 19:35:45 +01:00
Emmanuel Gil Peyrot
65166858ff Wayland: Add support for the idle-inhibit protocol
Closes #955.
2017-11-20 22:27:37 +01:00
Emmanuel Gil Peyrot
d18431338a Wayland: Disable the compose key on old xkbcommon 2017-11-20 18:24:30 +01:00
Emmanuel Gil Peyrot
cc87d5ab10 Wayland: Assert that we only get a known axis 2017-11-20 18:06:29 +01:00
Stephen Gowen
bb13275b72 Cocoa: Fix Xcode Warnings
Closes #1132.
2017-11-20 18:04:05 +01:00
Kovid Goyal
68809869f9
Fix spurious error from glfwInitHintString
Closes #1138
2017-11-20 21:16:59 +05:30
Camilla Löwy
1fe319d234 Cocoa: Filter out duplicate size events
Fixes #1085.
2017-11-16 11:56:06 +01:00
Camilla Löwy
d630684654 Win32: Remove double resize of full screen window
Related to #1085.
2017-11-16 11:56:03 +01:00
Camilla Löwy
8b81a03a5a Cocoa: Remove double resize of full screen window
Related to #1085.
2017-11-16 11:37:00 +01:00
Camilla Löwy
11e47f08b1 Add glfwGetWindowOpacity and glfwSetWindowOpacity
This adds support for setting the opacity of the whole window, including
any decorations.

Fixes #1089.
2017-11-15 15:46:01 +01:00
Camilla Löwy
bf7cc2ffac Fix missing inclusion guard needed for unity build
Fixes #1127.
2017-11-15 04:21:41 +01:00
Camilla Löwy
fb4f633243 Fix y-axis sign for XInput thumb sticks
This breaks strict compatibility but does it to make XInput y-axes
consistent with every other API and OS.

Fixes #1083.
2017-11-14 19:50:59 +01:00
Camilla Löwy
49130ab8ec Rename framebuffer transparency hint
This is a breaking change of an unreleased API.
2017-11-14 17:21:36 +01:00
Camilla Löwy
baed2dad56 Cleanup 2017-11-10 02:58:19 +01:00
Camilla Löwy
98990217bc Cleanup 2017-11-10 02:58:19 +01:00
Camilla Löwy
71018b4ab5 Fix termination on mapping parse error 2017-11-10 02:58:18 +01:00
Camilla Löwy
79e2433eb0 Fix termination on sync object creation failure 2017-11-10 02:58:18 +01:00
Camilla Löwy
7b877c4e24 Improve placement when forcing windowed mode
This is a temporary fix while waiting the for workarea query.

Related to #1106.
2017-11-10 02:58:18 +01:00
Camilla Löwy
31cbb20ba2 Deprecate window parameter of clipboard functions 2017-11-10 02:52:16 +01:00
Camilla Löwy
80d181f12d Win32: Fix maximization of undecorated windows
Fixes #899.
2017-10-31 15:47:01 +01:00
Emmanuel Gil Peyrot
a7a70cf34d Wayland: Add dynamic loading of libxkbcommon 2017-10-30 12:01:17 +00:00
Camilla Löwy
a1154247fa Fix default value of GLFW_CENTER_CURSOR
Regression introduced by 72ac5badb0.

Fixes #1105.
2017-10-29 15:53:19 +01:00
Camilla Löwy
fcedb0be32 Fix windows not detaching on monitor disconnect
Regression introduced by 04f559e28d.

Related to #1106.
2017-10-26 18:52:43 +02:00
Camilla Löwy
bf09dba95b Cleanup 2017-10-26 18:05:56 +02:00
Camilla Löwy
16bf872117 Add content scale queries
This adds glfwGetWindowContentScale and glfwGetMonitorContentScale for
querying the recommended drawing scale factor for DPI-aware rendering.

Parts of this patch are based on code by @ferreiradaselva.

Fixes #235.
Fixes #439.
Fixes #677.
Fixes #845.
Fixes #898.
2017-10-26 17:26:36 +02:00
Camilla Löwy
94ee10e655 Remove trailing else 2017-10-03 00:41:19 +02:00
Camilla Löwy
6d463d36fa Cleanup 2017-10-02 17:31:39 +02:00
Emmanuel Gil Peyrot
95e282d5a0 Wayland: Add transparency support
Closes #788.
2017-10-01 01:39:27 +01:00
Camilla Löwy
5aeb37d1b8 Cocoa: Fix window title being lost when untitled
The window title was lost and could not be updated while the window did
not have NSWindowStyleMaskTitled set.

Fixes #1082.
2017-09-28 19:04:11 +02:00
Camilla Löwy
da68ec56c3 Cocoa: Start using instancetype
The first tiny step towards using more modern Objective-C.
2017-09-28 19:03:50 +02:00
Camilla Löwy
5d0d30db38 Cleanup 2017-09-28 17:32:15 +02:00
Camilla Löwy
32e78aeb2e Add GLFW_TRANSPARENT attribute and documentation
This completes support for window framebuffer transparency on Windows,
macOS and X11.  Note that the hint/attribute may be renamed before
release to clarify its relationship to GLFW_OPACITY.

Fixes #197.
Closes #1079.
Related to #663.
Related to #715.
Related to #723.
Related to #1078.
2017-09-27 21:54:04 +02:00
Bailey Cosier
93e66661d3 Cleanup
This is an extract of a commit, minimally edited to ensure it compiles.

Closes #1078.
Related to #197.
2017-09-27 21:33:03 +02:00
Cem Karan
ac009a5f5c Cocoa: Implement GLFW_TRANSPARENT
This is an extract of a commit, minimally edited to ensure it compiles.

Closes #663.
Related to #197.
2017-09-27 21:33:03 +02:00
Christopher Pelloux
51f0cd3b51 Win32: Implement GLFW_TRANSPARENT
This is a squashed extract of several commits, minimally edited to
ensure it compiles.

Related to #197.
Related to #723.
2017-09-27 21:33:03 +02:00
Wolfgang Draxinger
019609b6cd Add GLFW_TRANSPARENT and X11 implementation
This is a squashed extract of several commits, minimally edited to
ensure it compiles.

Related to #197.
Related to #715.
2017-09-27 21:33:03 +02:00
Camilla Löwy
eed94448fd Win32: Remove unused GUID 2017-09-27 21:33:03 +02:00
Camilla Löwy
25b7eba4a0 Win32: Clean up dynamic loading and version checks 2017-09-27 21:33:03 +02:00
Camilla Löwy
f4fb25b63d X11: Fix init order breaking cursor hiding
The hidden cursor was created before Xcursor was loaded.
2017-09-17 16:06:02 +02:00
Camilla Löwy
e3be6b8ae0 Cleanup
Break up some overly long lines.
2017-09-17 15:14:22 +02:00
Camilla Löwy
3d110d2e1b X11: Fix selection error nomenclature
[ci skip]
2017-09-17 13:54:17 +02:00
Camilla Löwy
0b5023bc62 X11: Fix Latin-1 text not being converted to UTF-8 2017-09-17 13:50:10 +02:00
Camilla Löwy
9dbc935afb X11: Stop reporting support for COMPOUND_TEXT 2017-09-17 13:50:10 +02:00
Camilla Löwy
f7dc6df02c X11: Add support for reading clipboard via INCR
This allows glfwGetClipboardString to retrieve clipboard contents larger
than (typically) 2^18 bytes.

Related to #275.
2017-09-17 13:50:00 +02:00
Camilla Löwy
16ae02ab85 Add CMake target for updating gamepad mappings
This adds the 'mappings' build target that downloads the upstream
gamecontrollerdb.txt file and regenerates the mappings.h header.

Related to #900.
2017-09-15 15:50:39 +02:00
Camilla Löwy
4637c31d82 Win32: Remove unused header 2017-09-13 23:19:29 +02:00
Camilla Löwy
7f0d5e0a03 Win32: Fix text conversion size semantics 2017-09-13 17:55:51 +02:00
Camilla Löwy
f8668c5a9f Win32: Fix key names not matching other platforms
This brings printable key names more in line with the results provided
on other platforms.

Fixes #943.
2017-09-13 17:55:51 +02:00
Camilla Löwy
d099181307 Add library name override macros 2017-09-10 21:02:26 +02:00
Camilla Löwy
b97039f3f5 Cleanup 2017-09-10 20:57:06 +02:00
Camilla Löwy
a368d89c94 Win32: Fix disabled cursor mode vs caption buttons
This postpones disabling the cursor until the user is done interacting
with a caption button.

Related to #650.
Fixes #1071.
2017-09-08 16:18:15 +02:00
Camilla Löwy
d8551b73f6 Cleanup 2017-08-28 18:31:14 +02:00
Camilla Löwy
45ca8b8d19 Win32: Add HMONITOR to monitor data 2017-08-28 18:27:55 +02:00
Camilla Löwy
58a247b26d Cocoa: Fix some characters not repeating
Fixes #1010.
2017-08-23 19:10:35 +02:00
Camilla Löwy
ce5e649d3b Cleanup
Move global data to library struct.  Simplify semantics.  Update
changelog.

Related to #1028.
2017-08-23 13:24:05 +02:00
Sergey Tikhomirov
80e4922b5e Cocoa: Hide cursor instead of using blank image
When cursor isn't in normal mode and should be hidden, use [NSCursor hide]
method instead of setting it to blank image. This should prevent
situations when hidden cursor becomes visible after system notification
was shown.

Fixes #971.
Closes #1028.
2017-08-23 08:44:56 +03:00
Camilla Löwy
0882fffc37 Fix missing CMake file path quoting 2017-08-20 14:47:44 +02:00
Camilla Löwy
0d6937b33b Cleanup 2017-08-20 14:41:49 +02:00
Camilla Löwy
0c70eb8d5c Unify error message buffer lengths 2017-08-17 14:25:10 +02:00
Camilla Löwy
08737bdc02 X11: Close extension libraries after XCloseDisplay 2017-08-16 21:12:48 +02:00
Camilla Löwy
0d9e71fe81 Cleanup 2017-08-16 21:03:10 +02:00
Camilla Löwy
99e72830ea X11: Add dynamic loading of libXcursor 2017-08-16 20:59:59 +02:00
Camilla Löwy
3f852c321f X11: Add dynamic loading of libXinerama 2017-08-16 20:06:22 +02:00
Camilla Löwy
15d102b75e X11: Add dynamic loading of libXrandr 2017-08-16 20:05:55 +02:00
Emmanuel Gil Peyrot
0019f7a45e Wayland: Stop crashing when Compose is unavailable
There was a missing check for when no Compose key was configured in the
xkb file, making _glfw.wl.xkb.composeState NULL and crashing on key
press.

Closes #1059.
2017-08-13 21:25:22 +02:00
Camilla Löwy
2d0ffd788b Fix type in filename 2017-08-13 21:24:58 +02:00
Camilla Löwy
e27dc50689 Add non-VS warning about C99 declarations
This adds a warning in GCC and Clang about using intermingled
variable declarations in source files that will be built by VS.

This currently excludes egl_context.c and osmesa_context.c.  It will
be addressed by a separate commit.

Related to #1026.
2017-08-13 21:24:58 +02:00
Camilla Löwy
b7a0f225ea Cleanup
Don't advertise native functions in public API guides.  Don't list
primary selection access as most notable new feature.  Don't have
different levels of abstraction among selection helper functions.  Don't
forget to take credit.

Related to #1056.
2017-08-13 21:22:36 +02:00
Kristian Nielsen
29a75ab09d X11: Add native access to primary selection
This adds the native access functions glfwSetX11SelectionString and
glfwGetX11SelectionString under GLFW_EXPOSE_NATIVE_X11.  They are
similar to glfwSetClipboardString and glfwGetClipboardString but operate
on the PRIMARY selection.

The primary selection is widely used in X11, and so seems important to
support.  Primary selection is mostly an X11-specific thing, hence it's
exposed as an X11 native interface.

Fixes #894.
Closes #1056.

Signed-off-by: Kristian Nielsen <knielsen@knielsen-hq.org>
2017-08-13 18:52:24 +02:00
Camilla Löwy
3ee7f8f695 Cocoa: Fix warnings caused by _XOPEN_SOURCE 2017-08-10 22:24:44 +02:00
Camilla Löwy
e376404d38 Cleanup 2017-08-09 16:26:29 +02:00
Camilla Löwy
079518617c Linux: Fix missing feature macro for using strdup
This adds _XOPEN_SOURCE = 500.

Fixes #1055.
2017-08-09 16:25:47 +02:00
Camilla Löwy
549308051d Linux: Update joystick API in version strings 2017-08-09 12:20:51 +02:00
Camilla Löwy
f95c9d1bf3 Win32: Fix XInput axis normalization
Fixes #1045.
2017-08-09 12:20:50 +02:00
Camilla Löwy
75e44abf09 Win32: Remove deadzone logic from XInput path
Related to #1021.
Related to #1045.
2017-08-09 12:20:42 +02:00
Camilla Löwy
a397195d3f Linux: Make joystick init always fail silently
Related to #833.
2017-08-09 12:18:28 +02:00
Camilla Löwy
ab2247f8f3 Cocoa: Fix string object being updated incorrectly
Fixes #1050.
2017-08-06 23:27:58 +02:00
Camilla Löwy
5b7281bd41 Add glfwGetJoystickGUID
This function completes the first round of support for
SDL_GameControllerDB.

Fixes #900.
2017-07-30 16:15:12 +02:00
Camilla Löwy
213dd2d0d6 Add glfwInitHintString
Adds string type init hints.  Adds X11 specific init hints for WM_CLASS
components.  Documentation work.

Fixes #893.
2017-07-25 23:53:52 +02:00
Camilla Löwy
472e5fc4a9 Fix warning 2017-07-17 23:15:48 +02:00
Camilla Löwy
e55e616f1f Cleanup
Replaces tabs with spaces.  Makes code idiomatic.  Adds credit.

Closes #1043.
2017-07-13 01:37:05 +02:00
Michał Cichoń
50a228394f Win32: Fix bad call to _glfwPlatformPollJoystick
Related to #1043.
2017-07-13 01:34:08 +02:00
Michał Cichoń
afbd589348 Fix function signature in null joystick backend
Related to #1043.
2017-07-13 01:28:02 +02:00
Camilla Löwy
82284b86eb Cleanup
Thanks to glfwGetKeyScancode we can now pass only a scancode to the
platform layer for glfwGetKeyName.
2017-07-13 01:26:06 +02:00
Camilla Löwy
8e899ccc29 Cocoa: Add support for MoltenVK dynamic library
Tested with MoltenVK 0.18.0.

Related to #870.
2017-07-10 21:34:02 +02:00
Camilla Löwy
ea6c50d9e2 Cleanup 2017-07-10 12:53:20 +02:00
Camilla Löwy
2fa90ae19f Win32: Fix capture logic ignoring last mouse button 2017-07-09 18:37:24 +02:00
Camilla Löwy
617c42b20a Cleanup 2017-07-09 14:01:48 +02:00
Camilla Löwy
953106e74d Add support for SDL_GameControllerDB
This adds support for importing and applying mappings from the
SDL_GameControllerDB database.

Related to #900.
2017-07-07 15:52:33 +02:00
Camilla Löwy
07bf2b166b GLX: Fix segfault when no GLXFBConfigs available
Fixes #1040.
2017-07-07 10:30:10 +02:00
Camilla Löwy
9bb5e880ae Win32: Fix XInput button bit mask array size 2017-07-02 20:15:36 +02:00
Camilla Löwy
58c05ba8ee Fix library destination for DLL platforms
Fixes #1035.
2017-06-28 12:07:39 +02:00
Camilla Löwy
d5de48ab53 Report invalid constants in the appropriate base
If the expected constants are defined in hexadecimal in the header then
the error string should also use hexadecimal.

Idea by IntellectualKitty.

Related to #970.
2017-06-28 12:07:06 +02:00
Camilla Löwy
99762ad7f0 Cleanup 2017-06-15 20:03:40 +02:00
Camilla Löwy
6da26c8d6c Linux: Ignore partial state after SYN_DROPPED
Related to #1005.
2017-06-15 20:01:45 +02:00
Camilla Löwy
d2952e4e92 Cleanup
Related to #1005.
2017-06-15 20:01:44 +02:00
Camilla Löwy
206f9ca4bc Linux: Fix joystick array bugs
Related to #1005.
2017-06-15 20:00:21 +02:00
Anthony Pesch
d1a2ec4d20 Linux: Move to evdev for joystick input
Closes #1005.
2017-06-13 18:49:20 +02:00
Camilla Löwy
78666204a1 Linux: Fix path buffer length warning 2017-06-11 23:29:16 +02:00
Camilla Löwy
5bcf9c76fd Linux: Fix path buffer length warning
Fixes #1025.
2017-06-08 19:29:57 +02:00
ryogo.yoshimura
4dee58d480 Cocoa: Fix conversion between NSPoint and CGPoint
GLFW still supports versions of macOS before these became the same
underlying type.

Closes #1023.
2017-06-08 16:39:02 +02:00
Camilla Löwy
32f482a6d8 Cleanup 2017-06-08 16:38:45 +02:00
Camilla Löwy
0321bec232 Documentation work
[ci skip]
2017-06-08 16:09:17 +02:00
Camilla Löwy
2bb8517e9e EGL: Fix EGL_KHR_create_context_no_error support 2017-06-08 16:09:16 +02:00
Camilla Löwy
f4ea29cd06 GLX: Add GLX_ARB_create_context_no_error support 2017-06-08 16:09:16 +02:00
Camilla Löwy
52f7684487 WGL: Add WGL_ARB_create_context_no_error support 2017-06-08 16:09:15 +02:00
Camilla Löwy
a3007b9b0e Rename thread source files
This to reflect that they now contain more than TLS.
2017-06-08 16:09:14 +02:00
Camilla Löwy
14a3fe0ac0 Make glfwGetError also provide description
Related to #970.
2017-06-08 16:08:36 +02:00
Camilla Löwy
372e908682 Remove internal header inclusion guards
Inclusion of internal headers is already both centralized and follows
strict rules.  Inclusion guards are both an unneccessary maintenance
burden and may hide inclusion order bugs.
2017-05-25 19:35:13 +02:00
Camilla Löwy
186d03b32a Cleanup
Related to #983.
2017-05-17 22:26:15 +02:00
Camilla Löwy
c8ea64976f XKB: Workaround for Num Lock
Related to #983.
2017-05-17 22:26:08 +02:00
Camilla Löwy
2023095d8e XKB: Fix Unicode lookup regression
This fixes a sorting error introduced by
8597002a17.  The array must be sorted for
the binary search.
2017-05-17 22:24:26 +02:00
Denis Bernard
8597002a17 X11: Make glfwGetKeyName return UTF-8 strings
Fixes #981.
Closes #983.
2017-05-17 22:21:22 +02:00
Camilla Löwy
4f7102be26 Clarify joystick ID error message 2017-05-17 22:21:22 +02:00
Camilla Löwy
018ae69b33 Cleanup
Related to #985.
2017-05-16 15:43:28 +02:00
Konstantin Käfer
d1d08ef99f Cocoa: Fix EGL support
This adds support for using GLFW with EGL backends on macOS.  While EGL
isn't available by default on macOS, there are third-party
implementations like SwiftShader.

The addition of MoltenVK support added an override to makeBackingLayer.
In non-Vulkan mode, this means that we are returning nil from that
function.  The NSGL implementation creates this layer manually later on,
but other OpenGL backends don't necessarily do that.

Closes #985.
2017-05-16 15:42:19 +02:00
Camilla Löwy
85c6168bba Fix missing type cast
Thanks, Clang!
2017-05-16 14:33:14 +02:00
Camilla Löwy
baa9cd8968 Cleanup
Closes #988.
2017-05-11 20:10:04 +02:00
Felipe Ferreira da Silva
412eb6a611 Add glfwRequestWindowAttention
Related to #988.
2017-05-11 13:36:39 +02:00
Camilla Löwy
731ff91acd WGL: Add support for WGL_EXT_colorspace 2017-05-10 19:36:26 +02:00
Camilla Löwy
b234e28d5d Win32: Stop exporting GUIDs from static library 2017-05-10 19:36:17 +02:00
Camilla Löwy
6350641f0a Add glfwGetError
Related to #970.

If you have opinions on the design or implementation of this function,
please come join us in #970 before it is frozen for release.
2017-05-03 18:30:11 +02:00
pengo
4884232360 Wayland: Update serial on button callback
The serial needs to be update for starting operations like moving and
resizing a window.

Closes #992.
2017-04-13 03:59:49 +02:00
Camilla Löwy
66b16f1fc1 X11: Add validation of RandR gamma ramp size 2017-04-05 17:53:00 +02:00
Brandon Schaefer
c9003b5547 Mir: Get ready for Mir 1.0
Clean up CMake finding and check version.  Change last remaining
deprecations.

Closes #979.
2017-03-30 00:43:03 +02:00
Camilla Löwy
4ff66a7818 X11: Fix IM-duplicated key events leaking through
Fixes #747.
Fixes #964.
2017-03-27 02:00:31 +02:00
Camilla Löwy
72d58d7b93 Cleanup 2017-03-26 16:46:17 +02:00
Camilla Löwy
11c15b562d Remove superfluous comments 2017-03-26 16:46:17 +02:00
Camilla Löwy
9b81d72c46 X11: Fix libXi soname 2017-03-26 16:46:17 +02:00
Camilla Löwy
b0277a129b Fix comment 2017-03-26 16:46:17 +02:00
Camilla Löwy
6abb5cbcbb Formatting 2017-03-26 16:46:17 +02:00
Camilla Löwy
b215a989f5 Win32: Check for monitor object creation failure 2017-03-26 16:46:17 +02:00
Camilla Löwy
5fe4dfb511 X11: Narrow criteria for disabling RandR
Fixes #972.
2017-03-26 16:46:17 +02:00
Camilla Löwy
cf2eab5b4e Cocoa: Made axis auto-calibration less jumpy 2017-03-23 17:33:05 +01:00
Camilla Löwy
55d0560746 Cocoa: Fix range handling for hats and buttons
Fixes #888.
2017-03-23 15:58:14 +01:00
Camilla Löwy
1982543cd2 Cleanup 2017-03-19 02:46:16 +01:00
Camilla Löwy
aaf2800c9c Add internal TLS support
Related to #970.
2017-03-19 00:52:46 +01:00
Camilla Löwy
62414bff6e X11: Fix inverted coordinate transform 2017-03-17 14:09:07 +01:00
Camilla Löwy
6a65341e14 X11: Fix multiple issues in XDND support
The code blindly expected UTF8_STRING for files.  It did not downgrade
based on source protocol version.  It did not handle hostnames in
text/uri-list data.  It did not specify the source time stamp when
converting the selection.  It did not search the XdndTypeList when
necessary.  It did not ignore sources that specified invalid versions.

While better, this is still not fully conformant.  Hostnames are not
validated and it does not guard against source crashes.

Fixes #968.
2017-03-16 23:41:06 +01:00
Camilla Berglund
7410346c5c Cocoa: Allow undecorated windows to become main 2017-03-16 15:46:21 +01:00
Camilla Löwy
27a8b3c17b EGL: Add support for EGL_KHR_context_flush_control 2017-03-15 17:37:33 +01:00
Camilla Löwy
7c070f55be EGL: Add support for Cygwin 2017-03-15 14:40:21 +01:00
Camilla Löwy
3d8aa53573 Cocoa: Fix full screen window not being restorable
Once a full screen window was iconified, it would appear to restore but
then disappear.

Fixes #848.
2017-03-15 01:27:46 +01:00
Camilla Löwy
7c88c92778 Cocoa: Fix window rect on leaving video mode
Fixes #748.
2017-03-14 21:23:48 +01:00
Camilla Löwy
21355e31db Cleanup 2017-03-14 20:39:18 +01:00
Camilla Löwy
97dbd8b63b Win32: Fix monitor event emission
Fixes #784.
2017-03-14 19:21:57 +01:00
Camilla Löwy
0df9cc2fc5 Win32: Improve monitor enumeration
This changes enumeration to add as a GLFW monitor any active adapter
without displays, even if other active adapters do have displays.

Related to #441.
Fixes #960.
2017-03-14 19:10:57 +01:00
Camilla Löwy
6a8ade99c7 Cocoa: Remove errors emitted on headless systems
Related to #958.
2017-03-10 14:44:55 +01:00
A. Tombs
5ae781586f X11: Handle Selection* events despite NULL window
X11 event processing currently discards events that can not be mapped to
a current GLFW window.  However, this breaks clipboard functionality by
failing to respond to SelectionRequest and SelectionClear events.

This commit moves processing of these important clipboard events to
before the NULL window test so that they are always considered.

Fixes #961.
Closes #963.
2017-03-07 19:24:31 +01:00
Camilla Löwy
798d7c6d68 Implement glfwGetJoystickHats
This moves the buttons-as-hats logic to shared code and adds the
GLFW_JOYSTICK_HAT_BUTTONS input mode as a way to disable this legacy
behavior.

Fixes #889.
2017-03-06 03:23:29 +01:00
IntellectualKitty
368dec7ac7 Add glfwGetJoystickHats
This merges the public part of the glfwGetJoystickHats work by
@IntellectualKitty.  The implementation needs replacing due to
refactoring in preparation for gamecontrollerdb support.

Closes #906.
2017-03-05 23:20:07 +01:00
Emmanuel Gil Peyrot
0e0862cfc7 Wayland: Fix broken build
Regression caused by e9560ef021.
2017-03-03 17:51:40 +00:00
Camilla Löwy
5b306f0390 Cleanup 2017-03-03 14:22:38 +01:00
Camilla Löwy
d88347ee7d Mir: Fix broken build
Regression caused by e9560ef021.
2017-03-02 17:52:32 +01:00
Camilla Löwy
7a8516d296 Cleanup 2017-03-01 04:36:00 +01:00
Camilla Löwy
c50aba1335 Cocoa: Add support for MainMenu.nib loading 2017-03-01 04:36:00 +01:00
Camilla Löwy
6d9a58bfef Add glfwInitHint
This allows setting hints that control how the library is initialized,
transforming more compile-time options into run-time ones.
2017-03-01 04:35:41 +01:00
Camilla Löwy
071a049f07 Documentation work
[ci skip]
2017-02-28 22:54:50 +01:00
Camilla Löwy
e019f7e7f2 Remove misleading platform API documentation
[ci skip]
2017-02-28 22:54:45 +01:00
Camilla Löwy
315c9455d5 OSMesa: Use framebuffer size for framebuffer 2017-02-28 22:21:42 +01:00
Camilla Löwy
97b0c645bf Remove unused stub 2017-02-28 22:21:02 +01:00
Camilla Löwy
53f46d32e2 Make OSMesa backend an almost proper null backend
It still depends on POSIX time and TLS.
2017-02-28 21:57:43 +01:00
Camilla Löwy
e9560ef021 Add GLFW_OSMESA_CONTEXT_API
This allows the creation of OpenGL contexts via OSMesa on existing
platforms.  It does not add a compile- or link-time dependency on
OSMesa.

Fixes #281.
2017-02-28 20:38:10 +01:00
Camilla Löwy
a44f2c0e65 Win32: Fix VC++ warning 2017-02-28 00:07:37 +01:00
Camilla Löwy
ce8fe645f4 Cleanup 2017-02-26 22:22:53 +01:00
Camilla Löwy
9950d8a319 Cleanup 2017-02-26 22:18:47 +01:00
Camilla Löwy
4928e2bf0a Clarify undocumented platform errors 2017-02-26 20:09:46 +01:00
Camilla Löwy
a570d0a129 X11: Use XI_RawMotion for disabled cursor motion
Related to #125.
2017-02-26 18:48:04 +01:00
Camilla Löwy
918b4e81d2 Win32: Move to WM_INPUT for disabled cursor motion
Related to #125.
2017-02-26 18:48:03 +01:00
Camilla Löwy
dd96d0ac93 Win32: Fix mouse button messages lost by capture
Fixes #954.
2017-02-26 18:48:02 +01:00
Camilla Löwy
3817b4e1c5 Add more assertions 2017-02-23 17:47:41 +01:00
Camilla Löwy
2ba461e348 Formatting 2017-02-23 17:46:59 +01:00
Camilla Löwy
5352e2caa0 X11: Fix read past top of stack on 64-bit
Fixes #951.
2017-02-23 03:27:23 +01:00
Camilla Löwy
980f955f6c Fix undefined behavior
Fixes #950.
2017-02-16 05:23:10 +01:00
Camilla Löwy
343288c1f6 Fix line endings
[ci skip]
2017-02-11 21:17:26 +01:00
Camilla Löwy
355b46e6c5 Win32: Fix screensaver and blanking prevention
On Vista and later, Handling WM_SYSCOMMAND is not enough to prevent
password protected screensavers or monitor blanking.

Fixes #851.
2017-02-10 02:28:55 +01:00
Camilla Löwy
366b90be1a Documentation work 2017-02-10 01:55:03 +01:00
Camilla Löwy
77a8f103d8 Add GLFW_COCOA_GRAPHICS_SWICTHING
This provides control over whether the context should participate in
macOS Automatic Graphics Switching.

Closes #377.
Closes #935.
2017-02-10 01:29:29 +01:00
Camilla Löwy
558afefc04 X11: Fix sonames for dynamically loaded libraries
Fixes #941.
2017-02-08 06:53:04 +01:00
Camilla Löwy
21eabd3938 Documentation work 2017-02-08 06:53:04 +01:00
Camilla Löwy
0c090a8c8b Perform full termination on platform init failure 2017-02-08 06:53:04 +01:00
Camilla Löwy
926d2beddb Move initialized flag into library struct 2017-02-08 06:53:04 +01:00
Camilla Löwy
98bdd36231 Fix glfwVulkanSupported semantics 2017-02-07 21:28:50 +01:00
Camilla Löwy
8e870d4cc0 Win32: Fix bad error from glfwVulkanSupported
A VK_ERROR_OUT_OF_HOST_MEMORY error would be passed on to client code on
systems that had a Vulkan loader but no ICD.

Fixes #916.
2017-02-07 20:08:14 +01:00
Camilla Löwy
5a74b5008d Cleanup
Related to #842.
2017-02-06 15:16:27 +01:00
Liam Middlebrook
72ac5badb0 Add GLFW_CENTER_CURSOR
Adds a hint for controlling whether the cursor is centered over newly
created full screen windows.

Fixes #749.
Closes #842.
2017-02-06 15:16:26 +01:00
Camilla Löwy
ef5a21496c X11: Fix set not being reset each call to select 2017-02-01 03:16:29 +01:00
Camilla Löwy
67a55efa27 Add null joystick backend
This prepares the X11 backend to support other joystick APIs, for
example the FreeBSD libusb one.
2017-02-01 03:07:25 +01:00
Camilla Löwy
c5694b3013 Linux: Fix joystick disconnection detection
Joystick disconnection was not dectected by the event processing
functions and required calling a joystick function.

Fixes #932.
2017-01-31 00:21:53 +01:00
Camilla Löwy
9cfaf0944c Fix file API version number 2017-01-30 16:52:49 +01:00
Camilla Löwy
bfd564f257 Move internals to shared joystick objects
Preparation for gamecontrollerdb support and the gamepad API.
2017-01-30 16:52:49 +01:00
Camilla Löwy
43c1910453 Win32: Cleanup 2017-01-29 19:50:41 +01:00
Camilla Löwy
260dbf0a1d Win32: Cleanup 2017-01-29 19:50:35 +01:00
Camilla Löwy
f3e20ca437 Pass scancode with synthetic key release events 2017-01-29 16:44:38 +01:00
Camilla Löwy
a2867ff6ea Cleanup 2017-01-29 16:44:37 +01:00
Camilla Löwy
9689f7b925 Remove superfluous comments 2017-01-29 16:44:37 +01:00
Emmanuel Gil Peyrot
f4c5e6568e Wayland: Commit shell surface creation
This fixes any program using hidden windows, like tests/windows.c.
2017-01-26 18:13:15 +00:00
Emmanuel Gil Peyrot
865bf67b1a OSMesa: Fix context struct indentation 2017-01-26 18:13:12 +00:00
Camilla Löwy
f474b6da85 Wayland: Fix missing scancode for Space key
Fixes #936.
2017-01-26 17:02:10 +01:00
Camilla Löwy
a578bc2fad Mir: Fix missing scancode for Space key
Related to #936.
2017-01-26 17:02:10 +01:00
Camilla Löwy
c28778e28c Win32: Improve platform error messages
Related to #733.
2017-01-20 01:35:24 +01:00
paul4334
9cd378caa7 GLX: Check whether client string is NULL
In very rare cases the X server reports the GLX extension as present but
functions return invalid fallback values.

Closes #912.
2017-01-19 03:46:49 +01:00
Camilla Löwy
b0258803c6 X11: Clarified broken RandR error messages 2017-01-16 18:26:53 +01:00
Camilla Löwy
77eb94409c X11: Fix segfault on Cygwin/X RandR 1.5 2017-01-16 17:53:56 +01:00
Camilla Löwy
0735250eb1 X11: Fix potential window property data leaks 2017-01-16 17:53:28 +01:00
Camilla Löwy
e7722af9a2 Cleanup 2017-01-12 05:30:56 +01:00
Camilla Löwy
0cd409bd6d Comment work 2017-01-11 19:55:33 +01:00
Camilla Löwy
2ea7f9769a OSMesa: Fix invalid window frame size 2017-01-10 19:01:10 +01:00
Camilla Löwy
221451b817 Cleanup 2017-01-10 15:46:00 +01:00
Camilla Löwy
48a795c101 Merge single-use function _glfwFreeMonitors
All other uses were elminiated by _glfwInputMonitor.
2017-01-10 15:01:55 +01:00
Camilla Löwy
dd81707992 EGL: Fix test for EGL_RGB_BUFFER 2017-01-02 16:02:40 +01:00
Camilla Löwy
ec410fb6fe Cocoa: Enable EGL 2017-01-02 15:32:55 +01:00
Camilla Löwy
3edaa5280d Add GLFW_INCLUDE_ES32 2017-01-02 06:06:01 +01:00
Camilla Löwy
51e415a026 Cocoa: Fix CGDisplayModeCopyPixelEncoding cutoff 2017-01-02 06:06:01 +01:00
Camilla Löwy
04f559e28d Restructure monitor enumeration
This way is both kinder on event-based enumeration and less work to
unwind allocations for when properly implementing GLFW_OUT_OF_MEMORY.
2017-01-02 06:03:02 +01:00
Camilla Löwy
ecda05af29 Cocoa: Implement window cascading
Related to #195.
2017-01-02 04:49:16 +01:00
Camilla Löwy
4661315192 Add GLFW_COCOA_FRAME_AUTOSAVE
Fixes #195.
2017-01-01 19:58:34 +01:00
Camilla Löwy
0f488ac286 Win32: Fix underflow in deadzone logic
Fixes #910.
2016-12-19 13:13:46 +01:00
Camilla Löwy
e649708cb2 X11: Make more use of XRRGetScreenResourcesCurrent
Closes #877.
2016-12-18 15:49:17 +01:00
Camilla Löwy
f656d95339 Documentation work 2016-12-15 20:21:07 +01:00
Camilla Löwy
6eae8f22dc X11: Load Xxf86vm at run-time 2016-12-11 00:05:15 +01:00
Camilla Löwy
58ceab5f1e Add GLFW_COCOA_RETINA_FRAMEBUFFER
Look, a can of worms!  I wonder what's inside.

This adds the first platform specific window hint, transforming
a compile-time option to a run-time per-window one.
2016-12-08 16:56:05 +01:00
Camilla Löwy
0e8ba24f32 Formatting 2016-12-08 16:56:05 +01:00
Camilla Löwy
744cee6ec9 Cleanup 2016-12-08 16:56:05 +01:00
Camilla Löwy
32eb50b75e Move to Vulkan style function typedefs
PFN_FunctionName is more readable than SCREAMSOUP_T.

Context creation API function typedefs are kept as-is where the original
header provided them, for compatibility and familiarity reasons.
2016-12-08 16:56:05 +01:00
Sergey Tikhomirov
11a2413476 Cocoa: Fix issue with application sandboxing
Fixes #816.
Closes #882.
2016-12-06 17:39:51 +01:00
Camilla Löwy
be4eb6fb2b OSMesa: Add missing stubs 2016-12-06 16:11:38 +01:00
Camilla Löwy
9e56099edd Add glfwSetWindowAttrib
This function allows updating the GLFW_DECORATED, GLFW_RESIZABLE,
GLFW_FLOATING and GLFW_AUTO_ICONIFY attributes for existing windows.

Fixes #537.
2016-12-06 15:59:18 +01:00
Camilla Löwy
d92bb41e25 Fix typo
[ci skip]
2016-12-06 13:59:04 +01:00
Camilla Löwy
69e351b44a Cleanup
[ci skip]
2016-12-06 13:58:52 +01:00
Camilla Löwy
fd127d59fa Cocoa: Improve OpenGL version restriction messages
Fixes #904.
2016-12-03 20:15:26 +01:00
Camilla Löwy
f4d0c83181 Paperwork done 2016-11-30 14:00:41 +01:00
Camilla Berglund
9190cf8796 Cocoa: Disable deprecated function on macOS 10.12+
CGDisplayModeCopyPixelEncoding is deprecated starting with macOS 10.12.
2016-11-16 15:10:29 +01:00
Camilla Berglund
d19a21bd01 Cocoa: Monitor name cleanup
Only retrieve the display info dictionary once.  Remove non-standard
function name.
2016-11-16 15:09:07 +01:00
Matthew Henry
94b8486d4b Cocoa: Replace deprecated CGDisplayIOServicePort
This replaces CGDisplayIOServicePort with manually finding a service
port with matching vendor and product IDs.  This may technically not be
the one corresponding to the display ID, but it is only used to retrieve
the human-readable make/model string.

This could be cleaned up and refined a bit by comparing more display
attributes when available, but it gets the job done.

Fixes #165.
Closes #192.
Closes #508.
Closes #511.
2016-11-16 15:06:37 +01:00
Camilla Berglund
5b8051581e OSMesa: Allow cursor creation 2016-11-09 01:36:24 +01:00
Camilla Berglund
0e8d129efb OSMesa: Context creation compliance fixes 2016-11-09 01:36:24 +01:00
Camilla Berglund
62012e3c68 OSMesa: Add fallback to OSMesaCreateContextExt 2016-11-09 01:36:23 +01:00
Camilla Berglund
fef21361c5 OSMesa: Cleanup
Fixes formatting, semantics and documentation.  Adds
glfwGetOSMesaContext.  Adds support for OSMesa context attributes.
Updates changelog and credits.  Adds license and copyright headers.
Removes superfluous code (the shared code provides many conveniences).
Removes loading of unused OSMesa functions.  Removes empty platform
structs.  Fixes version string format.  Removes build dependency on
the OSMesa header and library (only the library is needed and only at
runtime).

Closes #850.
2016-11-09 01:36:21 +01:00
Jason Daly
368fa9475d Add headless OSMesa backend
Allows creation and drawing to in-memory OpenGL contexts.

This backend does not provide input.

Related to #850.
2016-11-09 01:23:43 +01:00
Camilla Berglund
4d322a97e1 Fix Vulkan extension count when none were found 2016-11-07 19:53:30 +01:00
Emmanuel Gil Peyrot
8210f89b12 Wayland: Set a proper name for outputs.
glfwGetMonitorName()’s documentation says “this function returns a
human-readable name”, which “typically reflects the make and model of
the monitor”.  We get these two strings in the geometry event, so we
only set the name at this point.
2016-11-04 09:58:45 +00:00
Emmanuel Gil Peyrot
a28baabefe Allow a monitor to be created without a name. 2016-11-04 09:57:59 +00:00
Camilla Berglund
e94d16667b Cocoa: Add basic support for Vulkan via MoltenVK
This adds basic support for MoltenVK, a Vulkan implementation on top of
Metal, on macOS 10.11 and later.  It looks for MoltenVK in the process
via RTLD_DEFAULT symbol lookup if _GLFW_VULKAN_STATIC is disabled.

glfwCreateWindowSurface now creates and sets a CAMetalLayer for the
window content view, which is required for MoltenVK to function.

You must help CMake find MoltenVK for the Vulkan test to be built.

Fixes #870.
2016-11-01 21:39:54 +01:00
Camilla Berglund
c3db1cae3f Fix glfwGetInstanceProcAddress for static linking 2016-11-01 21:34:26 +01:00
Camilla Berglund
fef25ea934 Emit all Vulkan init errors from init function 2016-11-01 21:34:26 +01:00
Camilla Berglund
a9282bad29 Disable all dl* calls for _GLFW_VULKAN_STATIC 2016-11-01 21:34:26 +01:00
Camilla Berglund
3d4bd9667a Win32: Fix joystick error message prefix 2016-10-25 21:28:21 +02:00
Camilla Berglund
7420814fe2 Win32: Poll only helper window messages at init 2016-10-25 21:25:04 +02:00
Camilla Berglund
8d6f265441 Update default name from OS X to macOS
Note that earlier releases are still referred to by their proper names;
OS X <version> or Mac OS X <version>.
2016-10-20 00:53:37 +02:00
Emmanuel Gil Peyrot
046d281abc Wayland: Implement compose key for character input
This commit has been copied almost verbatim from Bryce Harrington’s
patch against Weston’s toytoolkit[1].  He gave his agreement to
relicense it under zlib[2].

[1] https://patchwork.freedesktop.org/patch/114661/
[2] https://github.com/glfw/glfw/pull/879#issuecomment-252988257
2016-10-16 13:51:59 +01:00
Camilla Berglund
efc6b35615 Rename joystick ID variables 2016-10-16 14:07:18 +02:00
Sergey Tikhomirov
967e837c73 Cocoa: Fix 'first responder' error on macOS 10.12
Error message is displayed during the startup because Cocoa view is set
as the first responder for window but this view isn't in this window
(actually it is not in any window at all).

Fixes #876.
Closes #883.
2016-10-16 13:58:52 +02:00
Mário Freitas
238ebb600d Cocoa: Fix assert on disabling window aspect ratio
When disabling window aspect ratio, a system assert would trigger.  The
correct way to disable window aspect ratio is to set a resize increment.

Closes #852.
2016-10-14 01:05:23 +02:00
Emmanuel Gil Peyrot
a49601ba87 Wayland: Rename snake_case identifiers to camelCase for consistency 2016-10-12 14:13:52 +01:00
Emmanuel Gil Peyrot
aa10ec6e45 Wayland: Replace all deprecated xkbcommon aliases. 2016-10-11 01:49:23 +01:00
Emmanuel Gil Peyrot
be935debe9 Wayland: Properly unref all xkbcommon objects. 2016-10-11 01:49:23 +01:00
Emmanuel Gil Peyrot
1c8a74b661 Wayland: Properly destroy all bound objects. 2016-10-11 01:49:23 +01:00
Camilla Berglund
73ddbc3acd Cocoa: Add workaround for hasty deprecation 2016-10-09 13:11:52 +02:00
Camilla Berglund
7f9840cecf Cocoa: Fix macOS 10.12 deprecation warnings 2016-10-09 01:39:31 +02:00
Camilla Berglund
c156b50e4c Add glfwSetWindowMaximizeCallback
Fixes #778.
2016-09-29 01:24:56 +02:00
Camilla Berglund
434238fcd4 Fix checks for Vulkan surface extension presence 2016-09-29 01:24:56 +02:00
Kyle Brenneman
d590eb074f Add support for EGL_KHR_get_all_proc_addresses
If EGL_KHR_get_all_proc_addresses extension is supported, then don't try
to load a separate client library. Instead, just use eglGetProcAddress
to load everything.

This can also avoid problems with trying to use OpenGL functions from
libGL.so.1 (which is the GLX library) when an EGL context is current.

Closes #871.
2016-09-28 22:50:22 +02:00
Camilla Berglund
f0a55df963 Cleanup 2016-09-26 13:26:36 +02:00
Camilla Berglund
54930ddd33 Check only for relevant Vulkan extensions
Related to #858.
2016-09-14 22:59:03 +02:00
Camilla Berglund
3e59b7345c Fix early-out in Vulkan extension check
Related to #858.
2016-09-14 18:15:09 +02:00
Camilla Berglund
838c4e938c Win32: Allow iconifying undecorated windows
Fixes #861.
2016-09-14 18:12:21 +02:00
Camilla Berglund
f79a52fe9b Win32: Make glfwPostEmptyEvent use helper window 2016-09-14 13:07:52 +02:00
Emmanuel Gil Peyrot
2eb1657d91 Wayland: Only input a character on GLFW_PRESS action
Closes #804.
2016-09-13 13:09:25 +09:00
Camilla Berglund
e6a32db7b9 Cleanup 2016-09-07 16:49:29 +02:00
Brandon Schaefer
acce7ec9cf Mir: Add cursor mode support
Implements a few other missing functions. Cleaning up naming convention
as well.

Fix FindMir.cmake was not finding the correct mirclient.so when
you wanted something other then the system library.

Closes #839.
2016-09-07 16:49:29 +02:00
Camilla Berglund
bb3cb8f233 Cleanup
Clean up code and documentation for glfwGetKeyScancode and add
implementation for Wayland and Mir.

Related to #830.
2016-09-07 16:46:48 +02:00
Michael Stocker
e745b0dd47 Add glfwGetKeyScancode
Allows retrieval of platform scancode from GLFW_KEY_*.  Implemented for
Win32, Cocoa and X11.  Stubs for Mir and Wayland.

Closes #830.
2016-09-07 16:38:22 +02:00
Camilla Berglund
f17d60da64 Add scancode arrays for Wayland and Mir
Related to #830.
2016-09-07 16:33:41 +02:00
Camilla Berglund
afb6e485b7 X11: Make selection event checks include window 2016-09-07 16:33:41 +02:00
Camilla Berglund
ccfd6dde45 X11: Make clipboard IPC use helper window 2016-09-07 16:33:41 +02:00
Camilla Berglund
706868dad8 X11: Make glfwPostEmptyEvent use helper window 2016-09-07 16:33:41 +02:00
Camilla Berglund
3b3a1390ad X11: Add IPC helper window 2016-09-07 16:33:41 +02:00
Camilla Berglund
fafe1732b5 Cleanup 2016-09-07 16:33:41 +02:00
Camilla Berglund
5ff7d9505f Simplify Vulkan extension checks
Related to #478.
2016-09-07 16:31:18 +02:00
Camilla Berglund
9cd0c101f0 Fix glfwMaximizeWindow not checking window mode 2016-08-21 17:43:40 +02:00
Camilla Berglund
53fafad915 Start 3.3 2016-08-18 23:55:49 +02:00
Camilla Berglund
4aafdea5a7 X11: Fix glfw*WindowPos operating on window frame
Fixes #800.
2016-08-17 01:45:41 +02:00
Camilla Berglund
c18d3aecbc Cocoa: Remove duplicate includes
Fixes #838.
2016-08-17 01:39:47 +02:00
Camilla Berglund
f1c536fe13 X11: Fix BadMatch on XSetInputFocus
Input focus was in some cases set before the window was visible (ICCCM
section 4.2.2).

Related to #798.
Fixes #789.
2016-08-12 14:01:03 +02:00
Camilla Berglund
ad9233e620 X11: Clean up event wait timeout logic
Simplify interface and implement timeout updating.
2016-08-12 13:33:21 +02:00
Camilla Berglund
f88a609000 X11: Only unmaximize visible windows 2016-08-12 13:33:21 +02:00
Camilla Berglund
b581799c9a Fix comment 2016-08-12 01:46:21 +02:00
Camilla Berglund
067d1d6935 Cleanup 2016-08-12 01:46:21 +02:00
Camilla Berglund
ada1fdc14d Formatting 2016-08-12 01:46:21 +02:00
Patrick Snape
74ed35792f Cocoa: Add missing call to removeObserver:
As noted in the documentation for NSDistributedNotificationCenter,
(under the Discussion heading) before an observer is deallocated a call
should be made to removeObserver: in order to ensure that the listener
is correctly removed from all observation pools.

Fixes #817.
Closes #826.
2016-08-08 16:57:24 +02:00
Camilla Berglund
25914d381a Fix glfwVulkanSupported emitting errors
Regression caused by 614debd13f.
2016-08-05 11:50:05 +02:00
Camilla Berglund
fcdef1d0a0 Fix potential context resource leaks
There is a gap between the creation of the context and the call to
_glfwRefreshContextAttribs.
2016-08-05 11:23:05 +02:00
Camilla Berglund
1d3240ff9c Fix Vulkan header macro not breaking compilation
Fixes #823.
2016-08-05 01:32:23 +02:00
Camilla Berglund
7c3706763a Cleanup
Cleanup of 8bdb105897.

Add build macro to configuration header and documentation.  Add
corresponding CMake option.  Add change log entry and credit.  Add
loader static library to link dependencies and add detection to
FindVulkan.cmake.
2016-08-05 01:00:08 +02:00
Philip Rideout
8bdb105897 Add _GLFW_VULKAN_STATIC build macro
This allows clients to link GLFW with a staticly-built loader library.
This is useful in hermetic build systems that build the Khronos loader
from source, rather than depending on the LunarG SDK binaries.

Closes #820.
2016-08-04 18:24:41 +02:00
Camilla Berglund
e77a76a284 Cleanup 2016-08-04 13:19:22 +02:00
Camilla Berglund
52e47b5a53 Formatting 2016-08-02 15:39:01 +02:00
Camilla Berglund
7be62631ae Cleanup 2016-08-01 23:13:11 +02:00
Camilla Berglund
d2686c8413 Fix comment 2016-08-01 23:13:11 +02:00
Camilla Berglund
cba652e4f3 Cleanup 2016-08-01 23:13:11 +02:00
Camilla Berglund
370cd14b46 Comment work 2016-08-01 23:13:11 +02:00
Camilla Berglund
06a6629eef EGL: Fix missing include 2016-08-01 23:13:11 +02:00
Camilla Berglund
a19490c291 Cleanup
Cleanup of a42d27011b3ef1e6229a1b83aaa075727a5521f3.
2016-08-01 23:13:11 +02:00
Keringar
d4eb88b255 X11: Fix application of window size limits
Closes #805.
2016-08-01 23:12:05 +02:00