Bill Currie
0f81432090
[model] Load bsp textures into vulkan
...
The textures for an entire model are loaded into a single memory object
with shared between multiple images.
2021-01-20 00:37:37 +09:00
Bill Currie
7a353d5aee
[model] Build vulkan model libs
...
The contents are currently empty (required .c files), but this gets the
build system updated.
2021-01-19 14:12:49 +09:00
Bill Currie
6e0cb7b917
[model] Isolate renderer specific texture data
...
This cleans up texture_t and possibly even improves locality of
reference when running through texture chains (not profiled, and not
actually the goal).
2021-01-19 13:07:31 +09:00
Bill Currie
40fc9f0000
[model] Make Mod_LoadExternalTextures private
...
It never really needed to be externally accessible as it has always been
gl-specific and can be called by Mod_ProcessTexture anyway.
2021-01-19 12:56:05 +09:00
Bill Currie
e50430e00c
[image] Add parameter to load only the header
...
I want to be able to calculate texture sizes without actually loading
the images.
2021-01-19 10:15:57 +09:00
Bill Currie
9b53d7d4e2
[model] Remove empty brush model functions
...
It seems better to check for a null pointer and just not call.
2021-01-19 08:26:53 +09:00
Bill Currie
6d5ffa9f8e
[build] Move to non-recursive make
...
There's still some cleanup to do, but everything seems to be working
nicely: `make -j` works, `make distcheck` passes. There is probably
plenty of bitrot in the package directories (RPM, debian), though.
The vc project files have been removed since those versions are way out
of date and quakeforge is pretty much dependent on gcc now anyway.
Most of the old Makefile.am files are now Makemodule.am. This should
allow for new Makefile.am files that allow local building (to be added
on an as-needed bases). The current remaining Makefile.am files are for
standalone sub-projects.a
The installable bins are currently built in the top-level build
directory. This may change if the clutter gets to be too much.
While this does make a noticeable difference in build times, the main
reason for the switch was to take care of the growing dependency issues:
now it's possible to build tools for code generation (eg, using qfcc and
ruamoko programs for code-gen).
2020-06-25 11:35:37 +09:00
Bill Currie
6ce87497f3
Fix a potential buffer overflow
...
Highly unlikely to have that many sub models, but it does keep gcc
quiet.
2020-02-06 17:42:21 +09:00
Bill Currie
62793b2dc2
Fix some potentially garbage assignments.
...
These are the ones where I could easily make scan-build happy. They do seem
to be potential holes where invalid data in one place could result in use
of uninitialized values.
2018-09-09 09:54:16 +09:00
Bill Currie
59e85b7d5e
Fix a pile of dead assignments.
...
Some were actual bugs!
2018-09-08 22:23:57 +09:00
Bill Currie
4f58429137
Fix an unhealthy pile of gcc 8 warnings.
...
While some of the warnings were merely annoying, some where actual bugs or
unearthed bugs in related code.
2018-08-20 00:05:00 +09:00
Bill Currie
ab3f554a0e
Limit the search for lit and ent files.
...
The search for these files will stop in the vpath that contains the .bsp
file to which they belong. This will prevent problems with
id1/maps/start.lit being used for shadows/maps/start.bsp.
2014-01-28 16:22:05 +09:00
Bill Currie
3efb0c538f
Separate file search from loading.
...
QFS_LoadFile (and its wrappers) now take a file handle rather than a
path. This will make vpath usage a little cleaner to implement.
2014-01-28 16:22:05 +09:00
Bill Currie
f5501fbf24
Fix a pile of automake deprecation warnings.
...
s/INCLUDES/AM_CPPFLAGS/g
I <3 sed :)
2013-11-24 13:11:50 +09:00
Bill Currie
e27d7cbd2d
Handle alloca "correctly".
...
Use AC_FUNC_ALLOCA and the #ifdef mess suggested by the autoconf docs
(hidden in qfalloca.h).
2013-01-22 21:02:50 +09:00
Bill Currie
9d6954efb7
Fixup extended bsp when loading the file.
...
It turns out the tools need the node conversions too, so doing it in
bspfile seems to be best as it is used by everything that reads a bsp file.
2012-12-30 13:29:24 +09:00
Bill Currie
a4d95f3f53
Move Mod_FindClipDepth and recurse_clip_tree into clip_hull.c.
...
Since the hull depth needs to be set for the hull to be useful, it makes
sense to move the code into the same place that allocates new hulls (to me,
anyway).
2012-12-29 16:25:47 +09:00
Bill Currie
a12eb940f1
Remove the hard-coded bsp maximum depths.
...
The depth limits in the gl and glsl renderers and in the trace code really
bothered me, but then the fix hit me: at load-time, recurse the trees
normally and record the depth in the appropriate place. The node stacks can
then be allocated as necessary (I chose to add a paranoia buffer of 2, but
I expect the maximum depth will rarely be used).
2012-11-28 21:29:03 +09:00
Bill Currie
45c48a6215
Fix bsp2 loading.
...
Just some problems with the handling of extended bsp29 files. I'm not
quite happy with the code, but it will do for now.
2012-09-08 09:41:00 +09:00
Bill Currie
a37c5465e1
First step for BSP2 support. DOES NOT WORK!
...
All of the nastiness is hidden in bspfile.c (including the old bsp29
specific data types). However, the conversions between bsp29 and bsp2 are
implemented but not yet hooked up properly. This commit just gets the data
structures in place and the obvious changes necessary to the rest of the
engine to get it to compile, plus a few obvious "make it work" changes.
2012-09-07 16:09:24 +09:00
Bill Currie
69fb78278f
Remove the redundant endian conversions from bsp loading.
...
It's obvious that it's been a very long time since anybody's tried playing
QF on a big-endian machine: double converting data isn't good :/
2012-09-07 15:45:59 +09:00
Bill Currie
6ba6959205
Allow any NxN or 2NxN sky texture for glsl.
...
Maps that specify a skybox often use a fake sky texture, sometimes 16x16.
Having a hardcoded requiredment of 256x128 is a tad inappropriate.
2012-09-05 14:02:44 +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
6f026e9116
Fix some segfaults in server model loading.
...
I'd forgotten to test the servers when I did the vid_plugin changes.
2012-04-15 14:12:00 +09:00
Bill Currie
cbdbfdd12f
Fix the alias model loader for plugins.
2012-04-11 14:58:55 +09:00
Bill Currie
d445b4ef88
Rename the glsl qfgl functions to qfegl.
...
Keep them separate from the gl renderer :)
2012-04-11 14:58:54 +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
8530959752
Link the model libs to the render plugins.
2012-04-11 14:58:53 +09:00
Bill Currie
ef37ed39a9
Clean up global symbols for the glsl renderer.
...
Where possible, symbols have been made static, prefixed with glsl_/GLSL_ or
moved into the code shared by all renderers. This will make doing plugins
easier but done now for link testing. The moving was done via the gl
commit.
2012-02-18 11:48:52 +09:00
Bill Currie
4707706f5d
Use QF_NEED for the renderer and model libraries.
...
This breaks RPM building, but I can fix that later.
2012-02-10 13:29:45 +09:00
Bill Currie
1052bd2624
Fix the segfault on leaving e1m2.
...
Problem and solution found by Deek, reason by me.
2012-01-31 09:51:44 +09:00
Bill Currie
497718cc40
Plug the memory/texture/vbo leaks.
...
QF still leaks about 3MB/run on demo1, but even 100 runs didn't show any
render issues.
2012-01-29 22:32:35 +09:00
Bill Currie
7ba7130f42
Load the sky texture as two separate textures.
...
The sky texture is normally 256x128, with each 128 wide side being the two
layers of the sky.
2012-01-11 21:09:57 +09:00
Bill Currie
b43d03a98b
Let the render specific texture loader decide on sky texture loading.
...
This is necessary to allow the glsl texture loader to process the sky
textures.
2012-01-11 21:08:04 +09:00
Bill Currie
aa27a3f49c
Load bsp model textures as repeating mipmaps.
2012-01-07 18:05:54 +09:00
Bill Currie
204c1aba03
Don't use the miptex_t after converting to texture_t.
2012-01-07 17:08:07 +09:00
Bill Currie
2894689f71
Clean up mod_lightmap_bytes.
...
Just how many definitions do we need?
2011-12-25 13:02:26 +09:00
Bill Currie
33c5320c0e
Create stubs for most of the required render functions.
...
nq-glslx almost links. Just some suspicious references in host.c I want to
check before doing anything more.
2011-12-23 12:19:50 +09:00
Bill Currie
497461b4c2
Make a start on making a pure GLSL renderer.
...
For now, only nq-glslx will be built, but as there is no actual code, it
doesn't link. However, this gets the glsl stuff into the build system.
2011-12-23 12:19:13 +09:00
Bill Currie
91e65b6c80
Rename mplane_t to plane_t and clean up the mess.
...
I got rather tired of there being multiple definitions of mostly compatible
plane types (and I need a common type anyway). dplane_t still exists for
now because I want to be careful when messing with the actual bsp format.
2011-11-28 20:54:34 +09:00
Bill Currie
9d63298032
Tweak a fixme comment.
...
The code is potentially slow, especially on big maps, but I haven't noticed
any issues yet.
2011-11-28 20:54:33 +09:00
Bill Currie
74a7e07dfc
Use AM_CFLAGS instead of CFLAGS.
...
CFLAGS is meant to be reserved for the user.
2011-05-10 12:44:44 +09:00
Bill Currie
8831a109a4
Create and use mclipnode_t.
...
I didn't realize this was a critical part of fitzquake's large map
support. This should fix the non-solid brush entities in Conflagrant
Rodent.
2010-11-29 09:36:21 +09:00
Bill Currie
31c13d92a2
Protocol 666/large map support from FitzQuake.
...
Alpha and lerping aren't implemented yet, but things seem to be working. I
can load and play oms2.bsp (Conflagrant Rodent).
2010-11-26 16:20:05 +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
cd159e1cc1
Use LoadBSPMem to load brush models.
...
Now that Mod_LoadBrushModel uses bspfile.[ch], the engine uses the same
code as the tools to work with bsp files.
2010-10-13 20:52:05 +09:00
Bill Currie
0dfff8fd58
ignore stuff
2010-08-07 10:42:09 +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
866eaa22f6
don't segfault when there are holes in the texture list
2007-05-16 09:23:54 +00:00
Bill Currie
aca80a7baf
fix the gold-key/radiation-symbol bug in rock2
2007-05-09 10:55:02 +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
45d467d748
box tracing (instead of point). Currently disabled because it doesn't work right just yet. However, when it is working, it will let us do things like crouching, crawling, arbitrary sized objects (including players), etc.
2006-12-24 03:13:29 +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
0bfac8dd88
win32 compile fixes
...
This is an imperfect revision of history.
2004-11-06 02:21:00 +00:00
Bill Currie
986dae9ec9
as discussed with fuh, hide the endian dependency of the checksum calcs
...
(evil way of using md4, but oh well).
2004-05-16 23:17:51 +00:00
Bill Currie
beb22957db
do some sanity checking on the header lumps in case of truncated file
2004-02-29 04:24:42 +00:00
Bill Currie
f9b95cee92
some micro-optimisations
2004-02-23 07:17:41 +00:00
Bill Currie
40b8974c33
better external skin handling from Grievre
2003-12-28 05:25:06 +00:00
Ragnvald Maartmann-Moe IV
1be98dcf08
gl_external_textures -> gl_textures_external, plus whitespace & codingstyle.
2003-12-23 20:05:52 +00:00
Bill Currie
9f76665963
luma tweak (redundant code removal) from Grievre
2003-12-23 07:22:04 +00:00
Ragnvald Maartmann-Moe IV
12d3a137a1
Luma texture support for brush models (From Fuh, by way of Grievre).
2003-12-21 08:02:03 +00:00
Bill Currie
2b5a3753ca
nuke QF/texture.h moving it's contents into QF/image.h (yay, finally, a
...
real home for tex_t:)
2003-09-04 18:59:39 +00:00
Bill Currie
39ed540979
LoadImage is now used for all external textures giving almost transparent
...
.png and .tga support.
2003-09-04 18:46:59 +00:00
Bill Currie
ff43d61f81
use the correct bytes per pixel count
2003-09-04 16:26:14 +00:00
Bill Currie
4d1313d0c1
don't seg when using 1 component lightmaps
2003-08-30 22:39:27 +00:00
Bill Currie
0cf0f710b7
remove some unneeded code
2003-07-09 15:34:58 +00:00
Bill Currie
5f3573143a
the beginnings of a jihad against buffer overflows
2003-05-08 23:24:02 +00:00
Bill Currie
eb099ae0d3
make qf gcc 3.3 clean
2003-04-17 00:01:48 +00:00
Bill Currie
bb5f5e0a0c
fix a couple of gcc 2.95 warnings
2003-02-19 21:41:37 +00:00
Ragnvald Maartmann-Moe IV
e3ea39e67b
QuakeForge now supports map specific textures in textures/mapname/
.
2003-02-19 17:41:16 +00:00
Bill Currie
6a687f5e45
rename all the globals in quakefs.[ch] to be QFS_* or qfs_*
2003-02-14 19:46:07 +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
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
75c7119cd8
gamma correct the loaded lightmaps so swgamma works better (MUCH better:)
2002-09-15 05:04:14 +00:00
Ragnvald Maartmann-Moe IV
cb241c50bf
Replace * with # in map names, rather than _. Seems to be the "standard" for replacement textures.
2002-09-10 23:40:13 +00:00
Ragnvald Maartmann-Moe IV
b7c2f5efa3
Allow loading textures from textures
directory, as well as from maps.
2002-09-06 21:52:11 +00:00
Ragnvald Maartmann-Moe IV
c4609f5195
Experimentally allow external texture loading. Also prevent loading RGB textures as RGBA, which wastes a lot of texture memory, and looks ugly on 16bpp boards.
2002-09-06 21:37:22 +00:00
Bill Currie
f473a4fa17
more thorough reporting on bad surface extents
2002-08-27 16:01:51 +00:00
Bill Currie
ec47e08e1c
go back to using QFile, quakeio.h and quakefs.h
2002-08-27 07:16:28 +00:00
Ragnvald Maartmann-Moe IV
19315a399f
Whitespace, comment cleanups.
2002-08-25 14:25:38 +00:00
Ragnvald Maartmann-Moe IV
44e2fbaa87
More whitespace.
2002-08-22 20:06:30 +00:00
Bill Currie
c44ec1993d
handle up to 512x512 map textures /properly/. would be nicer if the max
...
could be dynamic
2002-08-22 19:00:55 +00:00
Ragnvald Maartmann-Moe IV
c91f1a2aea
Rename Length to VectorLength.
2002-08-20 02:22:40 +00:00
Ragnvald Maartmann-Moe IV
32a85e7130
Clipping cleanups.
...
Calculate radius for alias models as well as brush.
Culling is no longer optional on alias models (was only ever disabled for viewmodel, which is a lot of extra effort to avoid clip testing 1 thing out of hundreds).
Clip QSG2 scaled alias models with a scaled bbox.
2002-08-20 00:48:59 +00:00
Bill Currie
2ce0f2ded2
we now require modern autoconf (2.52+), automake (1.6+) and libtool (1.4+).
...
This gives us a bunch more flexibility. plugins no longer have the "lib"
prefix or the version suffix, they're now installed in
$fs_sharepath/QFplugins,, builds should take much less time (in general,
only one of pic or non-pic versions are build), bins and libs can have
individual CFLAGS
2002-08-01 19:49:10 +00:00
Bill Currie
1337b8bd3d
be a little more verbose with the "Bad surface extents" error.
2002-07-03 21:03:49 +00:00
Bill Currie
8a762bdaaf
hack to work around the gl lighting fix breaking sw
2002-05-30 21:39:21 +00:00
Bill Currie
4e67f8d155
remove an extern
2002-05-30 18:38:57 +00:00
Ragnvald Maartmann-Moe IV
f1f942dfd1
Hacking my way towards working r_lightmap_components 1.
...
Users of r_lightmap_components 1, should set `int mod_lightmap_bytes = 1` at the start of `quakeforge/libs/models/brush/gl_model_brush.c`.
2002-05-25 15:29:22 +00:00
Bill Currie
e4975cd675
very minor load-time optimisation
2002-04-23 17:23:18 +00:00
Bill Currie
316386b542
mod->textures can legitimatly have null textures, so be on the lookout for
...
them. This fixes the client crash on certain levels.
2002-01-24 02:44:19 +00:00
Seth Galbraith
31a98f0f80
only load tgas for texture names that end in backslash
2002-01-17 16:31:34 +00:00
Seth Galbraith
93116bc827
external mip texture loading
2002-01-16 01:02:50 +00:00
Bill Currie
6637f3fba5
more FIXME and whitespace cleanups
2002-01-12 04:46:15 +00:00
Bill Currie
013f503738
start getting const-correct on vec3_t params
2002-01-03 05:29:38 +00:00
Bill Currie
0be2a31f2e
lots of code cleanup. Merge Mod_LoadAllSkins, merge the sw32 model loading
...
code into the sw model loading code, remove all refs to r_pixbytes from the
sw renderer (it was never anything but 1), kill libQFmodels_sw32, remove
all the 16 bit code from the 8 bit sw renderer.
2001-11-21 19:13:53 +00:00
Bill Currie
ec75b71711
don't bother with fullbright skins for models that are allways fullbright and
...
clean up a misplaced function prototype
2001-11-20 08:45:26 +00:00
Bill Currie
d168a3daee
this should remove the requirement for gmake on bsd systems
2001-11-12 16:23:41 +00:00