Commit Graph

3162 Commits

Author SHA1 Message Date
Eric Wasylishen 7439fc30db testqbsp: fix absolute path in q1_wad_external 2022-06-27 22:40:38 -06:00
Jonathan c23b7d2ec9 allow Quake-likes to load textures similarly to Q2 (finding best place to load them from)
allow Quake and Q2 to handle other texture formats (mainly just TGA for now)
2022-06-27 11:30:28 -04:00
Jonathan bf1cb56e5a fix build
add setting to control file priority
2022-06-27 10:41:24 -04:00
Jonathan 59bff81e9d tests for new WAD stuff 2022-06-27 08:14:30 -04:00
Jonathan 26608c1b37 Merge branch 'type-cleanup' into brushbsp
# Conflicts:
#	common/bspfile.cc
#	common/bspinfo.cc
2022-06-27 08:14:03 -04:00
Jonathan 3b777a05a9 remove unnecessary init_palettes 2022-06-27 08:13:32 -04:00
Jonathan 732621c59a fix bugs in miptex writing
clear FS when loading filesystem again (for tests mainly)
move img::load_palette to where it is in brushbsp
2022-06-27 08:13:04 -04:00
Jonathan a7662a9c9b fix noclipfaces being inverted from type-cleanup 2022-06-27 06:56:20 -04:00
Jonathan cf04f644e0 Merge branch 'type-cleanup' into brushbsp
# Conflicts:
#	common/bspinfo.cc
#	include/common/bspfile.hh
#	include/qbsp/map.hh
#	include/qbsp/wad.hh
#	qbsp/wad.cc
2022-06-27 06:44:45 -04:00
Jonathan ba7c18fd35 Merge branch 'type-cleanup' of https://github.com/Paril/ericw-tools into type-cleanup 2022-06-27 03:58:41 -04:00
Jonathan 510023e089 step 1 of finishing the rewrite I started of the image subsystems.
- for Quake-likes, WADs will be added as file system archives directly when the first brush is encountered since the wad key is ready to go by that point.
- after loading the .map and before constructing the BSP, what I call secondary textures (animation frames for Quake-likes) are added to the list, and the BSP's miptex data is filled.
- BSP miptex data is now opaque to the BSP process; the BSP simply copies the raw miptex information from the input. This simplifies the BSP structures and reading/writing routines.
- the img subsystem supports reading from raw miptexes now, although in practice this only happens for Quake-likes atm
- instead of a "wal cache", maps now have a "meta cache" which stores the metadata information for all games instead of just Quake II
- texture meta can now be ref'd out rather than needing to be copied every time (mainly only a gain for the std::string)
- wad.cc/wad.hh is gone; wads are now pushed into the filesystem archive
- fixed broken wad_archive
- fs subsystem iterated on a little bit; supports marking archives as external (only used for wads currently; see `LoadTextureData`)
- load_tga has better error handling
- add in foot-gun protection to the BSP readers; now they assert on failure to read instead of silently propagating that error throughout the rest of the process
- bsputil uses img stuff now, so it should handle palettes better
2022-06-27 03:58:23 -04:00
Eric Wasylishen c7111cc99e qbsp: move FloodAreas to portals.cc for parity with qbsp3 2022-06-27 01:32:34 -06:00
Eric Wasylishen e660182c37 testqbsp: readd "-nopercent" as test output is too verbose without 2022-06-27 01:20:16 -06:00
Eric Wasylishen 92dd54c0b1 bspfile: fix is_any_solid() implementation to be just (contents.native & Q2_CONTENTS_SOLID) 2022-06-27 01:19:31 -06:00
Eric Wasylishen 5624f7012a qbsp: moving PortalThru->Portal_VisFlood, Portal_EntityFlood to portals.cc for qbsp3 parity
also fixes to both to match qbsp3
2022-06-27 01:13:21 -06:00
Eric Wasylishen 4c2111bfd3 testqbsp: re-enable base1.map test as well as dm1.map (disabled by default as it's too slow on debug builds) 2022-06-27 00:33:04 -06:00
Eric Wasylishen 95273ec189 ci: don't fail on empty vis test suite 2022-06-26 14:27:10 -06:00
Eric Wasylishen 22f0def4b1 update Catch2 to v3.0.1 2022-06-26 13:21:29 -06:00
Jonathan 2264de71a2 Revert "very slight speedup (~3% improvement) on normalize; don't sqrt if we don't need to (rare), and use multiplication instead of division"
This reverts commit 8fe525f5b2.
2022-06-26 01:24:47 -04:00
Jonathan 00485553f3 / should be * 2022-06-26 01:22:03 -04:00
Jonathan 033a84cac8 cache anything related to triangle-face info in a single struct that we access per ray 2022-06-25 22:22:24 -04:00
Jonathan 8fe525f5b2 very slight speedup (~3% improvement) on normalize; don't sqrt if we don't need to (rare), and use multiplication instead of division 2022-06-25 20:56:08 -04:00
Jonathan a4c304272a use floats for dealing with ray info, for consistency (and to avoid a bunch of float->double casts)
use raydir from hit point rather than calculating it twice
2022-06-25 04:47:26 -04:00
Jonathan 062ff86a0d cache texture pointers, saving expensive lookups per ray 2022-06-25 04:28:00 -04:00
Jonathan b4583908af slight speed improvement; these weren't inlining properly, they do now though 2022-06-25 04:20:24 -04:00
Jonathan 8b1472dfd1 Merge branch 'brushbsp' of https://github.com/ericwa/ericw-tools into brushbsp 2022-06-24 04:33:14 -04:00
Jonathan 90c08ca1da move bounce lighting into a post-processing operation and split LightFace into Direct and Indirect 2022-06-24 04:33:08 -04:00
Eric Wasylishen aabd1c27dc qbsp: face_t: make contents, lmshifts single sided
side_t: same, also remove contents (unused)
2022-06-24 01:14:11 -06:00
Eric Wasylishen 2452d5edda Merge branch 'brushbsp' of https://github.com/ericwa/ericw-tools into brushbsp 2022-06-24 00:54:55 -06:00
Jonathan c7169e11ee split LightFace into three distinct phases: Create, Light, and Save 2022-06-24 02:54:41 -04:00
Eric Wasylishen 7b81702c08 qbsp: remove unneeded fields from side_t/face_t 2022-06-24 00:54:02 -06:00
Eric Wasylishen afec0a947e qbsp: change bspbrush_t.sides from face_t to side_t 2022-06-24 00:43:40 -06:00
Eric Wasylishen fac5ea384d qbsp: rename bspbrush_t.faces to .sides 2022-06-24 00:21:55 -06:00
Eric Wasylishen 7e4169f001 qbsp: add a placeholder side_t that's just a copy of fae_t 2022-06-24 00:18:19 -06:00
Eric Wasylishen b37d29ee33 common: rename side_t -> planeside_t (side_t is used by qbsp3) 2022-06-24 00:16:46 -06:00
Eric Wasylishen 4a1c5842a3 qbsp: rename solidbsp.cc -> brushbsp.cc for consistency with qbsp3 2022-06-24 00:08:12 -06:00
Eric Wasylishen 038651fca6 qbsp: rename brush_t -> bspbrush_t for consistency with qbsp3 2022-06-24 00:01:02 -06:00
Jonathan 4e73d9b196 remove unused struct 2022-06-23 23:45:55 -04:00
Jonathan 12a5c6555c remove extra line 2022-06-23 23:29:11 -04:00
Jonathan 7010cc7ed2 remove unnecessary includes from entdata 2022-06-23 19:07:10 -04:00
Jonathan 579140067f expose vector.size() using a subtype to not pollute winding_base_t 2022-06-23 18:42:38 -04:00
Jonathan 1718512b09 remove unnecessary "uncompressed_q2" - can just be a single buffer now
another ptr->vector
2022-06-23 17:08:50 -04:00
Jonathan 3ac1d02624 fix missing noexcept
explicit initialization in some cases for vis winding_t's parameters
more vector
2022-06-23 17:02:18 -04:00
Jonathan ee596f3ff1 use vector for vis state
set autoclean default to true, make it invertable
2022-06-23 16:18:52 -04:00
Jonathan 70d87a52d6 more pointers to vectors 2022-06-23 16:05:11 -04:00
Jonathan 1d21a33a3b use a thread local static for `LightFace_CalculateDirt` so it's not continuously allocating/deallocating 2022-06-23 01:47:28 -04:00
Jonathan 59e543fabe Merge branch 'brushbsp' of https://github.com/ericwa/ericw-tools into brushbsp 2022-06-23 01:25:08 -04:00
Jonathan e2c8594450 simplify sample stuff
don't clear lightmap if we haven't written to it yet
2022-06-23 01:25:01 -04:00
Jonathan c6521aa0b6 move aligned allocator to cmdlib 2022-06-23 00:39:28 -04:00
Eric Wasylishen 92af2ed3f7 qbsp: restore weird 1 unit bounds shrinkage Q1 needs 2022-06-22 22:37:09 -06:00