]>
git.tdb.fi Git - libs/gui.git/log
Mikko Rasa [Sun, 27 Nov 2022 10:08:07 +0000 (12:08 +0200)]
Include the matching header first in .cpp files
This helps ensure that the headers are complete. I haven't tested
building for non-Linux platforms at this time.
Mikko Rasa [Sun, 27 Nov 2022 09:57:24 +0000 (11:57 +0200)]
Make Window's functions non-virtual
The virtual keywords were left behind from the short-lived EventSource
abstraction over a decade ago.
Mikko Rasa [Sun, 27 Nov 2022 09:56:52 +0000 (11:56 +0200)]
Use the override specifier where appropriate
Mikko Rasa [Sun, 27 Nov 2022 09:40:46 +0000 (11:40 +0200)]
Remove destructor declarations from exception classes
Destructors are implicitly non-throwing in C++11 so these are no longer
necessary.
Mikko Rasa [Sun, 27 Nov 2022 09:21:01 +0000 (11:21 +0200)]
Streamline iterators and loop constructs
Use range-based for loops where appropriate and the auto type instead of
spelling out the entire iterator type.
Mikko Rasa [Sun, 27 Nov 2022 09:04:54 +0000 (11:04 +0200)]
Bump library version and use C++11 for building
Mikko Rasa [Sun, 27 Nov 2022 08:58:10 +0000 (10:58 +0200)]
Add dependency to mspdatafile
This should have been in
7302a06 .
Mikko Rasa [Sun, 27 Nov 2022 08:21:47 +0000 (10:21 +0200)]
Make ControlScheme's destructor virtual
Mikko Rasa [Sun, 20 Nov 2022 14:01:20 +0000 (16:01 +0200)]
Add constants for mouse axes and buttons
Mikko Rasa [Sat, 19 Nov 2022 22:05:12 +0000 (00:05 +0200)]
Add classes for storing and applying bindings to controls
Mikko Rasa [Sat, 19 Nov 2022 11:52:09 +0000 (13:52 +0200)]
Add functions to look up subdevices of composite input devices
Mikko Rasa [Sat, 19 Nov 2022 10:10:14 +0000 (12:10 +0200)]
Add conversions to/from string for key names and device types
Mikko Rasa [Thu, 17 Nov 2022 22:37:17 +0000 (00:37 +0200)]
Keep track of edges in Control
This offers a way to reliably tell if a control was actuated for
applications which don't want to use the signal interface.
Mikko Rasa [Thu, 17 Nov 2022 09:54:28 +0000 (11:54 +0200)]
Add a type enumeration for devices
This will help in storing control bindings in a way that isn't tied to
a particular instance of a device.
Mikko Rasa [Thu, 17 Nov 2022 09:41:50 +0000 (11:41 +0200)]
Go back to using vector to store devices in a Hub
Hashed names generate ridiculously large button and axis indices, and
Device stores them all in vectors. The predictability issue will be
solved in a different way.
Mikko Rasa [Thu, 1 Sep 2022 19:46:47 +0000 (22:46 +0300)]
Add flag for tessellation shaders in Vulkan context
Mikko Rasa [Wed, 16 Mar 2022 10:13:48 +0000 (12:13 +0200)]
Automatically break into debugger on Vulkan errors
Mikko Rasa [Wed, 16 Mar 2022 10:13:11 +0000 (12:13 +0200)]
Adjust Vulkan debug message output
All the information seems to already be included in the message, so
printing it is unnecessary.
Also include informational messages.
Mikko Rasa [Wed, 16 Mar 2022 10:07:17 +0000 (12:07 +0200)]
Select the correct physical device for Vulkan context
Mikko Rasa [Sun, 12 Dec 2021 11:01:15 +0000 (13:01 +0200)]
Add an option for enabling geometry shaders on Vulkan
Mikko Rasa [Sat, 20 Nov 2021 10:36:07 +0000 (12:36 +0200)]
Add a class for creating Vulkan graphics contexts
Mikko Rasa [Wed, 17 Nov 2021 12:39:02 +0000 (14:39 +0200)]
Change call to hash function
Mikko Rasa [Tue, 2 Nov 2021 09:57:01 +0000 (11:57 +0200)]
Formatting fix
Mikko Rasa [Tue, 2 Nov 2021 09:56:23 +0000 (11:56 +0200)]
Add a function to detect image signature without creating a loader
Mikko Rasa [Tue, 2 Nov 2021 09:56:07 +0000 (11:56 +0200)]
Load image signature directly into a string
Mikko Rasa [Tue, 2 Nov 2021 09:55:40 +0000 (11:55 +0200)]
Use the append function to build hex dump
Mikko Rasa [Tue, 2 Nov 2021 09:55:06 +0000 (11:55 +0200)]
Use size_t for I/O operation sizes
Mikko Rasa [Tue, 2 Nov 2021 09:54:42 +0000 (11:54 +0200)]
Adapt to container type change in mspcore
Mikko Rasa [Sun, 7 Feb 2021 16:15:18 +0000 (18:15 +0200)]
Make it possible to load an image into an externally allocated buffer
Mikko Rasa [Sun, 7 Feb 2021 16:13:51 +0000 (18:13 +0200)]
Split image loading into headers and pixels
Mikko Rasa [Sun, 7 Feb 2021 14:36:12 +0000 (16:36 +0200)]
Add some state checking to ImageLoader
Reject attemps to call load again on the same loader
Mikko Rasa [Sun, 7 Feb 2021 14:23:20 +0000 (16:23 +0200)]
Revert some changes which accidentally got included in
d3bc6c9
Mikko Rasa [Sun, 7 Feb 2021 13:49:22 +0000 (15:49 +0200)]
Clear Image data before loading a new image
Mikko Rasa [Sun, 7 Feb 2021 13:24:02 +0000 (15:24 +0200)]
Rename Image::Data::data to pixels
And get_data to get_pixels accordingly
Mikko Rasa [Sun, 31 Jan 2021 15:19:42 +0000 (17:19 +0200)]
Register image loaders more explicitly
The automatic registration just doesn't work reliably enough; there was
already a hack to work around the problems, so might as well make that
the official way.
Mikko Rasa [Sun, 31 Jan 2021 15:18:37 +0000 (17:18 +0200)]
Fix BMP loader signature check
Mikko Rasa [Mon, 25 Jan 2021 23:30:56 +0000 (01:30 +0200)]
Add support for using the latest available OpenGL version
Mikko Rasa [Mon, 25 Jan 2021 23:28:33 +0000 (01:28 +0200)]
Fix compile errors from function casts in wgl
Recent gcc versions don't like casting directly between incompatible
function types.
Mikko Rasa [Sat, 21 Sep 2019 11:05:53 +0000 (14:05 +0300)]
Don't apply user position in fullscreen mode
Mikko Rasa [Sat, 21 Sep 2019 11:05:29 +0000 (14:05 +0300)]
Put Window on the correcte monitor when initially created
Mikko Rasa [Fri, 20 Sep 2019 22:26:38 +0000 (01:26 +0300)]
Generate synthetic key release events for repeated keys on Windows
The OS only sends WM_KEYDOWN messages as long as the key is pressed.
Mikko Rasa [Wed, 18 Sep 2019 15:04:33 +0000 (18:04 +0300)]
Handle WM_SYSKEYDOWN, WM_SYSKEYUP and WM_SYSCHAR events
Windows sends F10 and alt presses using these instead of the usual
messages.
Mikko Rasa [Mon, 17 Jun 2019 22:34:52 +0000 (01:34 +0300)]
Use Get/SetWindowLongPtr
Since sizeof(long) != sizeof(void *) on Windows, the non-Ptr versions do
not work properly on 64-bit Windows.
Mikko Rasa [Sun, 9 Jun 2019 10:59:59 +0000 (13:59 +0300)]
Add a core profile flag to OpenGL context options
Mikko Rasa [Thu, 6 Jun 2019 09:39:00 +0000 (12:39 +0300)]
Sort game controller devices for consistency
Directory order might change as devices are plugged in and removed.
Mikko Rasa [Thu, 6 Jun 2019 09:32:35 +0000 (12:32 +0300)]
Match against current rate if no request for a specific rate was made
Mikko Rasa [Thu, 6 Jun 2019 09:29:49 +0000 (12:29 +0300)]
Initialize monitor.current_settings on Windows
Mikko Rasa [Thu, 5 Jul 2018 14:27:23 +0000 (17:27 +0300)]
Fix image signature comparisons
The standard states that if a length is not given, the character array
must be nul-terminated.
Mikko Rasa [Wed, 20 Jun 2018 10:30:35 +0000 (13:30 +0300)]
Fix sizeof(jpeg_sig)
Initializing a char array with a string literal appends a nul byte at the
end, which is not something we want.
Mikko Rasa [Mon, 4 Dec 2017 20:18:49 +0000 (22:18 +0200)]
Implement the required virtual functions in JsDevice
Mikko Rasa [Sun, 8 Jan 2017 11:40:46 +0000 (13:40 +0200)]
Initialize longjmp target before calling jpeg_create_decompress
Mikko Rasa [Fri, 6 Jan 2017 02:55:34 +0000 (04:55 +0200)]
Use correct keyword in forward declaration
Mikko Rasa [Fri, 25 Nov 2016 21:18:05 +0000 (23:18 +0200)]
Alter the starting condition for gestures
This makes pinch and rotate in particular easier to perform.
Mikko Rasa [Fri, 25 Nov 2016 11:21:50 +0000 (13:21 +0200)]
Only hide and show the window on fullscreen change if it was visible
Mikko Rasa [Fri, 25 Nov 2016 11:21:18 +0000 (13:21 +0200)]
Fix incorrect comparisons
Mikko Rasa [Sat, 5 Nov 2016 15:07:59 +0000 (17:07 +0200)]
Create a temporary context for calling wglGetProcAddress
Mikko Rasa [Sat, 5 Nov 2016 12:28:36 +0000 (14:28 +0200)]
Add a missing include for GLContext on Windows
Mikko Rasa [Wed, 2 Nov 2016 21:27:10 +0000 (23:27 +0200)]
Use the name of the function for the SwapInterval function pointers
Mikko Rasa [Wed, 2 Nov 2016 21:23:35 +0000 (23:23 +0200)]
Support forward-compatible OpenGL contexts
Mikko Rasa [Sat, 29 Oct 2016 12:01:01 +0000 (15:01 +0300)]
Improve cursor hiding logic on Windows
Only hide it when it's in the client area of the window
Mikko Rasa [Fri, 7 Oct 2016 22:27:56 +0000 (01:27 +0300)]
Fix a memory leak
Mikko Rasa [Sun, 2 Oct 2016 21:10:01 +0000 (00:10 +0300)]
Add support for swap interval control
Mikko Rasa [Tue, 20 Sep 2016 08:14:07 +0000 (11:14 +0300)]
Implement game controllers on Windows through XInput
Mikko Rasa [Mon, 19 Sep 2016 20:39:14 +0000 (23:39 +0300)]
Enumerate available game controllers
Assign indices from zero to N-1 internally. This makes it easier for
applications to use game controllers as the first available controller
will always have index zero.
Mikko Rasa [Mon, 19 Sep 2016 20:36:51 +0000 (23:36 +0300)]
Fix GameController multiple inclusion guards
Mikko Rasa [Mon, 19 Sep 2016 20:31:45 +0000 (23:31 +0300)]
Implement three-finger tap and drag gestures
Mikko Rasa [Mon, 19 Sep 2016 20:30:14 +0000 (23:30 +0300)]
Refactor GestureDetector logic
Active_points only ever had the one or two bottom bits set and always
matched current gesture. It's simpler to just use the number of points
for the gesture.
Mikko Rasa [Mon, 19 Sep 2016 17:51:32 +0000 (20:51 +0300)]
Tweak GestureDetector button and axis names
Tap gesture buttons were missing names and the progress axis was outdated.
Mikko Rasa [Mon, 19 Sep 2016 17:32:45 +0000 (20:32 +0300)]
Add touchscreen and gestures to the event test program
Mikko Rasa [Mon, 19 Sep 2016 17:32:22 +0000 (20:32 +0300)]
Add focus events to the event test program
Mikko Rasa [Sat, 17 Sep 2016 15:47:36 +0000 (18:47 +0300)]
Paint the window in WM_PAINT
Failing to do so will result the application in getting stuck in the
event loop.
Mikko Rasa [Fri, 16 Sep 2016 23:08:45 +0000 (02:08 +0300)]
Implement additional fullscreen options for Window
Mikko Rasa [Fri, 16 Sep 2016 23:00:36 +0000 (02:00 +0300)]
Retain monitor positions when setting non-exclusive modes
Trying to rearrange the monitors was a stupid idea, as it can easily mess
up the user's configuration.
Mikko Rasa [Fri, 16 Sep 2016 21:43:15 +0000 (00:43 +0300)]
Remove names from unused parameters
Mikko Rasa [Fri, 16 Sep 2016 21:34:26 +0000 (00:34 +0300)]
Refactor storage of monitor settings
Mikko Rasa [Thu, 15 Sep 2016 21:12:26 +0000 (00:12 +0300)]
Remove glViewport calls from GLContext
They've been broken for a long time with mspgl, probably since
framebuffer objects were implemented. The new GL::View class
takes care of viewport size syncing better.
Mikko Rasa [Thu, 15 Sep 2016 17:22:06 +0000 (20:22 +0300)]
Get monitor names from EDID if available
Mikko Rasa [Tue, 2 Aug 2016 21:00:51 +0000 (00:00 +0300)]
Swap fullscreen mode dimensions if the desktop is rotated
Mikko Rasa [Mon, 25 Jul 2016 21:51:09 +0000 (00:51 +0300)]
Implement a loader for BMP images
Mikko Rasa [Sat, 23 Jul 2016 15:50:32 +0000 (18:50 +0300)]
Don't leak memory if JsDevice constructor throws
Mikko Rasa [Thu, 21 Jul 2016 00:01:03 +0000 (03:01 +0300)]
Add support for blocking ticks and EventDispatcher in GameController
Note: the parameterless tick() method was previously non-blocking but now
blocks until an event is received.
Mikko Rasa [Sun, 7 Feb 2016 13:53:19 +0000 (15:53 +0200)]
Track the currently focused window in Display
On mobile platforms it's important for applications to stop rendering or
otherwise using excessive amounts of CPU power when inactive.
OS X code is a dummy implementation because I need more time to understand
the relevant events on that platform.
Mikko Rasa [Sat, 30 Jan 2016 19:31:27 +0000 (21:31 +0200)]
Support some additional keys
In particular, the standard keys on Android devices are now supported.
Mikko Rasa [Sat, 30 Jan 2016 18:36:42 +0000 (20:36 +0200)]
Check for event type and source in Android touchscreen driver
Mikko Rasa [Sun, 20 Dec 2015 13:45:53 +0000 (15:45 +0200)]
Add missing initializer
Mikko Rasa [Sun, 20 Dec 2015 13:45:40 +0000 (15:45 +0200)]
Cosmetic fixes
Mikko Rasa [Sun, 20 Dec 2015 13:45:12 +0000 (15:45 +0200)]
Windows compilation fixes
Mikko Rasa [Sun, 20 Dec 2015 13:44:15 +0000 (15:44 +0200)]
Allow configuring window positions as well
Mikko Rasa [Sun, 20 Dec 2015 13:43:35 +0000 (15:43 +0200)]
Track window positions
Mikko Rasa [Sun, 20 Dec 2015 13:15:15 +0000 (15:15 +0200)]
Store the root window's ID in display private data
Mikko Rasa [Sun, 20 Dec 2015 11:39:49 +0000 (13:39 +0200)]
Close the game controller device when deleting the object
Mikko Rasa [Wed, 25 Nov 2015 18:05:53 +0000 (20:05 +0200)]
Use libjpeg's boolean type for better compatibility
Libjpeg 9 changed to an enum boolean type.
Mikko Rasa [Mon, 23 Nov 2015 17:57:11 +0000 (19:57 +0200)]
Implement tap gestures
Mikko Rasa [Sat, 21 Nov 2015 09:58:39 +0000 (11:58 +0200)]
Implement additional two-finger gestures
Mikko Rasa [Sat, 21 Nov 2015 08:34:01 +0000 (10:34 +0200)]
Combine swipe gestures into a single drag gesture
This makes them more versatile for different kinds of control schemes.
Directional swipes can still be approximated through the Control
interface. Capturing swipe gestures is no longer easily possible, but
the capture interface is due for a rewrite to support activator controls
anyway.
Mikko Rasa [Sat, 21 Nov 2015 07:18:04 +0000 (09:18 +0200)]
Improve detection of the pinch gesture
Previously it was way too lenient about rotational movement of the points.
Mikko Rasa [Thu, 19 Nov 2015 21:12:38 +0000 (23:12 +0200)]
Refactor GestureDetector and add some comments to it
Mikko Rasa [Wed, 21 Oct 2015 10:03:59 +0000 (13:03 +0300)]
Store monitor names
Mikko Rasa [Wed, 21 Oct 2015 10:02:16 +0000 (13:02 +0300)]
Use a tighter threshold when checking for duplicate modes
Some display devices offer modes with refresh rates very close to each
other, such as 24.00 and 23.97. These differences may nevertheless be
important for video content.
Mikko Rasa [Tue, 20 Oct 2015 16:31:41 +0000 (19:31 +0300)]
Use float rather than unsigned for refresh rate
Display::set_mode now accepts a rate which is within +-0.5 Hz of
requested and chooses the closest match if there are more than one.