Tyrann e24ff3553f [PATCH] Use XF86 "Vidmode" gamma extension
This patch sets things up to make use of the XFree86 gamma manipulation
functions.

One issue is that the OpenGL blending substitute we set up is not really the
same as gamma correction because it only brightens pixels according to their
current values. This means black areas are not brightened using this method
(which I think is a good thing), but gamma correction adds "white" to every
area of the screen.

At the moment I've set up the "manual" OpenGL version as a fallback in case
the system gamma functions are not working or not available. I've also set
things up such that the system gamma is not used unless we are in fullscreen
mode since it affects the whole display.

The cvar _gl_allowgammafallback controls whether the fallback is used or not,
but I don't currently have a way to force it to use the "fallback" even if the
other gamma settings work. Most likely I'll separate out the two functions
into gamma and "intensity" similar to Quake 2 and later games.

Signed-off-by: Tyrann <tyrann@disenchant.net>
2006-09-10 19:06:07 +09:30
2006-09-10 19:02:51 +09:30
2006-09-10 19:02:51 +09:30
2006-09-10 19:02:51 +09:30
2006-09-10 19:02:51 +09:30
2006-09-10 19:02:51 +09:30
2006-09-10 19:02:51 +09:30

-----------
 Tyr-Quake
-----------

Date:		2005-02-04
Version: 	0.47
Author:		Kevin Shanahan (aka. Tyrann)
Webpage:	http://disenchant.net
email:		tyrann@disenchant.net

Why?
----
This is meant to be a very conservative branch of the Quake source code. I
intend to support Quake and Quakeworld in both software and GL versions, as
well as Quakeworld Server; all on both MS Windows and Linux. I don't intend on
adding lots of rendering enhancements, but rather fixing little bugs that I've
come across over the years. I'll be adding small enhancements, but I don't
want to completely overhaul the engine.

Building:
---------
The build process is a little ugly, but pretty straight forward. Just open up
the Makefile in the tyrquake directory and set the TARGET_APP, TARGET_RENDERER
and TARGET_OS variables. Then type "make". It works for me under Linux and
Windows (using MinGW with MSYS - http://www.mingw.org). I only have x86
machines to test on, but I'd like to hear if anyone gets it working on
something else...


Version History:

v0.47
=====
- Add fullscreen modes to software quake in Linux
- Added r_drawflat to glquake, glqwcl
- Fixed r_waterwarp in glquake (though it still looks crap)
- Multitexture improvements (sky, also usable with gl_texsort 1)
- Add rendering of collision hulls (via cvar _gl_drawhull for now)

v0.46
=====
- Fixed default vidmodes in windows, software NQ/QW (broken in v0.0.39 I think)
- Fixed sound channel selection broken in v0.45
- Fixed scaling of non-default sized console backgrounds

v0.45
=====
- Changed to a simpler version numbering system (fits the console better too!)
- Makefile tweaks; can optionally build with no intel asm files now.
- Started moving around bits of the net code. No behaviour changes intended.
- Con_Printf only triggers screen updates with "\n" now.
- Various other aimless code cleanups (comments, preprocessor bits)

v0.0.44
=======
- Fix the previous SV_TouchLinks fix (oops!)
- Make AllocBlock more efficient for huge maps

v0.0.43
=======
- Fixed a rare crash in SV_TouchLinks

v0.0.42
=======
- Increased max verticies/triangles on mdls

v0.0.41
=======
- fixed marksurfaces overflow in bsp loading code (fixes visual corruption on
  some very large maps)

v0.0.40
=======
- added the high-res modes to the QW software renderer as well
- fixed a rendering bug when cl_bobcycle was set to zero

v0.0.39
=======
- Hacked in support for higher res windowed modes in software renderer. Only in
  NQ for now, add to QW later.
- gl_model.c now a shared file
- Random cleanups

v0.0.38
=======
- Fixed a corruption/crash bug in model.c/gl_model.c bsp loading code.

v0.0.37
=======
- Cleaned up the tab-completion code a bit

v0.0.36 (and earlier)
=======
- Re-indent code to my liking
- Make changes to compile using gcc/mingw/msys
- Fix hundreds of warnings spit out by the compiler
- Lots of work on eliminating duplication of code (much more to do too!)
- Tried to reduce the enormous number of exported variables/functions.
- Fixed some of the input handling under Linux...
- Fixed initialisation order of OSS sound driver
- Hacked a max texture size detection fix in (should be using proxy textures?)
- Replaced SGIS multitexturing with ARB multitexture
- Added cvars "r_lockpvs" and "r_lockfrustum"
- Enhanced the console tab completion
- Bumped the edict limit up to 2048; various other limits bumped also...
- lots of other trivial things I've probably completely forgotten in the many
  months I've been picking over the code trying to learn more about it
Description
New rebasing of Libretro Tyrquake
Readme 3.3 MiB
Languages
C 90.2%
Assembly 7.3%
Makefile 1.4%
Objective-C 0.8%
Batchfile 0.3%