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
da42aaf423
[sound] Use vec4f_t for api functions
...
Fixes a few vec3_t/vec4f_t FIXMEs.
2022-03-30 23:42:38 +09:00
Bill Currie
57dd4494cc
[renderer] Pass in a camera transform
...
More r_data cleanup. Things could be better still, but this is a start.
2022-02-28 16:59:38 +09:00
Bill Currie
0be609e0fd
[util] Make PI_LoadPlugin always call general init function
...
As the root cause for #16 was something else, this fixes only the basic
cvar initialization, but does fix #19 (for now, at least).
2021-06-26 16:18:05 +09:00
Bill Currie
a1a89bdb7e
[audio] Clean up a few minor style issues
2021-06-25 16:52:09 +09:00
Bill Currie
c9319966ce
[plugin] Clean up the rest of the plugin structs
2021-06-22 19:47:20 +09:00
Bill Currie
db322ce88b
[audio] Clean up snd_render.h namespace polution
...
There's no need for the function typedefs and the warts on the member
names were... warty.
Also, group the members logically.
2021-06-22 16:38:17 +09:00
Bill Currie
86b5b30b45
Merge branch 'master' into vulkan
2020-06-25 14:03:52 +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
bc1b483525
Nuke the rcsid stuff.
...
It's pretty useless in git.
2012-04-22 10:56:32 +09:00
Bill Currie
ce6ab908a5
Don't include the specific plugin headers in plugin.h.
...
This lets files that use plugins not depend on plugins they don't use.
2012-02-13 22:02:07 +09:00
Bill Currie
9a91aff93c
Move the ambient level check out of the sound renderer.
...
Instead, the client gets the current leaf and passes ambient_sound_level
from the leaf to S_Update.
2012-02-13 13:44:29 +09:00
Bill Currie
02d24189ef
Use QF_NEED for plugins.
...
At the moment, the selection of the default sound driver etc is broken.
2012-02-12 11:37:25 +09:00
Bill Currie
dd1adc0431
remove S_TouchSound: it doesn't seem to be necessary
2007-05-07 12:20:38 +00:00
Bill Currie
d67cbeae7f
bring cd_file in line with the new sound api
2007-03-18 12:54:59 +00:00
Bill Currie
8205ac4544
this should fix the asla seg
2007-03-18 01:15:57 +00:00
Bill Currie
cde6e60848
most of the hacking needed to break out the common code from snd_dma.c
2007-03-17 03:10:45 +00:00
Bill Currie
0105754f6f
clean out some no-op functions
2007-03-10 14:17:52 +00:00
Bill Currie
99c0954b47
the big dso visibility patch :). Sure, we have to have unique names for static builds, but with controlled visibitly we should get faster program loads (although this isn't C++, so it's not as bad) and complex plugins are cleaner.
2007-03-10 12:00:59 +00:00
Bill Currie
58523becc7
oops
2007-03-10 07:30:12 +00:00
Bill Currie
17875bee39
move the handling of -nosound out of the plugin so it can control loading of the plugin
2007-03-10 07:22:32 +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
df91ce0275
automaticly select the best available sound output driver as default
2005-06-08 10:12:28 +00:00
Bill Currie
d5a33c9545
extend the sound api slightly to ease things like cd_file and make cd_file
...
work as intended :)
2004-01-21 02:52:12 +00:00
Bill Currie
283d49bd8e
first chunk of Mike Gorchak's <mike@malva.ua> QNX patches
2004-01-20 05:57:39 +00:00
Bill Currie
deb8137db7
more sound static cleanup
2004-01-08 01:48:02 +00:00
Bill Currie
e639e5efc3
clean up snd.c a little
2004-01-08 00:25:52 +00:00
Ragnvald Maartmann-Moe IV
2485bed45a
Codestyle. Grr!
2004-01-07 08:45:18 +00:00
Bill Currie
e4416c1f66
fix some weird whitespace
2004-01-07 08:16:59 +00:00
Bill Currie
14a9ff2e6b
make dx default
2003-07-23 16:43:25 +00:00
Bill Currie
21f7365bcc
make "win" the default for snd_output on windows
2003-07-08 20:09:23 +00:00
Bill Currie
eb099ae0d3
make qf gcc 3.3 clean
2003-04-17 00:01:48 +00:00
Bill Currie
da44c783fb
get the new sound system mostly working. just getting a bogus read count
...
in the stream reader at the moment, otherwise it's working wonderfully :)
2003-04-15 02:34:17 +00:00
Bill Currie
3fcc6ae176
a bit more cleanup with more _null deaths
2003-01-31 23:16:28 +00:00
Bill Currie
05fb5f9fb2
partial cleanup. more to come later :)
2003-01-31 20:51:04 +00:00
Bill Currie
93b767d4e0
reduce the heavy pointer dereferencing needed to access the sound plugins
2003-01-31 20:19:42 +00:00
Bill Currie
c103d77157
make SND_ClearBuffer get called directly by Block/UnblockSound and remove
...
S_ClearBuffer from the api
2003-01-31 19:55:21 +00:00
Bill Currie
881e7918c2
cut some overhead on sound rendering
2003-01-31 19:14:12 +00:00
Bill Currie
c788a2ea57
remove a redundant call to S_Init_Cvars and call S_ClearBuffer when sound
...
is blocked and unblocked.
2003-01-31 17:56:05 +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
0926ab64ec
make the plugin cvars rom rather than archive
2003-01-08 22:42:55 +00:00
Bill Currie
013f503738
start getting const-correct on vec3_t params
2002-01-03 05:29:38 +00:00
Ragnvald Maartmann-Moe IV
489e23357e
Change sound default. Null is a useless default. SDL default in windows, oss in linux.
2001-12-11 20:31:18 +00:00
Bill Currie
78a3e398d5
* taniwha gets medieval on extern
2001-10-28 04:23:37 +00:00
Bill Currie
742bb9de91
static plugins now actually work
2001-10-10 16:22:41 +00:00
Bill Currie
eee1aaf283
static plugins (--with-static-plugins to force on, --without-static-plugins
...
to force off, defaults to off for *nix and on for win32). does not work yet
due to lack of support in libs/util/plugin.c, but that's next.
2001-10-10 05:52:14 +00:00
Bill Currie
b1f4a778f9
the rcsid commit from hell }:>
2001-09-28 06:26:31 +00:00
Bill Currie
49a85718f8
total nukage of Con_*Printf calls from libs (except for video). Sys_*Printf
...
(Sys_DPrintf is new) is now used exclusively for all lib printing. Con_Init
sets the sys printf recirection to Con_Print (which has been revamped
appropriatly) and the server sets it to SV_Print (which was SV_Printf and
the new SV_Printf calls /it/). This should fix the rcon print redirection
issues.
2001-09-21 04:22:46 +00:00
Adam Olsen
893c8b784b
- tweak the cl_maxfps sleeping to be more finely grained
...
- treat empty snd_render/snd_output strings as "don't load"
2001-09-19 05:32:20 +00:00
Ragnvald Maartmann-Moe IV
7af79b96ec
Lots of whitespace, header cleanups, and a few tiny optimizations.
2001-09-09 21:41:35 +00:00