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.
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.
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.
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.
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.
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.
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.
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.
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.
Due to Wayland, shared code cannot rely on cursor positioning being
supported by the underlying platform.
This implicitly fixes#617 as it moves cursor centering into
_glfwPlatformSetCursorMode, thus separating it from the stale value of
_glfw.cursorWindow.
Fixes#617.