Commit Graph

105 Commits

Author SHA1 Message Date
Bill Currie a91dac60d9 [input] Start work on improved input system
The common input code (input outer loop and event handling) has been
moved into libQFinput, and modified to have the concept of input drivers
that are registered by the appropriate system-level code (x11, win,
etc).

As well, my evdev input library code (with hotplug support) has been
added, but is not yet fully functional. However, the idea is that it
will be available on all systems that support evdev (Linux, and from
what I've read, FreeBSD).
2021-08-27 09:10:21 +09:00
Bill Currie 5f93c115ff [util] Make developer flag names easier to manage
They're now an enum, and the flag part of the name is all lowercase, but
now the flag definitions and names list will never get out of sync.
2021-03-29 22:38:47 +09:00
Bill Currie a32e2319e2 Merge branch 'master' into win-merge 2021-03-25 22:42:16 +09:00
Bill Currie cc4167668c Fix a pile of leaks and uninit errors
Still "some" more to go: a pile to do with transforms and temporary
entities, and a nasty one with host_cbuf. There's also all the static
block-alloc lists :/
2021-03-21 19:56:17 +09:00
Bill Currie 7970525ef4 [util] Make va thread-safe
It now takes a context pointer (opaque data) that holds the buffers it
uses for the temporary strings. If the context pointer is null, a static
context is used (making those uses of va NOT thread-safe). Most calls to
va use the static context, but all such calls have been formatted
consistently so they are easy to find when it comes time to do a full
audit.
2021-01-31 16:05:48 +09:00
Bill Currie de64be1d67 Show more info when dumping x11 video modes
Found in an old stash. Probably the start of xrandr support.
2020-02-12 11:04:28 +09:00
Bill Currie 302a462c32 Make SetMouse timeout after 2 seconds
This makes sure that some unchecked event doesn't cause a lockup.
However, blocking input is really not the way to go: need to implement a
state machine and use non-blocking event reads.
2019-07-10 22:28:33 +09:00
Bill Currie 980cf58ac5 Wait for the window to be visible before mouse warping
This fixes the hang during fullscreen startup on my system (the motion
events weren't being generated because there was no window to see the
motion).
2019-07-10 22:28:33 +09:00
Bill Currie a4f963f67b Add a cvar to block use of x11 vidmode
Or really, allow it if the user specifically requests it: the default is
blocked. Modern systems (particularly displays) do not really like
changing resolution, so doing so by default seems rather wrong.
2019-07-10 22:28:33 +09:00
Bill Currie 2329fb1885 Fix some warnings and bitrot. 2016-10-25 00:10:30 +09:00
Bill Currie 40af4bb986 Make vid.width/height unsigned and clean up the mess. 2013-01-24 12:36:14 +09:00
Bill Currie 7206756952 Produce a vidmode list for developer output.
vidmode is starting to show its age. Modern X doesn't need a config file,
and when one is not available, the list of available resolutions is quite
strange. Time to look into randr support.
2013-01-01 15:13:27 +09:00
Ozkan Sezer 6e04fd5ff6 signed int viddef_t members
The attached patch (against quakeforge git) changes the [con]width,
[con]height, and most importantly the rowbytes members of viddef_t
from unsigned to signed int, like in q2.  This allows for a properly
negative vid.rowbytes which may be needed in, e.g. a DIB sections
windows driver if needed.  Along with it, I changed a few places
where unsigned int is used along with comparisons against the relevant
vid.* members.
One thing I am not 100% sure is the signedness requirements of
d_zrowbytes and d_zwidth: q2 has them as unsigned but I am not sure
whether that is because they are needed as unsigned or it was just an
oversight of the id developers. They do look like they should be OK
as signed int to me, though: comments?

==
Note from Bill Currie: I had to do some extra changes as many
signed/unsigned comparisons were somehow missed.
2012-10-21 09:00:50 +09:00
Bill Currie 23a38738fc Massive whitespace cleanup.
Lots of trailing whitespace and otherwise blank lines.
2012-05-22 08:23:22 +09:00
Bill Currie bc1b483525 Nuke the rcsid stuff.
It's pretty useless in git.
2012-04-22 10:56:32 +09:00
Bill Currie e991c1fed3 Make a bit of progress cleaning up vid for plugins. 2012-04-11 14:58:54 +09:00
Bill Currie 8e91fb7bc1 Get the basics linking.
Still, nothing will work: no plugins are loaded and they're all broken
anyway.

glx, sgl, glslx etc are going away, just the basics will be built: fbdev
(probably go away eventually), sdl, x11 and hopefully someday win. That's
actually the only reason anything links.
2012-04-11 14:58:53 +09:00
Bill Currie a4c280f2b2 Take the first step towards render plugins.
No clients link. Even if they did, nothing would work.
2012-04-11 14:58:53 +09:00
Bill Currie 82679066cc Run a vacuum cleaner over the diffs between x11 and glx init.
X11 and GLX init are nowhere near as scary as I thought they were, once
they've been tidied up.
2012-02-18 21:33:54 +09:00
Bill Currie da552e33e7 Remove execinfo checks.
It seems we no longer need it (if we ever really did).
2011-12-13 21:25:41 +09:00
Bill Currie 290ac30efc Fix x11 gamma control.
Seems we lost a header include at one stage.
2011-08-11 16:08:20 +09:00
Bill Currie 9900aa3d02 Fix vid_fullscreen for modern X window managers.
We are now compliant with wm-spec 1.4, so fullscreen toggling should always
work.
2010-11-27 16:19:04 +09:00
Bill Currie e53ff2a36d A bit of house keeping. 2010-11-27 15:10:34 +09:00
Bill Currie f31595781c Add and used SYS_VID for video/targets masked prints. 2010-11-27 08:48:00 +09:00
Bill Currie 8c4fe2f844 Rename Sys_DPrintf to Sys_MaskPrintf.
We now have finer runtime control over what gets printed. Need to do a
SYS_DEV audit, creating new masks as apropriate.
2010-11-26 16:19:26 +09:00
Bill Currie 669771681a split up and modernize configure.ac
Most of the guts of configure.ac have been moved to config.d and are then
brought in by m4_include. This will make maintaining configure.ac much easier.

Also drop use of PROGRAM and VERSION, using PACKAGE_NAME, PACKAGE_VERSION, and
on occasion, PACKAGE_STRING instead, and clean out some old files we no longer
need.
2010-08-19 15:01:43 +09:00
Bill Currie 997102fea8 audit the usage of "only"
There are still a few iffy places (notably around certain prepositions), but
the relevant sentences are now much easier to read.
2010-01-13 06:42:26 +00:00
Bill Currie f2004abecc nuke scr_width and scr_height 2009-12-23 07:00:42 +00:00
Bill Currie 236e89ed6b newest x11 seems to not define X_XF86VidModeGetGamma. thanks to witukind 2009-12-21 06:03:19 +00:00
Bill Currie d66934942d nuke Con_Printf and Con_DPrintf and use Sys_* instead 2007-11-06 10:17:14 +00:00
Bill Currie 215951bc79 yay for testers :) 2006-05-24 09:24:00 +00:00
Bill Currie 6b03d8413e don't compile GetGamme (Set/Restor)ScreenSaver at all when vidmode isn't available 2006-05-24 09:20:53 +00:00
Bill Currie 3fb03fc2be hah, should have been using __attribute__((used)) all that time (rather
than __attribute__((unused))). fixes the missing console in -x11
2005-08-04 15:27:09 +00:00
Bill Currie f2d7d97319 Grievre's fix for his weirdness when toggling fullscren. Thanks Grievre 2004-05-10 01:17:55 +00:00
Bill Currie 969cf7ac66 make sure the mouse input updates properly when going from fullscreen to
windowed
2004-03-22 03:23:59 +00:00
Bill Currie 23e8ef1dd8 do the viewport forcing in configure_notify. fixes Grievre's uncentered
viewport
2004-03-22 02:16:41 +00:00
Bill Currie 7feaa3d631 Want for the mouse to move when going fullscreen before moving the
viewport. This should fix the uncetnered viewport when going fullscreen.
Also discard mouse events caused by fullscreen toggling to avoid chaning
orientation.
2004-03-21 05:21:27 +00:00
Bill Currie 0b808b0c49 so that's why you would want to use XMaskEvent... don't lose the FocusIn
and EnterNotify events when starting fullscreened
2004-03-21 00:34:24 +00:00
Bill Currie 60ca9854aa dead code removal 2004-03-19 21:12:12 +00:00
Bill Currie 78fd6d2513 minor cleanup of window position handling. hopefully no more window off
screen issues (wait for ConfigureNotify instead of MapNotify on window
creation (ConfigureNotify gives us our window position)).
2004-03-19 20:24:26 +00:00
Bill Currie 9099baeb6d minor cleanups preparing for an overhaul 2004-03-18 06:05:59 +00:00
Ragnvald Maartmann-Moe IV 372b763704 Inconsequential changes. 2004-02-09 04:11:13 +00:00
Bill Currie 6b036d14ed in_mouse_accel patch from qize@gmx.net 2003-09-04 22:29:40 +00:00
Bill Currie 6f88e4e343 break out some duplicated code into a function and get the window coords
"properly" (for this mess I'm not sure I'm willing to call code:)
2003-08-04 01:28:30 +00:00
Bill Currie aa345faf12 use the window size for the fullscreen view 2003-03-17 05:39:10 +00:00
Bill Currie a8c989969d hopefully better input grabbing state tracking 2003-03-07 22:30:15 +00:00
Bill Currie be728c7b7c Initialize p_mouse_x and p_mouse_y from the EnterNotify event so that the
first mouse move of the game doesn't screw up your view. Also does resonable
behaviour when entering and leaving the window.
2003-02-25 17:19:47 +00:00
Ragnvald Maartmann-Moe IV 1201f615ee Move a test inside function, rather than repeated all over the place. 2003-02-25 06:04:42 +00:00
Ragnvald Maartmann-Moe IV 646f875a34 Add return value checking for in_grab. Also some dead code removal, dangling comment and white space cleanup. 2003-02-13 19:03:48 +00:00
Bill Currie 53d3252792 don't adjust the system gamma unless the window has focus. also quench an
internal warning (the event system can't handle shm events (doesn't seem to
need to anyway)).
2003-02-13 18:24:30 +00:00