Commit Graph

367 Commits

Author SHA1 Message Date
Eric Wasylishen a0fbfdbad5 log: use ANSI colors for strings containing "warning" or "error" 2022-04-03 12:56:11 -06:00
Eric Wasylishen a019088c2f Merge branch 'type-cleanup' into brushbsp 2022-04-02 21:05:46 -06:00
Jonathan f5cda68416 clean up percent stuff
comment out "didn't split" message
fix winding resize
merge phong loops together
2022-03-07 14:49:50 -05:00
Jonathan c81e9ace28 remove old threading code entirely
add new parallel logging stuff in common/parallel which wraps parallel_for(_each) and provides automatic percentage indicator
fix issue with light not pulling in settings
move logging stuff into its own namespace and simplify
2022-03-01 10:28:59 -05:00
Jonathan a479a5ddfb use case-insensitive natsort for discoverArchives
add two other logging control bools, which -quiet now redirect to
add -lowpriority for CPU priority (on Windows)
2022-02-28 09:20:35 -05:00
Jonathan 6baea3bc03 Fix three bugs that slipped by for cmdargs
Remove old threading code, use tbb internally
2022-02-27 04:09:28 -05:00
Jonathan df92d9ce12
Command line args systems (#2)
* cmd

* cmake change for tbb DLLs
add in test for double-hyphens

* cmd

* game version

* settings!

* bsp texture usage
decompile fix for q1bsp

* finish up the options for qbsp

* light finished?

* finish up the few missing bits

* move scalar/int32 up

* Run clang-format pass

* natvis for our mathlib
use slightly faster storage for winding
fix light tests

* allow dictionary to be a base type

* re-run style

* Remove cfg_static
Fix options summary

* natvis for lockable_value<T>

* last-ish pass?

* format

* forgot last few lockables
2022-02-27 00:01:57 -05:00
Eric Wasylishen 658d807052 qbsp: finish re-adding CSG code 2022-02-21 12:35:27 -07:00
Eric Wasylishen 3b348af301 qbsp: wip mirroring faces 2022-02-21 00:47:57 -07:00
xDShot 5780ce4bd6
Include some headers for brushbsp branch files (#325)
* include <vector> for std::vector definition

* include <algorithm> for std::clamp definition
2022-02-19 11:17:20 -07:00
Eric Wasylishen 8531286777 qbsp: replace `-nothreads` with `-threads 1` for consistency with light/vis 2022-01-30 17:50:21 -07:00
Jonathan 15484b55f8 Use better tjunction vertex addition
Parallel MergeAll
Allow modifyable iterators from polylib; resizing may invalidate them however
2022-01-28 09:45:29 -05:00
Jonathan d076920665 Revert "Instead of calculating brush extents globally, do it per brush creation"
This reverts commit 069720078f.
2022-01-27 01:52:08 -05:00
Jonathan 069720078f Instead of calculating brush extents globally, do it per brush creation
Use portal node bounds for extents
2022-01-27 01:03:38 -05:00
Jonathan 93505a88b2 Merge branch 'type-cleanup' of https://github.com/Paril/ericw-tools into type-cleanup 2022-01-26 18:03:36 -05:00
Jonathan 571e7337fc Fix the temporary hintskip detection and finally move it to gamedef
Dynamic extent calculation - turned on by default - will automatically determine the extents used for winding_from_plane beforehand. On a 50kb .map file it only takes about 10ms, so for the majority of maps it should be instantaneous.
2022-01-26 18:03:31 -05:00
Eric Wasylishen 19dbc1c1c8 polylib: fix compile error with clang 2022-01-25 19:55:07 -07:00
Jonathan 0414c77c19 Use copies rather than moving for conversion, so that graceful upgrades are graceful again 2022-01-25 04:49:20 -05:00
Jonathan ff2ff5c87f fix emplace UB 2022-01-25 04:21:07 -05:00
Jonathan 5dd2deba8e use custom type for two-sided things to simplify brain power (.front/.back is easier to process than [0]/[1]) 2022-01-23 00:26:58 -05:00
Jonathan 68424edb8d introduce a flag for whether the target game supports bmodels with contents
move the check in SubdivideFace so that it can early-exit if subdivision isn't even enabled
2022-01-21 00:51:06 -05:00
Jonathan c9f2502118 Fix swap 2022-01-20 19:50:05 -05:00
Jonathan 008d6db056 Fix detail for Q2 maps
Simplify winding::flip
Add an assert that a generated surface has a non-empty bounds (have a map that generates a face with 0,0,0 bounds)
2022-01-20 19:25:58 -05:00
Jonathan 0cca14d1b2 Fix bug in bitangent calculation - thank you AlexP
Allow `calc_sides` to skip writing outputs if they are not required, & return counts since they are constant sized
2022-01-20 16:35:56 -05:00
Jonathan 10fa97e6b8 Use string_view where appropriate for parser, add some additional constructors for ease of use 2022-01-16 04:17:06 -05:00
Eric Wasylishen 4e94c7bab3 bspfile: fix UB reinterpret_cast causing ASan to complain on macOS 2022-01-15 22:40:03 -07:00
Eric Wasylishen f02bbca0c7 parser: fix reading past end of buffer 2022-01-15 18:31:35 -07:00
Jonathan 3d9277b711 Merge branch 'type-cleanup' of https://github.com/Paril/ericw-tools into type-cleanup 2021-12-20 14:51:20 -05:00
Jonathan e2d64e0e5d FS simplification
Fix transparency calculation (33% is 33% opacity, not 33% transparency)
2021-12-20 14:51:14 -05:00
Eric Wasylishen 5c7a490fea qv::PolyArea: return 0 for degenerate polygons 2021-12-15 23:12:48 -07:00
Jonathan 0c827208ec Allow `-subdivide 0` to turn off subdivision
imglib now lives in common
fs 'load' split into two functions, where and load. the former allows you to query for and return archive & path for a given file, whereas the latter handles that for you.
use log verbose in light rather than own verbose flag
2021-11-21 15:08:02 -05:00
Jonathan 8cadf06d81 New FS!
First FS test: use it for decompile for Q2 to prevent unnecessary suffixes
2021-11-05 19:25:37 -04:00
Eric Wasylishen d5497a675d polylib.hh: remove verts >= 3 assertion in from_face 2021-10-31 17:12:03 -06:00
Jonathan 0e361f9323 Support for Q2BSP decompilation
- there's still a couple failure cases - specifically base1 in the outdoor area has a side that wasn't able to match to a face
- the clip brush at the start of base1 gets cut into a bunch of pieces because of the whole "check for texinfo, compare and split into multiple pieces" thing, but I'm pretty sure it's just one single brush - we need to ignore the splitting thing on clip brushes since they don't care about texture
- triggers don't pull in a temp texture
- origin brushes?
2021-10-27 17:56:56 -04:00
Jonathan c37ec80667 Implement game-agnostic Brush_GetContents 2021-10-26 09:13:48 -04:00
Jonathan 2bdfdc90cc Fix disjoint 2021-10-25 19:39:18 -04:00
Jonathan 3f27b11bf9 Fix qv::min/qv::max 2021-10-25 19:37:18 -04:00
Jonathan 1ccbe9e12c wrbrushes lump using streaming now
temp(?) fix for structural covered by detail
2021-10-25 19:24:07 -04:00
Jonathan e401136b4d Merge branch 'type-cleanup' of https://github.com/Paril/ericw-tools into type-cleanup 2021-10-25 10:38:32 -04:00
Jonathan e0ed70cc87 no more Vector! 2021-10-25 10:38:15 -04:00
Jonathan e1695ebfd3 VectorAdd & simplify TexDef_BSPToBrushPrimitives (needs testing) 2021-10-25 08:39:29 -04:00
Eric Wasylishen 02d3284045 bspfile: get rid of default implementations of contents_are_empty/solid/sky 2021-10-25 00:05:11 -06:00
Eric Wasylishen 71c5501ef0 qvec: revert plane3::operator- change.
not worth trying to maintain all of the inconsistent special cases of the old code.
2021-10-24 16:20:52 -06:00
Eric Wasylishen 72b39bc576 qplane3::operator-: implement "inverting" the normal as 0 - normal
to avoid introducing -0, for consistency with the old code, which tended to flip normals this way.
2021-10-24 14:47:02 -06:00
Jonathan 3456f62a90 Smaller equalExact (probably should just get rid of this tbh)
Fix for ClosestPointOnLine
2021-10-24 14:20:24 -04:00
Jonathan bfc854efcb base64 bmp images for texture debug
Fix qv::length
2021-10-24 13:55:27 -04:00
Jonathan d0e557b9cb Fix BSPX on q2bsp
Fix normalize generating NaNs to match old behavior of generating zero on zero length
Remove extended texinfo file before potentially not writing new one
2021-10-24 06:56:31 -04:00
Jonathan 5f40d5a7ae Fix segfault 2021-10-24 05:09:47 -04:00
Jonathan 3c2ca93b0c normalizeInPlace no longer nodiscard since you might want to only normalize the ref
remove VectorNormalize
2021-10-23 13:34:12 -04:00
Jonathan fae69309a0 VectorLength 2021-10-23 13:24:25 -04:00