summaryrefslogtreecommitdiffhomepage
path: root/proto-mouse
diff options
context:
space:
mode:
authorStanislaw Halik <sthalik@misaki.pl>2018-02-15 09:06:13 +0100
committerStanislaw Halik <sthalik@misaki.pl>2018-02-15 10:23:11 +0100
commit0a92bc147f91f3ecacdf66d995f01f9577107a86 (patch)
treed748f1b081cd37eb2b4a6cd6b5254433ba8b8dab /proto-mouse
parentd8327db8025e56500ebb0bef2ab45aa8963a36ca (diff)
clean up "static" and "constexpr" types
- 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.
Diffstat (limited to 'proto-mouse')
-rw-r--r--proto-mouse/ftnoir_protocol_mouse.cpp14
1 files changed, 7 insertions, 7 deletions
diff --git a/proto-mouse/ftnoir_protocol_mouse.cpp b/proto-mouse/ftnoir_protocol_mouse.cpp
index ccc91e33..b4b27ea9 100644
--- a/proto-mouse/ftnoir_protocol_mouse.cpp
+++ b/proto-mouse/ftnoir_protocol_mouse.cpp
@@ -17,6 +17,12 @@
# define MOUSEEVENTF_MOVE_NOCOALESCE 0x2000
#endif
+static const double invert[] =
+{
+ 1., 1., 1.,
+ 1., -1., 1.
+};
+
void mouse::pose(const double *headpose)
{
const int axis_x = s.Mouse_X - 1;
@@ -24,12 +30,6 @@ void mouse::pose(const double *headpose)
int mouse_x = 0, mouse_y = 0;
- static constexpr double invert[] =
- {
- 1., 1., 1.,
- 1., -1., 1.
- };
-
if (axis_x >= 0 && axis_x < 6)
{
mouse_x = get_value(headpose[axis_x] * invert[axis_x],
@@ -76,7 +76,7 @@ int mouse::get_delta(int val, int prev)
int mouse::get_value(double val, double sensitivity, bool is_rotation)
{
- static constexpr double sgn[] = { 1e-2, 1 };
+ constexpr double sgn[] = { 1e-2, 1 };
constexpr double c = 1e-1;
return iround(val * c * sensitivity * sgn[unsigned(is_rotation)]);