Commit Graph

1173 Commits

Author SHA1 Message Date
Phillip Stephens 7abe527032 Merge pull request #34 from linkmauve/xdg-basedir
Respect the XDG base directory specification
2020-03-03 16:45:08 -08:00
Phillip Stephens 4f045dd0fa Merge pull request #33 from lioncash/transparent
hecl/hecl: Allow CaseInsensitiveCompare to be used with heterogenous lookup
2020-03-03 16:44:55 -08:00
Emmanuel Gil Peyrot 32578f7520 Respect the XDG base directory specification
This helps unclutter the home directory from useless dotfiles, moving
them where they belong.

See https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html
2020-02-25 12:29:15 +01:00
Luke Street 7afe13b713 Update boo (MSAN fix) 2020-02-25 02:32:58 -05:00
Lioncash eebb25a39c hecl/hecl: Allow CaseInsensitiveCompare to be used with heterogenous lookup
It's quite common to see maps or sets that make use of a string->object
association, usually as <std::string, T>. However, this can result in
inefficient code when performing lookups or indexing, as something like:

std::map<std::string, T> some_map;

...

auto iter = some_map.find("Name");

...

will result in a std::string instance being constructed around "Name",
which is less than ideal.

With a heterogenous comparator, however (such as std::less<>), like:

std::map<std::string, T, std::less<>>

we allow the container to do automatic type deduction and comparisons.
This allows types comparable to the key type to be used in find calls,
etc, without actually needing to construct the key type around the other
type.

The main way to enable containers to perform such behavior is by
defining a type named is_transparent within the comparator type.
2020-02-24 04:31:55 -05:00
Luke Street 05cd085264 Update boo 2020-02-21 13:51:03 -05:00
Luke Street 3294047a06 Require Blender 2.81+ 2019-12-22 18:39:24 -05:00
Phillip Stephens 46c3778bc0 Update athena 2019-12-10 20:50:31 -08:00
Phillip Stephens 02d4292179 Add missing brace (where the heck did it go?) 2019-10-24 22:49:41 -07:00
Phillip Stephens a9dee6e268 Minor string fix 2019-10-24 22:43:45 -07:00
Phillip Stephens bc15ab2157 Merge pull request #32 from lioncash/console
Console: Minor changes
2019-10-24 22:41:08 -07:00
Lioncash a0e6ec0de7 Console: Make State enum an enum class
Makes the enum strongly typed and impervious to implicit conversions.
2019-10-21 01:53:05 -04:00
Lioncash 12d6a5ce05 Console: Make isOpen() a const member function
This member function doesn't modify internal member state, so it can be
turned into a const qualified member function.
2019-10-21 01:49:23 -04:00
Lioncash 78aa42032a Console: Make truncation explicit within proc()
Makes floating-point truncation explicit.
2019-10-21 01:40:34 -04:00
Lioncash 358acfe944 Console: Use std::move within vreport()
Avoids redundant copies when emplacing into the log container.
2019-10-21 01:37:07 -04:00
Lioncash c8eab43489 Console: Make commandExists() a const qualified member function
This doesn't modify internal console state, so it can be turned into a
const qualified member function.
2019-10-21 01:30:19 -04:00
Lioncash deb09550d3 Console: Eliminate redundant strlen call in commandExists()
By using the std::string_view constructor for std::string, we can avoid
the char* constructor, which would require a strlen call in order to
determine the string size. This also allows it to work with
non-null-terminated strings.
2019-10-21 01:28:22 -04:00
Lioncash 96721d96ae Console: Avoid unnecessary copies and lookups within executeCommand()
We can make use of the result of a find() call to avoid performing two
redundant lookups into the command map and also use std::move to avoid
performing potentially reallocating copies.
2019-10-21 01:26:21 -04:00
Lioncash 7fbdf384de Console: Reuse iterator in unregisterCommand()
We can use the result of the first lookup to avoid doing another
redundant lookup to perform the erasure.

While we're at it, we can use std::string's std::string_view constructor
in order to avoid an unnecessary strlen() call.
2019-10-21 01:07:41 -04:00
Lioncash 5d2987588b Console: Use emplace in registerCommand()
Allows avoiding a redundant initial element. We can also remove the
const from the std::function rvalue to allow a std::move to take effect.

We can also use the std::string_view constructor for std::string to
avoid an unnecessary strlen() call.
2019-10-21 01:03:30 -04:00
Lioncash cbd40382bf Console: Convert std::bind to lambda functions
Same behavior, but more efficient than wrapping the function.
2019-10-21 00:53:15 -04:00
Lioncash 23f323b0f7 CVar: Use std::string::empty where applicable
We can use empty() instead of comparing against a default constructed
new instance.
2019-10-19 19:24:06 -04:00
Jack Andersen dfcad01c2f Fix TypedVariant building with MSVC 2019-10-18 15:31:54 -10:00
Jack Andersen 3506ee1796 Merge branch 'master' of ssh://git.axiodl.com:6431/AxioDL/hecl 2019-10-12 18:54:33 -10:00
Jack Andersen 72fabc9329 Minor blender exception detection bug fix 2019-10-12 18:54:07 -10:00
Phillip Stephens 8a3b19126a Fix shader generation 2019-10-12 07:12:50 -07:00
Jack Andersen 88e68e8aa3 Merge branch 'master' of ssh://git.axiodl.com:6431/AxioDL/hecl 2019-09-30 21:30:17 -10:00
Jack Andersen 8a73a8ee48 Code style improvements 2019-09-30 21:23:35 -10:00
Lioncash 9138ad691c FourCC: Make rest of interface noexcept where applicable
Makes the interface consistent and allows their use within noexcept
contexts.
2019-09-30 03:13:08 -04:00
Phillip Stephens 6b56f2e6a4 Minor fixes 2019-09-29 08:17:01 -07:00
Phillip Stephens 7fd54effc9 Various fixes and improvements to CVars 2019-09-29 05:44:01 -07:00
Phillip Stephens e80d0319fa Update athena 2019-09-27 20:38:19 -07:00
Phillip Stephens 2a150f2e7f Update athena 2019-09-26 06:54:24 -07:00
Lioncash 72732a1ea7 TypedVariant: Be explicit about athena's Endian type
Allows this code to still compile if the Endian enum is ever changed
into an enum class.
2019-09-20 17:56:15 -04:00
Lioncash 8814ecbc4c TypedVariant: Apply formatting to macros
Applies clang-format to the macros to prevent the changes from being
placed into the following change.
2019-09-20 17:52:28 -04:00
Phillip Stephens 35988aff00 Update athena 2019-09-14 08:46:41 -07:00
Lioncash aaf5bae201 General: Be explicit about athena's Endian type
Allows this code to build if the enumeration is ever changed into a
strongly-typed enumeration.
2019-09-14 10:59:39 -04:00
Lioncash 9901653634 Backend: Make ExtensionSlot's constructor constexpr
These are used within a file-scope lookup table in urde. Without this,
technically those constructors are runtime static constructors.

This allows the compiler to initialize them at compile-time.
2019-09-11 01:52:26 -04:00
Phillip Stephens d13559bf51 Update submdoules 2019-09-10 04:07:31 -07:00
Phillip Stephens b1438a88da Update athena 2019-09-09 04:20:29 -07:00
Phillip Stephens 23dabdaf37 Merge pull request #25 from lioncash/target
ApplicationTools: Link in boo and hecl-light
2019-09-09 04:19:37 -07:00
Phillip Stephens f35e4c27c2 Update submodules 2019-09-08 00:15:48 -07:00
Phillip Stephens 43611bd0b7 Merge pull request #26 from lioncash/enum
General: Be explicit about SeekOrigin type
2019-09-08 00:11:52 -07:00
Lioncash 8bac46508c General: Be explicit about SeekOrigin type
This will make turning SeekOrigin into an enum class a little smoother
without breaking hecl.
2019-09-07 12:33:03 -04:00
Phillip Stephens 7ab3ae5c30 Update athena 2019-09-07 07:07:42 -07:00
Phillip Stephens 822227a1ca Temporary xxhash fixes, update submodules 2019-09-06 23:30:53 -07:00
Lioncash c297c6c7a9 ApplicationTools: Link in boo and hecl-light
Ensures that the include paths are always automatically added to the
shader targets.
2019-09-06 02:10:58 -04:00
Phillip Stephens 6c8ffcddad Update athena 2019-09-05 01:10:05 -07:00
Phillip Stephens b263f29da2 Update athena 2019-09-04 19:37:52 -07:00
Lioncash 5e66bee28c General: Include necessary includes
Ensures all necessary includes are included and also removes headers
that aren't necessary
2019-09-04 19:23:55 -04:00