Commit Graph

405 Commits

Author SHA1 Message Date
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
Jack Andersen ca4d50c62b More reliable shader cache; update submodules 2016-08-08 08:22:32 -10:00
Jack Andersen 07fcc2db92 Metal extended shader fixes 2016-08-03 13:46:25 -10:00
Jack Andersen e17d5c0b83 GLSL generation fixes 2016-08-01 19:54:40 -10:00
Jack Andersen 7e42581cf0 HLSL extended shader support 2016-07-31 18:34:08 -10:00
Jack Andersen f9cae24c5d Add alpha-test functionality for applicable blend modes 2016-07-31 13:35:46 -10:00
Jack Andersen ec859598e9 Metal platform conformance 2016-07-31 10:26:08 -10:00
Jack Andersen 9531d2bb02 Fixes for extended shaders 2016-07-30 18:45:28 -10:00
Jack Andersen 0acf4865ca Initial extended shader refactor 2016-07-30 16:06:13 -10:00
Jack Andersen 4aa4668073 Pre-emptive blending mode determination in IR loader 2016-07-26 12:05:21 -10:00
Jack Andersen c74f05f9ac Access color registers from lighting uniform on Metal 2016-07-20 19:18:12 -10:00
Jack Andersen 23f52a1ead Add support for normalizing TCG configs 2016-07-18 17:41:55 -10:00
Jack Andersen c544d99f98 Shader variable emit fixes 2016-07-07 14:05:45 -10:00