]>
git.tdb.fi Git - libs/gui.git/log
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.
Mikko Rasa [Thu, 15 Oct 2015 23:18:17 +0000 (02:18 +0300)]
Add a signal for window exposure
Windows code is untested.
Mikko Rasa [Tue, 13 Oct 2015 19:59:01 +0000 (22:59 +0300)]
Export the xrandr feature
It's used in display_platform.h to optionally include some memberse in
DisplayPrivate.
Mikko Rasa [Mon, 13 Jul 2015 09:55:04 +0000 (12:55 +0300)]
Proper support for copying images
Mikko Rasa [Mon, 13 Jul 2015 09:54:06 +0000 (12:54 +0300)]
Handle interlaced PNG images
Mikko Rasa [Mon, 22 Dec 2014 14:38:00 +0000 (16:38 +0200)]
Fix the Windows version check in Touchscreen::is_available
Mikko Rasa [Fri, 19 Dec 2014 12:05:47 +0000 (14:05 +0200)]
Add a dedicated exception class for unavailable input devices
Mikko Rasa [Fri, 19 Dec 2014 12:05:07 +0000 (14:05 +0200)]
Add an availability check to Touchscreen
Mikko Rasa [Fri, 19 Dec 2014 03:26:04 +0000 (05:26 +0200)]
Dirty hack to pull the image loaders in when linking statically
I can't find any way to add metadata to the symbols to forcibly pull them
in, so this will have to do.
Mikko Rasa [Fri, 19 Dec 2014 03:24:52 +0000 (05:24 +0200)]
Add a helper class for registering image loaders
Mikko Rasa [Fri, 19 Dec 2014 03:07:10 +0000 (05:07 +0200)]
Avoid using too much CPU time in the event tester
Mikko Rasa [Fri, 19 Dec 2014 03:04:11 +0000 (05:04 +0200)]
Improve SmoothControl range API
Since gestures can generate axis values greater than one, the ability to
disable the upper threshold becomes necessary.
Mikko Rasa [Fri, 19 Dec 2014 02:56:33 +0000 (04:56 +0200)]
Add a gesture detector input device
Mikko Rasa [Fri, 19 Dec 2014 02:24:55 +0000 (04:24 +0200)]
Add an activator system to Control
Mikko Rasa [Fri, 19 Dec 2014 01:55:38 +0000 (03:55 +0200)]
Generate and handle WM_CHAR messages on Windows
Mikko Rasa [Fri, 19 Dec 2014 01:38:29 +0000 (03:38 +0200)]
Fix an incorrect all to set_button_state in Touchscreen::touch_up
Mikko Rasa [Fri, 19 Dec 2014 01:37:31 +0000 (03:37 +0200)]
Add a generic directory for fallback implementations
Mikko Rasa [Fri, 19 Dec 2014 01:30:41 +0000 (03:30 +0200)]
Add touchscreen support on Android
Mikko Rasa [Thu, 13 Nov 2014 20:41:09 +0000 (22:41 +0200)]
Inherit input devices using Window::signal_input_event from sigc::trackable
Mikko Rasa [Thu, 13 Nov 2014 20:40:25 +0000 (22:40 +0200)]
Touchscreen input device
Currently only implemented for Windows.
Mikko Rasa [Wed, 12 Nov 2014 20:46:21 +0000 (22:46 +0200)]
Initialize Display::primary_monitor to 0
Mikko Rasa [Wed, 12 Nov 2014 20:45:24 +0000 (22:45 +0200)]
Set window title to application name by default
Mikko Rasa [Wed, 12 Nov 2014 20:42:13 +0000 (22:42 +0200)]
Inherit sigc::trackable in Android's PlatformDisplayPrivate
Mikko Rasa [Sun, 12 Oct 2014 15:30:32 +0000 (18:30 +0300)]
Android support
Everything should work to some degree at least, though some details are
still missing.
Mikko Rasa [Sun, 12 Oct 2014 14:22:03 +0000 (17:22 +0300)]
Cosmetic changes
Mikko Rasa [Sun, 12 Oct 2014 14:18:57 +0000 (17:18 +0300)]
Drop the DrawContext class
I've never actually used it, and 2D graphics are all but dead. I don't
have any real interest of implementing it on other platforms either.
Mikko Rasa [Sun, 12 Oct 2014 14:12:40 +0000 (17:12 +0300)]
Correct the offset of function keys in the X11 keymap
Mikko Rasa [Sun, 12 Oct 2014 14:11:53 +0000 (17:11 +0300)]
Zero-initialize JsDevice name buffer to avoid valgrind warning
Mikko Rasa [Sun, 12 Oct 2014 14:11:04 +0000 (17:11 +0300)]
Avoid compiler warning for a declared but unused function
Mikko Rasa [Sun, 12 Oct 2014 14:09:13 +0000 (17:09 +0300)]
Create GLContext::priv later to avoid memory leaks
Mikko Rasa [Sun, 12 Oct 2014 13:54:29 +0000 (16:54 +0300)]
Let platform header determine (part of) the contents of Display::Private
This simplifies things a bit as there's no need to declare dummy typedefs
for MonitorHandle and ModeHandle if they are not used. It also makes the
upcoming Android support a lot easier to accomplish.
Mikko Rasa [Sat, 11 Oct 2014 13:26:06 +0000 (16:26 +0300)]
Subclass NSWindow to eat keyDown events so they won't beep
Mikko Rasa [Sat, 11 Oct 2014 13:24:36 +0000 (16:24 +0300)]
Fix application activation on OS X <10.6
Mikko Rasa [Sat, 11 Oct 2014 09:45:15 +0000 (12:45 +0300)]
Compatibility changes for building on OS X 10.5
Mikko Rasa [Sat, 11 Oct 2014 09:43:36 +0000 (12:43 +0300)]
Compile OS X .m files in C99 mode
Some features, such as // comments and mixed declarations and code, are
not compatible with ANSI C.
Mikko Rasa [Thu, 11 Sep 2014 09:37:22 +0000 (12:37 +0300)]
Add a game controller input device
Currently only implemented for Linux.
Mikko Rasa [Tue, 8 Apr 2014 16:03:32 +0000 (19:03 +0300)]
Fix build with XRandR headers not installed
Mikko Rasa [Tue, 8 Apr 2014 15:42:28 +0000 (18:42 +0300)]
Fix skipping bytes in JpegLoader
Bytes in the buffer are not considered as processed yet, and are included
in count.
Mikko Rasa [Fri, 24 Jan 2014 17:49:25 +0000 (19:49 +0200)]
Fill in more fields of DEVMODE to avoid a crash
Mikko Rasa [Wed, 22 Jan 2014 19:54:28 +0000 (21:54 +0200)]
Set panning when changing modes with XRandR
Apparently, certain sequences can confuse Nvidia drivers at least and
result in weird configurations if this is not done.
Mikko Rasa [Wed, 22 Jan 2014 19:52:21 +0000 (21:52 +0200)]
Only set resizing flag to true in Window::reconfigure
This ensures that multiple consecutive reconfigure calls with the same
size won't reset the flag to false and prevent resize signal emission.
Mikko Rasa [Sun, 12 Jan 2014 11:45:23 +0000 (13:45 +0200)]
Only restore mode if the window is still visible
Mikko Rasa [Sun, 12 Jan 2014 11:43:20 +0000 (13:43 +0200)]
Change video mode before reconfiguring the window
This prevents the window options from getting out of sync if the video
mode can't be set.
Mikko Rasa [Sun, 12 Jan 2014 10:58:39 +0000 (12:58 +0200)]
Expose functions for finding video modes from Display
Mikko Rasa [Sat, 11 Jan 2014 18:29:18 +0000 (20:29 +0200)]
Clear resizing flag on Windows when resizing completes
Mikko Rasa [Sat, 11 Jan 2014 18:28:50 +0000 (20:28 +0200)]
Remove some leftover XF86VidMode fragments
Mikko Rasa [Thu, 17 Oct 2013 07:43:46 +0000 (10:43 +0300)]
Remove an unused global variable
It was a remnant from an early stage of developing the window close
handling. The design in which it was used was discarded, but this
variable went unnoticed.
Mikko Rasa [Thu, 17 Oct 2013 07:40:01 +0000 (10:40 +0300)]
Use windowShouldClose rather than windowWillClose
This prevents a crash when the autorelease pool is released (no clue what
exactly goes wrong) and allows the application to decide whether to close
the window or not.
Mikko Rasa [Thu, 17 Oct 2013 07:38:15 +0000 (10:38 +0300)]
Tighten memory management in ObjC code
Mikko Rasa [Thu, 17 Oct 2013 07:13:38 +0000 (10:13 +0300)]
Return true to indicate the error was handled
Mikko Rasa [Wed, 16 Oct 2013 18:12:44 +0000 (21:12 +0300)]
Guard against no image loaders being enabled
Mikko Rasa [Fri, 11 Oct 2013 13:47:35 +0000 (16:47 +0300)]
Call setActivationPolicy to make non-bundled programs work
Mikko Rasa [Fri, 11 Oct 2013 09:52:43 +0000 (12:52 +0300)]
Avoid the unpadding loop with kCGImageAlphaNoneSkipFirst
The data looks like this:
X RGB X RGB X RGB X RGB ...
Ignoring the first padding byte allows treating it as RGBX. The padding
bytes move to different RGB triplets, but they're going to get ignored
anyway.
Mikko Rasa [Thu, 10 Oct 2013 20:49:06 +0000 (23:49 +0300)]
Add native libjpeg loader
Mikko Rasa [Thu, 10 Oct 2013 17:58:05 +0000 (20:58 +0300)]
Tweak QuartzLoader a bit
Apparently OS X 10.5 uses kCGImageStatusReadingHeader, while 10.8 uses
kCGImageStatusIncomplete. Also check that we actually got an image when
trying to load.
Mikko Rasa [Thu, 10 Oct 2013 17:55:47 +0000 (20:55 +0300)]
Add pixel formats with a padding component
Mikko Rasa [Thu, 10 Oct 2013 17:36:14 +0000 (20:36 +0300)]
Allow images to have padding between rows
Mikko Rasa [Tue, 8 Oct 2013 10:39:23 +0000 (13:39 +0300)]
Support for using Quartz to load images on OS X
Mikko Rasa [Mon, 7 Oct 2013 18:13:40 +0000 (21:13 +0300)]
Detect loading errors from DevIL
Mikko Rasa [Mon, 7 Oct 2013 18:13:15 +0000 (21:13 +0300)]
Implement automatic registration of image loaders
Mikko Rasa [Mon, 7 Oct 2013 16:43:02 +0000 (19:43 +0300)]
Use a RefPtr of correct type
Mikko Rasa [Mon, 7 Oct 2013 11:08:19 +0000 (14:08 +0300)]
Change the ImageLoader API to use IO::Seekable
Trying to operate on purely streamed I/O turns out to be more headache
than it's worth. I'll implement a generic adaptor in the IO namespace
if it's needed at a later point.
Mikko Rasa [Sun, 6 Oct 2013 16:50:30 +0000 (19:50 +0300)]
Fix the cocoa error dialog so that it actually compiles
Mikko Rasa [Sun, 6 Oct 2013 08:32:00 +0000 (11:32 +0300)]
Use logic operators to collapse nested conditionals in Build file
Mikko Rasa [Sat, 5 Oct 2013 23:00:57 +0000 (02:00 +0300)]
Make the image loading code more modular
Instead of being embedded in the Image class, there's now a separate
ImageLoader class with subclasses for each image type. In the future
some kind of plugin system may be implemented.
DevIL code was also extensively reworked to get rid of the need to read
the entire file to memory.
Mikko Rasa [Sat, 5 Oct 2013 12:20:18 +0000 (15:20 +0300)]
Implement graphical reporting for uncaught exceptions
Mikko Rasa [Tue, 1 Oct 2013 14:12:43 +0000 (17:12 +0300)]
Update .gitignore
Mikko Rasa [Tue, 1 Oct 2013 14:11:53 +0000 (17:11 +0300)]
Add OpenGL context support on OS X
Mikko Rasa [Tue, 1 Oct 2013 11:20:06 +0000 (14:20 +0300)]
Set window title for ev
Mikko Rasa [Tue, 1 Oct 2013 11:19:25 +0000 (14:19 +0300)]
Basic OS X support
The event tester works and reports sensible events. Some things are
still missing, notably GL contexts and window resize tracking.
Mikko Rasa [Thu, 26 Sep 2013 22:01:28 +0000 (01:01 +0300)]
Try to guess the primary monitor if xrandr isn't making any sense
Mikko Rasa [Thu, 26 Sep 2013 16:29:18 +0000 (19:29 +0300)]
Expose a lot more information through the Monitor struct
This includes current mode and location in a multi-monitor setup. Rotated
monitors and modes are also supported. It's enough for many common cases,
though more exotic layouts still cannot be restored.
I'm not certain exactly how Windows handles multiple monitors. Additional
research is required.
Mikko Rasa [Thu, 26 Sep 2013 16:26:59 +0000 (19:26 +0300)]
Add a missing #include
Mikko Rasa [Thu, 26 Sep 2013 12:32:49 +0000 (15:32 +0300)]
Initial XRandR support
It can't yet restore most multi-monitor configurations correctly.
Mikko Rasa [Wed, 25 Sep 2013 18:33:57 +0000 (21:33 +0300)]
Extend the video mode API to support multiple monitors
Xf86vidmode can't support this and will be replaced with XRandR in the
imminent future.
Mikko Rasa [Tue, 24 Sep 2013 15:56:24 +0000 (18:56 +0300)]
Move struct VideoMode to its own header