Lioncash
2f9010bc9f
hecl/FourCC: Eliminate magic values in DNAFourCC
2019-08-15 06:48:38 -04:00
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