Commit graph

56 commits

Author SHA1 Message Date
Bill Currie
dbd3d6502a Nuke qboolean from orbit
I never liked it, but with C2x coming out, it's best to handle bools
properly. I haven't gone through all the uses of int as bool (I'll leave
that for fixing when I encounter them), but this gets QF working with
both c2x (really, gnu2x because of raw strings).
2023-06-13 18:06:11 +09:00
Bill Currie
12c84046f3 [cvar] Make cvars properly typed
This is an extremely extensive patch as it hits every cvar, and every
usage of the cvars. Cvars no longer store the value they control,
instead, they use a cexpr value object to reference the value and
specify the value's type (currently, a null type is used for strings).
Non-string cvars are passed through cexpr, allowing expressions in the
cvars' settings. Also, cvars have returned to an enhanced version of the
original (id quake) registration scheme.

As a minor benefit, relevant code having direct access to the
cvar-controlled variables is probably a slight optimization as it
removed a pointer dereference, and the variables can be located for data
locality.

The static cvar descriptors are made private as an additional safety
layer, though there's nothing stopping external modification via
Cvar_FindVar (which is needed for adding listeners).

While not used yet (partly due to working out the design), cvars can
have a validation function.

Registering a cvar allows a primary listener (and its data) to be
specified: it will always be called first when the cvar is modified. The
combination of proper listeners and direct access to the controlled
variable greatly simplifies the more complex cvar interactions as much
less null checking is required, and there's no need for one cvar's
callback to call another's.

nq-x11 is known to work at least well enough for the demos. More testing
will come.
2022-04-24 19:15:22 +09:00
Bill Currie
5eb397dd31 [renderer] Remove more dead code
The back-buffer and video buffer locking code was pretty much never more
than stubs (except maybe in dos quake).
2022-03-07 08:44:53 +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
4e4d1b99b4 Clean up all the system shutdown calls
I added Sys_RegisterShutdown years ago and never really did anything
with it: now any system that needs to be shutdown can ensure it gets
shutdown on program exit, and in the correct order (ie, reverse to init
order).
2019-07-12 23:15:26 +09:00
Bill Currie
d6766a07c5 Use a saner default video resolution.
320x200 is way too small these days.
2013-01-24 15:43:04 +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
fa0ff96533 Clean up the mess with host_basepal and vid_colormap.
Libs should not be reaching into the exe :P
2012-02-01 19:52:13 +09:00
Bill Currie
2ae044effd Split out vrect_t to its own file and add support functions.
The rest is cleanup after removing a wart from one of the field names.
2012-01-06 09:52:14 +09:00
Bill Currie
df3d9fe4df Correct the fullbright start color extraction.
I don't know what despair and I were thinking, but we obviously didn't
understand the colormap code at the time.
2012-01-02 10:53:57 +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
28601c8ea4 more screen size cleanup 2009-12-22 13:12:03 +00:00
Bill Currie
5d15c70a0d progress in cleaning up the screen size mess 2009-12-22 06:02:53 +00:00
Bill Currie
2b81eaea6c console.h include cleanup 2007-11-06 12:40:38 +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
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
501180aaac gcc-4.0 fixes. even found some bugs :) (names /not/ mangled this time) 2005-06-08 06:35:48 +00:00
Bill Currie
570a72497f patches from the FreeBSD ports that are still applicable 2003-01-31 18:19:55 +00:00
Bill Currie
761a7546dd re-arrange things so __attribute__ and __builtin_expect are properly
autoconfiscated so rcsid will continue to work with gcc 3.3
2003-01-15 15:31:36 +00:00
Bill Currie
71196fedf6 make gcc more anal about prototypes, string constants and function
visibility (ie, global functions must have a prototype)
2003-01-06 18:28:13 +00:00
Bill Currie
86ed9e1130 add some missing ()s 2002-12-16 19:39:02 +00:00
Bill Currie
80146121dc require an 8 bpp mode 2002-12-16 19:36:14 +00:00
Ragnvald Maartmann-Moe IV
4b32916298 Legibility. Whitespace. Stuff like that. 2002-12-16 19:26:53 +00:00
Bill Currie
e381d2a0fc remove vid_mode and the mode description commands 2002-12-16 19:23:41 +00:00
Bill Currie
1311773a90 make -svga mode selection consistent with -x11 etc and also fix the mode
matching algo so it actually works
2002-12-16 18:50:09 +00:00
Ragnvald Maartmann-Moe IV
f053f3b70f Whitespace. Grr. 2002-12-16 17:59:45 +00:00
Bill Currie
ca4b3acd6c big protototype cleanup. Now, except for a few cases, all non-static
prototypes are in headers files.
2002-11-05 19:12:51 +00:00
Bill Currie
ecdd537183 beat sw gamma handling till GL works. after a fasion. it /looks/ like it was
beaten on.
2002-09-10 06:35:32 +00:00
Bill Currie
be75ff490f fix -x11 screenshots and remove some dead code 2002-08-21 04:58:47 +00:00
Bill Currie
6a5bbf6f0a memory allocation checking cleanup 2002-05-14 06:37:28 +00:00
Bill Currie
44dcf74627 strip the \n from all(?) of the Sys_Error calls (Sys_Error itself will be
adding \n).
2002-05-14 06:12:29 +00:00
Bill Currie
9d59d953bd more cleanups 2002-01-12 05:32:21 +00:00
Bill Currie
78a3e398d5 * taniwha gets medieval on extern 2001-10-28 04:23:37 +00:00
Adam Olsen
3bba5398ba - audit malloc usage. now everything checks the return value :) 2001-10-24 22:50:06 +00:00
Bill Currie
b5341f0d13 we now compile and link with -fno-common. this cleans up the multiple,
uninitialized declarations of variables.
2001-10-23 16:55:23 +00:00
Bill Currie
c7031b20f3 move vid_fullcreen definition from *.c to vid.c and declaration from
context_x11.h to vid.h and remove all extern decls from *.c
2001-09-28 16:54:31 +00:00
Bill Currie
b1f4a778f9 the rcsid commit from hell }:> 2001-09-28 06:26:31 +00:00
Timothy C. McGrath
54e5a3e114 Fix for svgalib from joa, two liner. Very nice of him :)
Misty-chan
2001-09-18 22:38:08 +00:00
Ragnvald Maartmann-Moe IV
c6266aba36 sw32. Flee in terror. This'll break compilation for everything until -sdl32 compiles. sw32 wont work for a while either, so don't get overly excited yet. 2001-08-25 02:47:11 +00:00
Bill Currie
1c9e1b176f fear the mighty const correct patch 2001-07-15 07:04:17 +00:00
Bill Currie
560b475880 gcc 3.0 compile fixes 2001-06-19 22:05:13 +00:00
Bill Currie
b2cd7c6c36 refine the test for compiling outb 2001-06-07 23:03:10 +00:00
Bill Currie
e9c01870b3 provide outb for when not optimising 2001-06-07 16:12:21 +00:00
Bill Currie
323015b11a include/QF header cleanup. including config.h (or any file from include) is
a nono because headers in include/QF get installed, but include don't and thus
would break quakeforge-dev.
2001-05-31 05:33:13 +00:00
Bill Currie
f1730d7870 Move VID_ShiftPalette from all the driver files to vid_common_sw.c
Do the palette gamma correction inside VID_UpdateGamma (fixes sw palette gamma)
2001-05-25 16:42:49 +00:00
Bill Currie
4b3e056429 fix silly typo 2001-05-25 04:06:51 +00:00
Bill Currie
a87c4bbd93 vid.c:
Don't bother checking vid_gamma for CVAR_ROM becuase it is impossible to
	get to VID_UpdateGamma when it is set except for when the cvar is
	initially created, and we /want/ the code to execute in that case.
vid.h:
	add initialized to viddef_t
vid_common_gl.c:
	actually /use/ gammatable (it tends to help)
vid_*.c:
	clean up rendundant decls of gammatable, vid_initialized (now
	vid.initialized) and make sure vid.initialized gets set.
gl_view.c:
	remove gammatable decls
2001-05-25 04:03:47 +00:00