Commit Graph

1250 Commits

Author SHA1 Message Date
Yamagi Burmeister d0d81cf3ac Revert "Define HAVE_BOOLEAN on Windows"
This reverts commit 5e1419e6ba. It was a
bad idea, breaking 64 bit compatiblity on Windows. It should have never
been committed...
2014-01-28 08:13:21 +01:00
Yamagi Burmeister eb879bb9b6 Rename VERSION to YQ2VERSION to prevent collisions
Newer jpeg versions (I guess starting with 9) define an macro
"VERSION", colliding with ours. While wie could #undef it, take
the less hacky route and rename it.
2014-01-27 18:14:36 +01:00
Yamagi Burmeister 70d2aa21b7 Remove stuff/win32-libs
Those libraries are too old and not needed anymore. Better use those
that are part of the build environment.
2014-01-27 17:50:07 +01:00
Yamagi Burmeister 47fa53c292 Refactor the Windows build system
The old Window build was tightly bound to Nuwens MinGW distro. Since
Nuwen decided to take the 64 bit way and dropped 32 bit support, we'll
change over to a more generic MinGW build. Use this chance to clean up
things.

PLEASE NOTE: There's no such thing as a "standard MinGW install".
Therefor our buildsystem cann not and will not be generic. It's still
desinged along the pathes of our build environment. We'll upload it
to the projects FTP server.

Things do consider:
- Dependencies (jpeg, libogg, libvorbis, OpenAL, SDL2, zlib) should be
  installed under /custom/.
- We're now relying on sdl2-config, to be found at /custom/bin. It's
  just a simple shell script, depending on your compiler unsupported
  CFLAGS or LDFLAGS must be removed from it.
- Windows binaries are now stripped. There's no need to supply debug
  symbols on Windows. This reduces quake.exe from ~8.3MB to ~1.6MB.
- The Binaries are still hard linked.
2014-01-27 17:32:12 +01:00
Yamagi Burmeister 5e1419e6ba Define HAVE_BOOLEAN on Windows
Without this define newer versions of jpeg define a type "bool" as char,
while the MinGW headers define it as "unsigned short". Automake should
have detected that, but...
2014-01-27 17:28:59 +01:00
Yamagi Burmeister 93b38c6312 Define macros needed by 26bbfea.
The code used build fine on my workstation, since Mesa3D has the
required macros since ever. But on Windows gl.h is still limited
to OpenGL 1 (really?).
2014-01-27 17:26:33 +01:00
Yamagi Burmeister 26bbfead45 Add support for MSAA.
MSAA was a long wanted and often requested feature. Just set set the
desired number of samples with gl_msaa_samples and do a vid_restart.
This code is based upon work done in Hecatomb.
2014-01-26 09:53:10 +01:00
Yamagi Burmeister 85ee926dd6 Mention the relative mode fallback in the CHANGELOG and remove the FAQ 2014-01-25 19:14:35 +01:00
Yamagi Burmeister 825a53009a Provide a workaround if SDL_GetRelativeMouseState() is disfunctional
On some systems SDL_SetRelativeMouseMode() can fail under several
circumstances. For example:
 - Security software is blocking acces to raw input.
 - XInput 2 is unavailable.
 - SDL2s configure script has messed up.
Detect those situations and reposition the mouse manually to the
window center after having read it's current state. This fixes
issue #34 an #35.
2014-01-25 15:46:55 +01:00
Yamagi Burmeister 68d3da29e8 Destroy the window after the GL context.
The GL context is bound to a window, so destroy it before the window and
not after it. While here update the header comment.
2014-01-23 17:23:16 +01:00
svdijk 98a83e2322 Minor input grabbing cleanup. 2014-01-11 19:01:04 +01:00
svdijk b33c895d56 Whitespace 2014-01-05 20:32:18 +01:00
svdijk 50e1bf16fe Fix key-repeats in the console (for instance the backspace key) 2014-01-05 20:22:34 +01:00
Yamagi Burmeister 84a1766702 Merge input backend init and keyboard init
Now that the refresher is part of the client, there's no need to init
the backend before the refresher and the keyboard after it.
2014-01-05 18:58:52 +01:00
Yamagi Burmeister e8239291a7 Remove unnecessary IN_Close()
Having a special function to close the input devices is unnecessary. The
backend should close them at shutdown, when IN_BackendShutdown() is
called.
2014-01-05 18:53:03 +01:00
Yamagi Burmeister 18733b68ce Do not allow input devices to write to command buffer
Input devices should send key events and nothing more. The ability to
add commands into the input buffer was used by the joystick code
(removed long time ago) and as a dirty hack to work around limitations
of DirectInput.
2014-01-05 18:51:27 +01:00
Yamagi Burmeister f80e02ffd9 Refactor the SDL input backend once again.
- Remove the keyq. This linked list was used to work around limitations
  of the good, old DirectInput API. It's not necessary with SDL.
- Inline some functions to others where apropriate and remove unused
  or unnecessary functions.
- Reorder functions into groups.
- Update comments.

This commits still misses necessary changes to the frontend. They'll be
done in subsequential commits.
2014-01-05 18:40:24 +01:00
svdijk 7111f735f7 Fix a (harmless) off-by-one in a SDL_VideoDriverName() call 2014-01-05 17:44:29 +01:00
Yamagi Burmeister a6b911a9a8 Bump version number to 5.21 2014-01-01 11:25:36 +01:00
Yamagi Burmeister 3efb5a2b56 Update CHANGELOG for 5.21 2014-01-01 11:25:03 +01:00
Yamagi Burmeister be14aea08d Add an signal handler for SIGINT and SIGTERM
This allows the user to shut the client down by pressing ctrl-c in it's
terminal or by sendig SIGTERM.
2014-01-01 11:17:28 +01:00
Yamagi Burmeister ab220c10d6 Wrap too long line 2014-01-01 10:35:53 +01:00
Yamagi Burmeister ca5b0183e2 Set an rpath entry to WITH_SYSTEMDIR/lib
This automagically sets an rpath to WITH_SYSTEMDIR/lib, when
WITH_SYSTEMWIDE is specified. If no WITH_SYSTEMDIR is given,
the default path /usr/share/games/quake2/lib is used. As for
the normal rpath, for now only FreeBSD and Linux are supported.
This was requested by caedes.
2014-01-01 10:32:27 +01:00
Yamagi Burmeister fd1e55d18d Do not set the FPU to single precision on Windows
We had dual precision since ever on 64 bit unixoid systems and it "just
worked". So there should be no reason to still force Windows down to
single precision.  The performance impact should be negligible.
2013-12-31 13:18:05 +01:00
Yamagi Burmeister 8102e1a021 Move entitycmpfnc() to cl_view.c an reimplement it
This function is only used in cl_view.c, so no need for external
declaration. Reimplement it in a sane and on all platform 64 bit
clean way. This allows us to finally remove the horible INT macro.
2013-12-31 12:47:18 +01:00
Yamagi 78b974d3ca Merge pull request #28 from alericoveri/qgl_cleanup
QGL renundancy cleanup
2013-12-31 03:14:55 -08:00
Yamagi Burmeister 909729b2fd Rename CDA_ENABLED to CDA_DISABLED. Some minor wording fixes while here. 2013-12-31 10:02:58 +01:00
Yamagi Burmeister 1e2e1021af Make ARCH overrideable on Windows 2013-12-31 09:57:07 +01:00
Yamagi Burmeister 950c31d4ee Elaborate on 64 bit windows builds 2013-12-31 09:55:18 +01:00
Daniel Gibson 3afe57b8f2 Fix #29 by simplifying mouse button handling
Pressing two mouse buttons at the same time didn't work properly, only
one had effect, e.g. when pressing LMB to walk forward and RMB to shoot
(when bound like that...)

Not sure why that was, but the old mouse button handling (inherited from
the super-old win32 backend where it was supposed to work around bugs in
WinAPI or whatever, where sometimes there were two mouse button presses
in one event or something) was unnecessarily complicated anyway so I
replaced it with something simpler.
2013-11-26 19:22:29 +01:00
Alejandro Ricoveri 1cfb5c67d5 QGL renundancy cleanup
Despite QGL is only handling GL extensions, there was a little code renundancy.
QGL_EXT_Reset sets all extension pointers to NULL.
2013-11-22 08:17:34 -04:30
Yamagi Burmeister 64a39ce09e Bump version number to 5.20 2013-11-14 18:13:35 +01:00
Yamagi Burmeister 1ac7f52308 Update CHANGELOG 2013-11-10 10:52:53 +01:00
Yamagi Burmeister 0f9dcba9ed Apply some cleanup to the input backend
Make non global functions static, give some better names to variables,
remove unneccessary special cases and remove some superflous functions.
Form most - if not all - users this changes should be a no-op.
2013-11-10 10:10:43 +01:00
Yamagi Burmeister dca3db9426 Add $ORIGIN/lib the RPATH on FreeBSD and Linux
This should ease the overwriting of systemwide installed libs with
specialized versions. Also distributors may use this facility to supply
libraries next to the binaries. Maybe the same should be added for the
other platforms, but I'm not sure if and how they support RPATHes.
2013-11-09 13:47:04 +01:00
Yamagi Burmeister e7ac0653b2 Merge branch 'sdl2' 2013-11-09 13:21:39 +01:00
Yamagi Burmeister 1aff869393 Add a FAQ regarding XInput 2.2 or higher needed by SDL 2.0 2013-11-09 13:19:37 +01:00
Yamagi Burmeister 78cfbb5197 Mention SDL 2.0 in the Makefile header 2013-10-12 12:32:32 +02:00
Yamagi Burmeister 67e3355aa5 Mention that OS X is unsupported
I neither have a Mac nor the time to maintain this platform. SDL 2.0
requires some more complex changes than the usual "two lines to track
Unix and Windows" so suspend OS X support until someone steps up.
2013-10-12 12:30:01 +02:00
Yamagi Burmeister bffc43ea53 Clarify SDL stuff in the README, mention vsync bug with SDL 1.2 2013-10-12 12:27:47 +02:00
Yamagi Burmeister 82f3fa84a9 Use "directsound" as sounddriver when using SDL2 on Windows 2013-10-12 12:13:33 +02:00
Yamagi Burmeister 5b10bdc2b2 Enable SDL2 by default 2013-10-12 11:55:04 +02:00
Yamagi Burmeister ad27563ef6 Correct SDL2 statement for Windows
SDL2 can and should be statically linked. This is much more easier than
linking it dynamically and more comfortable for the user. One libs less
to care about.
2013-10-12 11:52:49 +02:00
Yamagi Burmeister 5c5a9beba5 Rename CreateWindow() to CreateSDLWindow()
CreateWindow() is a symbol internal to Windows. We can't use it in out
code or it will collide.
2013-10-12 11:07:05 +02:00
Yamagi Burmeister 5e85fbc8b9 Allow arbitrary screen sizes.
Without this change the width of the render windows was required to be a
multiple of 8, making it unable to use strange resolutions like 1366x768.
This change is based upon an idea submitted by "tmcp" in pull request
27.
2013-10-12 09:29:19 +02:00
Daniel Gibson d1ca122955 Add -DSDL2 for Win32/OSX support (untested), print SDL2 usage on startup
The quake2 binary now gets -DSDL2 in the CFLAGS, so Win32/OSX can
use different #include paths accordingly.
This is also (ab)used to print which SDL version is used on startup.
Don't use this for anything else, use
#if SDL_VERSION_ATLEAST(2, 0, 0)
instead.

I haven't tested building on/for Win32 or OSX, there may be more
work to do.

Furthermore I added Copyright-Info about CalculateGammaRamp()
in refresh.c (it's from SDL2)
2013-09-01 14:19:33 +02:00
Daniel Gibson 628dff77a8 Clean up + improve setting gamma via xRandR
* save gamma on start and restore on exit
* handle errors
* Restore SDL1.2 compatibility
2013-09-01 03:18:21 +02:00
Daniel Gibson 9af707c7a0 use xrandr for x11gamma (still hacky) 2013-08-27 21:54:48 +02:00
Yamagi Burmeister 191513945f Fix printing of the "CDA is disabled" warning 2013-08-27 21:04:55 +02:00
Daniel Gibson d6dbd6497e Set gamma with SDL2 2013-08-27 19:57:14 +02:00