Commit Graph

186 Commits

Author SHA1 Message Date
Camilla Berglund
797ee8d8e3 Move all cursor positioning to platform code
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.
2016-05-29 15:33:49 +02:00
Camilla Berglund
0e846883bf Clarify cursor position variable names 2016-05-27 02:39:03 +02:00
Camilla Berglund
ef80beab81 Add run-time context creation API selection
Fixes #145.
2016-05-04 17:00:07 +02:00
Camilla Berglund
135ed7feb4 Fix build on legacy MinGW 2016-03-31 15:04:25 +02:00
Camilla Berglund
bd345164d3 Fix missing constant on VC++ 2010 2016-03-31 13:07:06 +02:00
Camilla Berglund
7cbdae1bed Add initial DirectInput 8 support
Fixes #232.
2016-03-31 12:24:01 +02:00
Camilla Berglund
eb3577c1eb Add initial XInput support 2016-03-31 12:12:04 +02:00
Camilla Berglund
5661d03be8 Replace GLFWuint64 with uint64_t
C99 stdint.h is provided by VS 2010 and later.  GLFW has not provided
testing or binaries for VS 2008 for several releases.

For earlier versions of VS there are third-party alternatives:

https://msinttypes.googlecode.com/svn/trunk/stdint.h
http://www.azillionmonkeys.com/qed/pstdint.h

This change does not affect the ABI.
2016-03-28 12:34:44 +02:00
Camilla Berglund
6570d0c4b7 Add glfwSetWindowMonitor
This adds the ability to switch between windowed and full screen modes,
move a full screen window between monitors and update its desired
resolution and refresh rate.

Fixes #43.
2016-03-18 11:13:24 +01:00
Camilla Berglund
b823f7151e Add glfwSetWindowIcon
Adds support for setting window icons programmatically on platforms
where this makes sense.

Fixes #453.
Closes #467.
2016-03-10 17:26:26 +01:00
Camilla Berglund
31f67dd3cc Add glfwGetTimerValue and glfwGetTimerFrequency
This adds raw timer access to the public API and builds the
floating-point time functions on top.  It also makes the GLFWuint64 type
public.
2016-03-06 11:51:23 +01:00
Camilla Berglund
d956dbbd2c Cleanup 2016-02-23 11:06:55 +01:00
Camilla Berglund
9b75bffc88 Add basic Vulkan support
Added GLFW_INCLUDE_VULKAN.  Added glfwVulkanSupported,
glfwGetRequiredInstanceExtensions, glfwGetInstanceProcAddress,
glfwGetPhysicalDevicePresentationSupport and glfwCreateWindowSurface.
Added port of LunarG SDK tri example.
2016-02-16 14:58:58 +01:00
Ioannis Tsakpinis
06899bd9a6 Fix SetProcessDpiAwareness case mismatch
Closes #678.
2015-12-30 15:31:55 +01:00
Camilla Berglund
7fec7a0569 Make source file names more consistent
Use platform prefix for files specific to that platform AND that have no
credible alternative API on that platform.

The exception is WinMM, which will be replaced before 3.2.
2015-12-13 14:51:44 +01:00
Camilla Berglund
12b6c56903 Add suffixes to platform specific helper functions
Also merge win32_tls.h into win32_platform.h.
2015-12-13 14:50:59 +01:00
Camilla Berglund
02fdd6459e Make EGL backend more readable 2015-12-13 14:49:55 +01:00
Camilla Berglund
75f1dfaf8a Move DWM enabled test to file where it is used 2015-12-09 19:39:16 +01:00
Camilla Berglund
4cd493dd9a Add Win32 helper window 2015-11-23 20:48:51 +01:00
Camilla Berglund
27462c1078 Cleanup 2015-11-10 13:43:55 +01:00
Camilla Berglund
9c315412e1 Add glfwGetKeyName
Fixes #464.
2015-11-09 14:46:09 +01:00
Camilla Berglund
9f3636a103 Add partial support for Windows 8.1 per-monitor DPI
Related to #235.
2015-11-01 17:39:21 +01:00
Camilla Berglund
23bf1b530b Move all WGL weirdness to Win32 code 2015-10-28 02:08:01 +01:00
Camilla Berglund
d84772d620 Add size limits and aspect ratio functions
Fixes #555.
2015-10-18 17:18:29 +02:00
Camilla Berglund
0eccf75f65 Replace GL booleans with public macros 2015-10-13 00:46:02 +02:00
Camilla Berglund
95a07f3340 Start 3.2 2015-10-12 21:59:49 +02:00
Camilla Berglund
842aeb8c47 Make Win32 video mode enumeration faster 2015-10-04 13:51:35 +02:00
Camilla Berglund
bfe55118dd Fixed name of Win32 cursor tracking flag. 2015-07-14 15:45:22 +02:00
Camilla Berglund
a257e7a3ee Removed caching of Win32 window styles. 2015-06-08 16:10:07 +02:00
Camilla Berglund
ff67e06844 Added prefixes to header guard macros. 2015-06-07 19:32:24 +02:00
Camilla Berglund
38ae319bea Header inclusion cleanup. 2015-05-28 01:52:22 +02:00
Camilla Berglund
8309e0ecb0 Use DwmFlush when DWM is enabled.
Use DwmFlush instead of WGL_EXT_swap_control when desktop compositing is
enabled, to avoid the jitter of DWM and WGL vsync fighting.

Fixes #516.
2015-05-21 18:28:53 +02:00
Camilla Berglund
dcc78017b0 Fixed iconification event for maximized windows. 2015-01-06 15:36:15 +01:00
Camilla Berglund
d459145d28 Made glfwGetCursorPos query system directly.
Fixes #103.
Fixes #153.
Fixes #193.
Fixes #355.
Fixes #381.
2015-01-04 16:54:19 +01:00
Camilla Berglund
1495134398 Changed all key translation to arrays. 2014-12-15 21:55:17 +01:00
Camilla Berglund
49ec306a0a Added glfwGet*Adapter to native API. 2014-10-29 02:55:02 +01:00
Camilla Berglund
99cedceef5 Expose display device name as UTF-8.
This makes interaction with libOVR simpler, as it provides the display
device name in the same encoding.
2014-09-16 18:28:08 +02:00
Camilla Berglund
1b6d8a6ed6 Enabled enumeration of mirroring displays.
This exposes all monitors in every mirroring group, which is needed for
robust detection of an Oculus Rift.
2014-09-16 18:27:33 +02:00
Camilla Berglund
f8d80a936f Internal header cleanup. 2014-09-02 19:47:29 +02:00
Camilla Berglund
c85294e0b2 Window class cleanup. 2014-08-31 14:21:55 +02:00
Camilla Berglund
82dc6c8b8f Removed option to disable loading of winmm. 2014-08-31 13:51:21 +02:00
Camilla Berglund
d5cf713c20 Clarified comment on APIENTRY hack. 2014-08-21 19:29:04 +02:00
Camilla Berglund
7c925353a5 Renamed context module headers. 2014-04-08 17:47:38 +02:00
Camilla Berglund
17d9051b82 Separated time state from window system state. 2014-04-08 17:47:38 +02:00
Camilla Berglund
660034332d Separated joystick state from window system state.
This is partially in preparation for pending support for additional
joystick APIs like XInput, DirectInput and IOHID.
2014-04-08 16:07:21 +02:00
Camilla Berglund
ebb7145ccc Fixed VC++ warnings. 2014-03-31 22:33:22 +02:00
Camilla Berglund
78efc18079 Split out TLS code into separate modules.
This allows the TLS code to be re-used by partial ports like EGL.
2014-03-30 15:24:09 +02:00
urraka
40c04a7565 Added support for custom system cursors.
This adds 3 functions to the GLFW API: glfwCreateCursor,
glfwDestroyCursor and glfwSetCursor.
2014-03-20 11:30:27 +01:00
Camilla Berglund
596b1e69ce Fixes for legacy MinGW 4.2. 2014-03-06 23:33:09 +01:00
Camilla Berglund
76eefcc08a Moved some VC++ specific hacks to platform header. 2014-03-06 21:05:55 +01:00
Camilla Berglund
96433cdf19 Fixed meaningless Win32 video mode restore. 2014-02-13 14:25:55 +01:00
Camilla Berglund
d0d2332193 WINVER fixes for MinGW and VC++. 2014-02-10 21:12:20 +01:00
Camilla Berglund
cf177905e5 Allowed drops from less privileged processes.
By default, UAC will prevent less privileged processes from sending
these messages.  This resolves that on Windows 7 and later.  Windows
Vista is still affected by this issue, as it has UAC but lacks
ChangeWindowMessageFilterEx.

Fixes #227.
2014-02-10 15:13:05 +01:00
Camilla Berglund
611006af18 Updated API version in comment headers. 2014-01-22 01:32:00 +01:00
Camilla Berglund
0163bc05d6 Moved internal context function declarations. 2014-01-22 01:23:35 +01:00
Camilla Berglund
8f349e84ae Cleaned up drop callback design. 2014-01-21 18:23:25 +01:00
arturo
89d0723ba3 Initial drag and drop support. 2014-01-21 15:25:49 +01:00
Camilla Berglund
7af99bce88 Fixed cursor centering for odd window sizes. 2013-11-13 12:39:40 +01:00
Camilla Berglund
7d1ae7aea7 Cleaned up Win32 timer. 2013-10-28 12:14:50 +01:00
Camilla Berglund
3415f3ccde Conditionally define API version macros. 2013-09-13 12:27:43 +02:00
Camilla Berglund
b998d4fe01 Fixed _WIN32_WINNT not being set to Windows XP. 2013-09-03 13:38:16 +02:00
Camilla Berglund
3cfc400cf9 Simplified source file comment headers. 2013-07-30 14:46:52 +02:00
Camilla Berglund
7f2eb7b15b New joystick API. 2013-05-22 21:56:14 +02:00
Camilla Berglund
f5ba0d9f22 Video mode setting cleanup. 2013-04-21 21:28:07 +02:00
Camilla Berglund
ace0a8ef28 Fixed type for cached cursor coords. 2013-04-21 16:28:46 +02:00
Camilla Berglund
6164eb603b Added tracking of cursor visibility. 2013-04-14 15:41:34 +02:00
Camilla Berglund
d4a61bbd36 Removed unused type. 2013-04-08 13:59:04 +02:00
Camilla Berglund
98063d2957 Replaced NULL with EGL_DEFAULT_DISPLAY. 2013-04-08 03:25:05 +02:00
Camilla Berglund
51ee3a5c0a No swap interval on composition. 2013-03-11 21:07:29 +01:00
Camilla Berglund
54d1d14f59 Added setting of Windows DPI-aware flag. 2013-03-11 19:01:33 +01:00
Camilla Berglund
a591cdeba6 Removed platform-specific resources from monitor. 2013-02-20 18:15:03 +01:00
Camilla Berglund
107e20233d Fixed incomplete function renaming. 2013-02-04 08:27:30 +01:00
Camilla Berglund
231ee1bdc7 Removed cached instance handle. 2013-02-01 04:05:12 +01:00
Camilla Berglund
3a871b9edb Added EGL errors to output, added EGL init to Win32. 2013-01-16 20:10:17 +01:00
Camilla Berglund
46c1e4028f Begun integrating mode setting and monitor API. 2013-01-03 17:56:59 +01:00
Camilla Berglund
1bc91bfe5b Formatting. 2013-01-02 17:07:04 +01:00
Camilla Berglund
d1132cb3d1 Fixed Win32 joystick name memory leak. 2013-01-02 01:52:28 +01:00
Camilla Berglund
b72a97d531 Renamed global struct and substructs.
Renamed _glfwLibrary to _glfw and made all substructs lower-case, making
global variable names easier to read and type.  Partially inspired by the
internal naming conventions of glwt.
2013-01-02 01:44:57 +01:00
Camilla Berglund
52dac79219 Ripped out horribly broken refresh rate mess. 2012-12-31 02:06:19 +01:00
Camilla Berglund
692f34b536 Merge branch 'master' into multi-monitor
Conflicts:
	include/GL/glfw3.h
	src/window.c
	tests/glfwinfo.c
2012-12-22 19:40:15 +01:00
Camilla Berglund
bd31ea0a69 WGL context option cleanup. 2012-12-13 22:50:55 +01:00
Camilla Berglund
73cdc34df7 Merge branch 'master' into multi-monitor
Conflicts:
	CMakeLists.txt
	readme.html
	src/CMakeLists.txt
	src/cocoa_platform.h
	src/win32_platform.h
	src/x11_platform.h
	tests/events.c
2012-12-02 20:52:03 +01:00
Camilla Berglund
5da8ed250a Cleanup of backend option strings. 2012-12-02 19:01:20 +01:00
Camilla Berglund
14e71833bd Merge branch 'master' into EGL 2012-12-02 17:11:17 +01:00
Camilla Berglund
821997ad55 Merge branch 'master' into joystickname 2012-12-02 16:36:44 +01:00
Camilla Berglund
69a900592e Added explicit support for sRGB framebuffers. 2012-12-02 16:10:00 +01:00
Camilla Berglund
41bc0d18f4 Merge branch 'master' into multi-monitor
Conflicts:
	include/GL/glfw3.h
	readme.html
	src/CMakeLists.txt
	src/win32_window.c
	src/window.c
	src/x11_window.c
	tests/clipboard.c
	tests/defaults.c
	tests/events.c
	tests/fsfocus.c
	tests/glfwinfo.c
	tests/joysticks.c
	tests/peter.c
	tests/sharing.c
	tests/tearing.c
	tests/title.c
	tests/windows.c
2012-11-27 16:55:04 +01:00
Camilla Berglund
34d383399c Finished initial window/context backend split. 2012-11-27 15:02:26 +01:00
Camilla Berglund
10cc85343a Formatting. 2012-11-27 13:38:21 +01:00
Camilla Berglund
b934cdf573 Begun preparations for Win32 EGL support. 2012-11-27 13:07:26 +01:00
m@bitsnbites.eu
1c21fc1383 Removed GLFW_SYSTEM_KEYS from the GLFW API
Rationale: Disabling system commands is inherently
dangerous, and should not be encouraged. Also, it's very
difficult to define and implement a reliable and
consistent cross-platform mechanism.
2012-11-10 22:20:47 +01:00
Camilla Berglund
7eff6b1b1e Initial implementation of joystick name retrieval on Win32. 2012-11-08 16:26:15 +01:00
Camilla Berglund
c83b336a4c Formatting. 2012-09-12 20:53:57 +02:00
Camilla Berglund
830f2b439c Cleanup. 2012-09-12 20:41:14 +02:00
Camilla Berglund
83f5b920b9 Merge branch 'master' into multi-monitor
Conflicts:
	.gitignore
	src/CMakeLists.txt
	src/x11_window.c
2012-09-12 06:04:17 +02:00
Camilla Berglund
52c27113d3 Shortened PC boolean name. 2012-09-02 15:21:40 +02:00
Camilla Berglund
854e634fec Merge branch 'master' into multi-monitor
Conflicts:
	include/GL/glfw3.h
	src/CMakeLists.txt
	src/fullscreen.c
	src/internal.h
	src/win32_fullscreen.c
	src/win32_platform.h
	src/x11_fullscreen.c
	tests/modes.c
2012-08-03 02:57:33 +02:00
Camilla Berglund
fc74a5533e Moved WGL context logic into OpenGL module. 2012-07-31 22:48:28 +02:00
Camilla Berglund
db066b4f46 Win32 Unicode fixes. 2012-07-06 14:04:57 +02:00
Camilla Berglund
c06f838d88 Merge branch 'master' into multi-monitor
Conflicts:
	.gitignore
	examples/CMakeLists.txt
	include/GL/glfw3.h
	src/CMakeLists.txt
	src/internal.h
	src/win32_platform.h
	src/win32_window.c
	src/x11_fullscreen.c
	src/x11_platform.h
	tests/listmodes.c
2012-07-05 16:15:01 +02:00