Age | Commit message (Collapse) | Author |
|
|
|
1. Calling valueChanged didn't invoke machinery in
value<t>, only base_value aka value_.
There's a fast path in value<t>::type() despite the
pessimization.
2. Split global scope stuff into options::globals from
the options::globals stuff
3. Adjust usages
|
|
|
|
No visible changes (hopefully).
|
|
|
|
Reported-by: Artem Sobolev
|
|
|
|
Issue: #748
|
|
|
|
Issue: #748
|
|
|
|
- use `static constexpr inline' to avoid requiring
explicit declarations in object code
- use `const Foo* const' to maybe put into readonly
binary segment (at least for ELF DSOs)
- `constexpr' in function scope has storage, avoid
`static'
- don't use `constexpr' where there's no advantage,
like arrays
We'd like to avoid overhead of atomic initialization
for each function call. No idea how `static constexpr'
requiring storage in the standard plays with atomic
initialization requirement. Hearsay points that
`constexpr' without `static' in block scope behaves
more to our liking. It's all hazy though.
I'm not 100% sure if `static inline constexpr' has any
storage. Hopefully none, like a #define, and stuff
bigger than registers gets coalesced within the same
module, with small stuff being immediates.
|
|
Adjust usages.
|
|
|
|
|
|
|
|
|
|
We're going to base opentrack derivatives on the same branch. Previously
merges were a living hell. Modularizing the UI code and having
continuously-built executables will do a lot.
First opentrack variant in progress is a TrackHat device for mouse and
scrolling control for people with spine and hand/arm disabilities.
|