Lioncash
1382bbf365
hecl/FourCC: Implement operator!= in terms of operator==
...
Deduplicates the amount of written code. Now code only needs to ever
change in operator== to automatically reflect across the two functions.
2019-08-15 06:48:38 -04:00
Lioncash
06c436b68d
hecl/FourCC: Eliminate undefined behavior within FourCC interface
...
Type punning like this isn't actually well-defined behavior. Only
casting to char/unsigned char is well defined. This presents a problem
when using FourCC instances in constexpr contexts, given constexpr
contexts are forbidden from having undefined behavior in them.
Because of that, any attempt to use the const char* constructor within a
constexpr context would always result in a compilation error.
2019-08-15 06:48:31 -04:00
Lioncash
0f74cce2ca
hecl/FourCC: Tidy up constructors
...
Marks constructors as noexcept and explicitly defaults the copy
constructor/assignment and move constructor/assignment.
2019-08-15 05:28:11 -04:00
Lioncash
9ec19d99cd
hecl/hecl: Make hash constructors explicit where applicable
2019-08-15 03:06:56 -04:00
Lioncash
06548409f8
hecl/hecl: Make Hash constexpr
2019-08-15 03:00:42 -04:00
Lioncash
216b038a7d
hecl/SystemChar: Unify StrLen implementations and make constexpr
...
We can utilize std::char_traits to generically handle the defined
character type. Since C++17, std::char_traits' length() function is
constexpr, so we can also make StrLen constexpr.
2019-08-15 02:28:31 -04:00
Lioncash
58e0c7eaa7
hecl/SystemChar: Cast to unsigned char before calling tolower/toupper
...
Performed for the same reasons outlined within
b32f16b519eafacb9de4852855486270f73d5e2e (avoiding undefined behavior).
2019-08-15 02:28:31 -04:00
Lioncash
b63d848846
hecl/hecl: Amend lingering formatting inconsistencies
...
Amends formatting issues that were pre-existing to get them out of the
way.
2019-08-15 02:28:09 -04:00
Lioncash
485782e3a7
hecl/hecl: Convert typedefs to using aliases
...
Same thing, but slightly nicer to read.
2019-08-15 02:26:12 -04:00
Lioncash
eb872cdf88
hecl/hecl: Assign ResourceLock's good member in the initializer list
...
Same behavior, but more idiomatic. While we're at it, we can make said
constructor and the conversion operator explicit to make the class a
little less error-prone.
2019-08-15 02:26:12 -04:00
Lioncash
92b87676c2
hecl/hecl: Make Entry take SystemString by value and move it
...
This allows callers to move into the constructor and subsequently move
into the member variable, avoiding copies altogether.
2019-08-15 02:26:12 -04:00
Lioncash
dae3e6123f
hecl/hecl: Make string conv operator+ instances friend functions
...
Makes both operators symmetrical to one another.
2019-08-15 02:26:12 -04:00
Lioncash
c7aae83a75
hecl/hecl: Slightly improve resource usage within string conv operator+ funcs
...
We already construct a std::string instance, so we can just append to
it instead of creating another temporary with std::string's operator+.
We also change this to append using the string view getter functions, as
this allows the appending process to do less work. When a pointer is
passed in, a strlen call would need to be performed in order to
determine the total characters to append. However, we already know the
size (via the string view).
2019-08-15 02:26:12 -04:00
Lioncash
c513a4b61f
hecl/hecl: Make use of std::char_traits with StrNCmp
...
Same behavior, but allows removing the use of ifdefs, unifying the code
paths.
2019-08-15 02:26:12 -04:00
Lioncash
ef6b41ea15
hecl/hecl: Amend string functions operating on string views to use interface functions
...
We don't really need to call out to the C functions to perform the
comparison behavior when the views already have a comparison function
as part of their interface.
2019-08-15 02:26:03 -04:00
Lioncash
e0b5a4e2f7
hecl/hecl: Cast to unsigned char before calling std::isspace
...
std::string_view instances can contain character values that lie outside
the range of an unsigned char (negative values). If such a value is
passed into std::isspace, then the behavior of the function is
undefined. To avoid this, we add these casts.
2019-08-15 01:21:10 -04:00
Lioncash
91ff474c44
hecl/hecl: Handle bounded strings within CaseInsensitiveCompare
...
std::string_view instances aren't guaranteed to be null-terminated, so
we shouldn't be treating them as if they are in these functions, and
should instead use a bounded comparison based off their sizes.
This way we prevent an edge-case from ever becoming a problem and also
remove an ifdef, making the code uniform across all implementations.
2019-08-15 01:21:04 -04:00
Jack Andersen
7b05b41d34
Windows build fixes
2019-07-27 15:19:48 -10:00
Jack Andersen
6988f86672
Massive fmtlib refactor
2019-07-19 18:22:58 -10:00
Jack Andersen
31caec79dd
Windows build fixes
2019-06-12 15:29:52 -10:00
Jack Andersen
387f8fa864
Blender Python API updates and better CMake dependency handling
2019-06-11 16:01:19 -10:00
Jack Andersen
7cc157c8b9
Support for per-stage shader hashing
2019-06-05 14:07:29 -10:00
Jack Andersen
92e2c03a01
Fix skin binding unordered_map use
2019-05-08 13:38:00 -10:00
Jack Andersen
5c59acddf2
Blender 2.8 refactor
2019-05-07 17:47:34 -10:00
Jack Andersen
8b1b674a7d
Ensure uninitialized data is not accessed in normal operation
2019-04-06 18:54:58 -10:00
Jack Andersen
3759bf1b3d
Avoid redundant pool destroy/allocs
2019-03-04 22:34:03 -10:00
Jack Andersen
927be4e839
Proper blending modes for handling alpha test
2019-03-02 20:17:41 -10:00
Jack Andersen
1f04f7ae12
Add closefrom call to RunProcess
2019-02-26 19:13:19 -10:00
Jack Andersen
6626557cc4
TexGen bug fix with diffuse-only pass
2019-02-26 18:50:13 -10:00
Jack Andersen
8e8ecaf4aa
Add fallback for diffuse expression
2019-02-24 22:10:34 -10:00
Jack Andersen
470182de06
Support for diffuse texture identification in IR
2019-02-23 21:14:43 -10:00
Jack Andersen
23a6d66a8c
Add -j argument for hecl cooking
2019-02-03 14:01:12 -10:00
Jack Andersen
f35285b076
Windows fixes
2019-01-28 22:25:51 -10:00
Phillip Stephens
7542cb9650
Minor fixes
2019-01-26 15:21:30 -08:00
Phillip Stephens
f776f89bee
Minor Console fixes
2018-12-09 21:12:10 -08:00
Jack Andersen
72193079ae
New code style refactor
2018-12-07 19:18:42 -10:00
Jack Andersen
54c466276b
SIMD refactor
2018-12-07 15:31:11 -10:00
Jack Andersen
e2ec1f69a3
Vertex shaders do rigging computations in object space
2018-11-07 14:53:00 -10:00
Jack Andersen
344148e3b3
Add direct SDNA parser for blend files
2018-10-21 22:14:32 -10:00
Jack Andersen
a230eeb3b1
Macros for shader extensions to determine blend factors
2018-10-20 18:13:25 -10:00
Jack Andersen
808e46a4ef
Update boo
2018-10-18 16:19:17 -10:00
Jack Andersen
d395f4a79e
macOS build fixes
2018-10-15 17:15:05 -10:00
Jack Andersen
61a50aa57e
Windows sync fixes for API changes
2018-10-14 10:09:15 -10:00
Jack Andersen
aef455e1ab
Attachment model support in blender addon
2018-10-11 10:48:13 -10:00
Jack Andersen
d1f0450401
Convert to pragma once
2018-10-06 17:38:44 -10:00
Jack Andersen
0ee18025dd
Huge shader infrastructure refactor
2018-10-06 16:53:57 -10:00
Jack Andersen
e16ef9709d
Update submodules
2018-09-02 14:45:32 -10:00
Phillip Stephens
61f744e15d
Defer values for unregistered CVars
2018-06-12 20:19:08 -07:00
Phillip Stephens
801214d9a8
Add support for string literals in Console::executeString, add implicit get/set for CVars
2018-06-12 19:03:29 -07:00
Jack Andersen
56a0661d33
Update boo
2018-06-01 14:02:20 -10:00
Jack Andersen
c11557bcff
Make SIGINT a bit cleaner for packaging
2018-05-25 17:07:04 -10:00
Jack Andersen
77f814192e
Windows build fixes
2018-05-24 20:34:58 -10:00
Jack Andersen
d0d330062f
Resource tracing and memory leak fixes
2018-05-19 20:12:32 -10:00
Jack Andersen
9c30a44a65
Fix see through collision material
2018-05-10 21:02:19 -10:00
Phillip Stephens
eae0dbd2bb
Add ability to flag commands
2018-04-29 20:11:37 -07:00
Phillip Stephens
031c139e2d
Merge commit '13b41ab'
2018-04-26 14:11:49 -07:00
Phillip Stephens
694bc0a888
Add ability to unregister command on the fly
2018-04-26 14:10:32 -07:00
Jack Andersen
aa84d7c725
Add emissive cycles shaders
2018-04-14 20:04:08 -10:00
Jack Andersen
396790181a
Minimized shader hash generation; more compatible MultiProgressPrinter
2018-04-07 10:52:35 -10:00
Jack Andersen
b54dedb22b
Minor cook fixes
2018-04-03 22:28:13 -10:00
Jack Andersen
94988eb9e5
GX shader cook fixes; Resource cook passes
2018-04-01 18:26:21 -10:00
Jack Andersen
c9f61eb9da
Fixes for GameCube targeting
2018-03-27 22:06:34 -10:00
Jack Andersen
d1a66e15d4
Add parallel progress printing
2018-03-23 11:40:12 -10:00
Jack Andersen
3acb9c9e3d
Initial PATH cooking support
2018-02-24 22:23:00 -10:00
Jack Andersen
06797cd9fc
Add PATH .blend file type
2018-02-23 20:15:12 -10:00
Jack Andersen
3eedbd3c3b
Template-based DNA refactor
2018-02-21 21:23:15 -10:00
Jack Andersen
7a60440d58
Add shader mode for constant alpha overwrite
2018-02-04 20:54:35 -10:00
Jack Andersen
1b861eaa61
Non-clobbering YAML serialize operation
2018-01-22 18:40:09 -10:00
Phillip Stephens
24abe43865
Restore old CVar system
2018-01-21 18:40:11 -08:00
Jack Andersen
ac29a724ba
Deep color CVar and GLSL backend bug fixes
2018-01-15 20:30:37 -10:00
Phillip Stephens
da5ba6cdf3
Registration fix for Vec*CVar and StringCVar
2018-01-15 07:58:40 -08:00
Phillip Stephens
8cef2f5192
Add ability to enable developer mode in-code
2018-01-15 05:18:03 -08:00
Phillip Stephens
5c66ffc5df
Refactor CVar class
2018-01-15 04:34:02 -08:00
Phillip Stephens
52c14848d9
Various minor fixes
2018-01-13 23:37:00 -08:00
Phillip Stephens
f777d034f2
Implement core Console behavior and CVarManager commands
2018-01-13 18:39:32 -08:00
Phillip Stephens
7f6913e046
Fix linux build, initial logvisor integration into Console
2018-01-11 08:26:33 -08:00
Phillip Stephens
e247733d04
Initial `Console` implementation
2018-01-11 01:36:00 -08:00
Jack Andersen
2d0f079991
Add CVarCommons; hecl-light library
2018-01-09 20:16:18 -10:00
Jack Andersen
b3ca5b1e1e
Changes to support MSAA rendering
2018-01-06 19:17:45 -10:00
Jack Andersen
aae0dc56b7
Huge compile performance refactor
2017-12-28 21:56:31 -10:00
Phillip Stephens
0e4310903d
Update boo; Add initial GUI mode support
2017-12-15 18:13:20 -08:00
Jack Andersen
93711460f8
More flexible cull-mode options for shader extensions
2017-12-09 19:29:23 -10:00
Jack Andersen
a60a02a31e
Add flip flag for collision triangles
2017-12-08 19:15:26 -10:00
Jack Andersen
559096feeb
UWP support
2017-12-05 17:22:31 -10:00
Jack Andersen
d4ce1d4913
ProjectPath bug fixes
2017-12-01 19:49:45 -10:00
Jack Andersen
1987a6e3d3
Implement asprintf for Windows
2017-11-24 16:49:50 -10:00
Jack Andersen
ddf7c983da
Major refactor of hecl parser using @hackyourlife architecture
2017-11-20 23:33:28 -10:00
Jack Andersen
b41b21cb4b
Windows fixes
2017-11-13 17:34:05 -10:00
Jack Andersen
4111d49d64
string_view refactor
2017-11-12 20:13:53 -10:00
Jack Andersen
a3b9a32633
Remaining object tracker platforms
2017-11-05 20:56:17 -10:00
Jack Andersen
d2fda8a373
Changes to support new boo object tracker API
2017-11-04 20:15:03 -10:00
Jack Andersen
3e18e519ce
Windows fixes
2017-10-29 21:29:07 -10:00
Jack Andersen
337e087182
0-size buffer fix
2017-10-27 21:08:17 -10:00
Jack Andersen
a2c5d891b5
Various bug fixes
2017-10-27 00:10:08 -10:00
Jack Andersen
5e99ee1d95
Minor improvements
2017-10-25 19:37:15 -10:00
Jack Andersen
b7208bfc5f
Implement `hecl package`
2017-10-24 21:46:32 -10:00
Jack Andersen
48ec4cf6eb
Various bug fixes
2017-10-21 20:10:59 -10:00
Jack Andersen
ebad51dc2e
Add DCLN blend type
2017-10-16 19:51:13 -10:00
Jack Andersen
2674989a4a
Generate pool skin index for CPU-based skinning operations
2017-08-20 19:46:26 -10:00
Jack Andersen
f761810e8c
Other platforms for SteamFinder
2017-07-23 13:44:17 -10:00
Jack Andersen
14277fa386
Add Steam app finder, fix missing blender cube bug
2017-07-22 23:20:28 -10:00
Jack Andersen
40a26ae19d
Add missing string.h and algorithm includes
2017-06-10 19:01:17 -10:00
Jack Andersen
7e01a86330
Windows fixes
2017-06-10 08:40:27 -10:00
Jack Andersen
d8ed2fd157
Isolate hecl::SystemChar in single header
2017-06-10 08:22:40 -10:00
Jack Andersen
a0efeb3c07
Add visibility mode field for mappable objects
2017-04-22 11:44:18 -10:00
Jack Andersen
8bfac09158
Add map visibility mode property
2017-04-18 13:38:23 -10:00
Jack Andersen
21e2a26e36
HLSL reflection fix
2017-03-26 08:21:01 -10:00
Jack Andersen
b860d962ae
Reflection shader support
2017-03-25 19:51:58 -10:00
Jack Andersen
ed5085e42b
MAPA/MAPU bug fixes
2017-03-20 11:14:20 -10:00
Jack Andersen
53521a0eea
Initial blender addon support for MAPA and MAPU types
2017-03-19 19:08:51 -10:00
Jack Andersen
165094b949
Merge branch 'master' of https://github.com/AxioDL/hecl
2017-03-13 21:03:35 -10:00
Jack Andersen
626056f3b9
Refactor for boo upgrades
2017-03-13 21:03:22 -10:00
Jack Andersen
2478495cbb
GCC compile fixes
2017-03-10 20:32:12 -10:00
Jack Andersen
b30381a5fd
Move xxhash to boo
2017-03-04 21:55:32 -10:00
Jack Andersen
89f216d94f
Add hecl::PathRelative()
2017-02-24 21:58:36 -10:00
Jack Andersen
8c3a7da616
Updates to support VISI generation
2017-02-23 22:27:07 -10:00
Phillip Stephens
d67d54ddd0
Change how 32bit hashes are calculated to prevent collisions
2017-02-13 13:27:43 -08:00
Jack Andersen
86f9f62ef6
Targeted subresource generation for Actor and World blends
2017-02-12 20:51:15 -10:00
Jack Andersen
ae9b2309cf
Add RecrusiveMakeDir
2017-02-03 17:45:39 -10:00
Jack Andersen
8469ee8fac
Update athena, minor buffer pool changes
2017-01-31 21:19:15 -10:00
Jack Andersen
c6671b114e
FRME cook fixes
2017-01-28 17:56:54 -10:00
Phillip Stephens
c840625080
Add Char16ToWide helper function
2017-01-23 23:55:26 -08:00
Jack Andersen
b8abd466dd
char16_t formatting support
2017-01-23 21:40:09 -10:00
Jack Andersen
aecaab27a4
Create directory chains at a late point during extract
2017-01-16 15:21:13 -10:00
Phillip Stephens
c4ee610169
Fix stack related crash in getGlobResults
2017-01-01 15:19:03 -08:00
Phillip Stephens
279b4b1d68
Update Collision cook process
2016-12-28 11:41:03 -08:00
Jack Andersen
77c3d1e184
BlenderConnection stability improvements for Windows
2016-12-25 12:15:31 -10:00
Jack Andersen
0bf5499717
More portable std::atomic_bool initialization
2016-12-24 21:24:19 -10:00
Jack Andersen
d7c5dff1f0
Windows fixes
2016-12-24 21:02:34 -10:00
Jack Andersen
75847c67d3
Better thread contention handling for BlenderConnection
2016-12-24 15:35:30 -10:00
Jack Andersen
3d4355182f
Squelch redefinition warnings
2016-12-16 13:05:11 -10:00
Jack Andersen
121f566848
Use atomics for pool buffer ref-counts
2016-12-14 12:56:32 -10:00
Jack Andersen
46b04925c3
More graceful handling of non-installed blender
2016-12-12 10:09:53 -10:00
Jack Andersen
399cdfc657
Update submodules
2016-12-11 10:20:55 -10:00
Jack Andersen
f0b73d268d
Update submodules
2016-12-10 15:51:51 -10:00
Jack Andersen
b12b858f3d
Integrate llvm BitVector and MathExtras
2016-12-09 16:32:20 -10:00
Jack Andersen
aa408ccfec
Move LTO-problematic definitions out of header
2016-10-10 15:21:15 -10:00
Jack Andersen
7f5ba744da
Additional BlenderConnection World capabilities
2016-10-07 17:40:08 -10:00
Jack Andersen
e65fe14c53
BlenderConnection tweaks
2016-10-02 12:34:10 -10:00
Jack Andersen
4f53d886ce
Implement world cooker
2016-10-01 13:18:52 -10:00
Jack Andersen
835976be56
BlenderConnection::compileWorld() stub
2016-09-30 12:41:01 -10:00
Jack Andersen
c0f060d6ad
Remove unnecessary glob regex
2016-09-24 15:57:43 -10:00
Jack Andersen
c1dcf6d23e
Windows Fixes
2016-09-18 15:02:57 -10:00
Jack Andersen
6de25c1d1d
Refinements to avoid bad level linkages
2016-09-18 13:46:49 -10:00
Jack Andersen
5303b9bda1
Dramatic shader cache performance improvement
2016-09-11 18:52:55 -10:00
Jack Andersen
691d53304c
Add skin bank count field to HMDL metadata
2016-09-04 12:47:09 -10:00
Jack Andersen
0d048657d4
comment capitalization
2016-08-31 13:07:40 -10:00
Jack Andersen
f0b1837300
Add handy StringUtils begin/end compare functions
2016-08-30 15:13:00 -10:00
Jack Andersen
07c21ec489
ProjectPath hashing fix
2016-08-28 14:28:24 -10:00
Jack Andersen
719c62f09f
Add ResourceLock for detecting parallel resource collisions
2016-08-11 16:33:03 -10:00