Commit Graph

119 Commits

Author SHA1 Message Date
Camilla Löwy
3d9d4e311c Win32: Fix OSMesa library not being unloaded
(cherry picked from commit 10e9033a29)
2022-06-09 19:42:44 +02:00
Camilla Löwy
de550b60e5 Win32: Fix using executable instance and not ours
Operations that take an instance handle should be passed the handle of
whatever module we are inside instead of blindly passing the handle of
the executable.

This commit makes GLFW retrieve its own instance on initialization.

This makes the most difference for window classes, which are
per-instance.  Using the executable instance led to name conflicts if
there were several copies of GLFW in a single process.

Note that having this is still a bad idea unless you know what things to
avoid, and those things are mostly platform-specific.  This is partly
because the library wasn't designed for it and partly because it needs
to save, update and restore various per-process and per-session settings
like current context and video mode.

However, multiple simultaneous copies of GLFW in a single Win32 process
should now at least initialize, like is already the case on other
platforms.

Fixes #469
Fixes #1296
Fixes #1395
Related to #927
Related to #1885

(cherry picked from commit 07a5518c3e)
2022-05-06 19:34:05 +02:00
Camilla Löwy
c2ccf6f919 Win32: Fix glfwGetKeyScancode for GLFW_KEY_PAUSE
The bug described in 03cfe957e7 was
already present for another key where modifiers changes its scancode.

Related to #1993

(cherry picked from commit 8d9231fe5e)
2022-05-06 19:34:04 +02:00
Camilla Löwy
5688fb19e6 Win32: Update rationale for reimplementation
It is true that plain MinGW lacks this header, but that is not the main
reason for reimplementing IsWindowsVersionOrGreater.

(cherry picked from commit aa803f7de5)
2022-03-20 16:02:08 +01:00
Camilla Löwy
d1269c1b7d Win32: Fix calls to encoding compatibility macros
Calls to Unicode specific functions should be made explicit.

(cherry picked from commit 8ff9ed92b4)
2022-03-20 16:00:34 +01:00
Camilla Löwy
541b151cff Win32: Fix maximization showing a hidden window
The normal way of maximizing a window also makes it visible.  This
implements window maximization manually for when the window passed to
glfwMaximizeWindow is hidden.

This will very likely not be forward-compatible and should be replaced.

(cherry picked from commit 723f3eb40d)
2022-03-20 15:57:10 +01:00
Camilla Löwy
ca676357c0 Win32: Remove timeGetTime fallback for timer
The performance counter API is guaranteed to succeed on Windows XP and
later so there is no need for a fallback.

This removes our last dependency on winmm.

(cherry picked from commit b6834bf2a1)
2021-10-28 12:24:38 +02:00
Richard Boldiš
1d7339f3fc Win32: Fix invalid preprocessor command 'warning'
The GCCism #warning had snuck into the Win32 platform code.

Merges #1953.

(cherry picked from commit 2ac7e20aaf)
2021-08-27 17:20:00 +02:00
Camilla Löwy
b39c02b118 Win32: Add warning when option will have no effect
The GPU driver only looks in the executable for the symbol requesting
the high-performance GPU, so enabling them when buidling GLFW as a DLL
will have no effect.

(cherry picked from commit 52ba8c7f07)
2021-03-21 23:23:17 +01:00
Camilla Löwy
8363179eee Win32: Disable fb transparency when it is broken
On Windows 7, when GLFW framebuffer transparency and the DWM are enabled
but DWM transparency is disabled (i.e. when the Transparency setting is
disabled under Personalization > Color), the contents of the framebuffer
is combined with the last frame using additive blending instead of
replacing the previous contents.

This commit limits GLFW framebuffer transparency on Windows 7 to when
DWM transparency is enabled, removing the previous workaround of setting
a layered window color key that led to rendering artifacts.

Fixes #1512.

(cherry picked from commit 05dd2fa298)
2020-09-02 22:27:45 +02:00
luz.paz
13a4e4e810 Fix typos
Found via `codespell -q 3 -S ./deps -L fo,numer,te,uint,wille`

(cherry picked from commit 7105ff2dfd)
2019-09-23 15:27:17 +02:00
Camilla Löwy
04522580ad 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.

(cherry picked from commit 56aad76b16)
2019-05-27 16:33:22 +02:00
Camilla Löwy
ab118b2529 Fix copyright years (somewhat) 2019-04-15 20:50:00 +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
3461d1c2a5 Fix missing context APIs in version strings 2019-04-08 20:51:34 +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
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
096ace5a68 Clarify comment 2018-08-24 15:06:39 +02:00
przemekmirek
9f91bd6ea9 Win32: Fix HDEVNOTIFY handle leak
Closes #1170.
2018-01-05 08:12:51 +01: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
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
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
Camilla Löwy
25b7eba4a0 Win32: Clean up dynamic loading and version checks 2017-09-27 21:33:03 +02:00
Camilla Löwy
e3be6b8ae0 Cleanup
Break up some overly long lines.
2017-09-17 15:14:22 +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
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
b234e28d5d Win32: Stop exporting GUIDs from static library 2017-05-10 19:36:17 +02:00
Camilla Löwy
aaf2800c9c Add internal TLS support
Related to #970.
2017-03-19 00:52:46 +01:00
Camilla Löwy
97dbd8b63b Win32: Fix monitor event emission
Fixes #784.
2017-03-14 19:21:57 +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
260dbf0a1d Win32: Cleanup 2017-01-29 19:50:35 +01:00
Camilla Löwy
c28778e28c Win32: Improve platform error messages
Related to #733.
2017-01-20 01:35:24 +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
f656d95339 Documentation work 2016-12-15 20:21:07 +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
Camilla Löwy
f4d0c83181 Paperwork done 2016-11-30 14:00:41 +01:00
Camilla Berglund
7420814fe2 Win32: Poll only helper window messages at init 2016-10-25 21:25:04 +02:00
Camilla Berglund
e6a32db7b9 Cleanup 2016-09-07 16:49:29 +02:00
Camilla Berglund
53fafad915 Start 3.3 2016-08-18 23:55:49 +02:00
Camilla Berglund
e77a76a284 Cleanup 2016-08-04 13:19:22 +02:00
Camilla Berglund
d5e00e6b0f Initialize context creation APIs on demand 2016-07-20 13:10:51 +02:00
Camilla Berglund
0ff22e4a49 Win32: Fix GLFW_MAXIMIZED ignored by first window
Fixes #780.
2016-07-12 16:04:02 +02:00
Camilla Berglund
757eea2779 Update email address 2016-06-01 21:25:20 +02:00
Camilla Berglund
6a8e169001 Update copyright notice year 2016-06-01 21:25:19 +02:00
Camilla Berglund
03db3ed6e9 Cleanup 2016-05-30 21:19:00 +02:00
Camilla Berglund
ef80beab81 Add run-time context creation API selection
Fixes #145.
2016-05-04 17:00:07 +02:00
Camilla Berglund
7cbdae1bed Add initial DirectInput 8 support
Fixes #232.
2016-03-31 12:24:01 +02:00