Age | Commit message (Collapse) | Author | |
---|---|---|---|
2018-03-10 | sprinkle some `static constexpr inline' | Stanislaw Halik | |
2018-02-16 | compat/macros: cleanup | Stanislaw Halik | |
Remove cruft, adjust usages. | |||
2018-02-15 | clean up "static" and "constexpr" types | Stanislaw Halik | |
- 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. | |||
2018-02-12 | cmake: add zh_CN | Stanislaw Halik | |
cf. #746 | |||
2018-01-18 | compat/util: retire | Stanislaw Halik | |
Adjust usages. | |||
2018-01-10 | pose-widget: drop alpha calculation | Stanislaw Halik | |
We don't have 8-bit alpha in Qt anyway. | |||
2018-01-10 | many: spring cleanup | Stanislaw Halik | |
2018-01-03 | pose-widget: sprinkle some const | Stanislaw Halik | |
2017-12-29 | pose-widget: fix off-by-one | Stanislaw Halik | |
2017-12-02 | pose-widget: disable bilinear filtering | Stanislaw Halik | |
2017-11-14 | pose-widget: cleanup nonsense | Stanislaw Halik | |
2017-10-29 | static constexpr -> constexpr | Stanislaw Halik | |
2017-10-13 | compat/macros: fix "restrict" name clash | Stanislaw Halik | |
2017-10-02 | pose-widget: only draw needed octopus size | Stanislaw Halik | |
2017-09-23 | play with thread priorities | Stanislaw Halik | |
2017-09-08 | pose-widget: fix race on startup | Stanislaw Halik | |
2017-08-19 | pose-widget: clamp floats | Stanislaw Halik | |
We can't expect bounds check to work, if depending on floating-point dot product. | |||
2017-08-19 | Revert "pose-widget: remove badly-looking shadow" | Stanislaw Halik | |
The shadow's not at fault. cf. https://github.com/opentrack/opentrack/issues/664#issuecomment-322397835 | |||
2017-08-03 | pose-widget: remove badly-looking shadow | Stanislaw Halik | |
2017-07-28 | gui: don't update the main window if it's hidden | Stanislaw Halik | |
2017-07-20 | pose-widget: fix Qt use-after-free | Stanislaw Halik | |
Due to Qt's implicit sharing, something goes wrong when calling QImage::constBits(). It's likely related to to multithreading. Strangely enough, `constBits()' shouldn't perform a copy of the image according to Qt docs. While here, remove the "offset" defensive coding. Also, use a constant depth as to reduce confusion. | |||
2017-07-18 | pose-widget: fix build | Stanislaw Halik | |
2017-06-30 | pose-widget: optimize CPU usage slightly | Stanislaw Halik | |
CPU usage of an empty tracker loop fell reliably from 1% to .9%. | |||
2017-06-18 | minor tweaks only | Stanislaw Halik | |
2017-05-12 | minor fixes only | Stanislaw Halik | |
2017-05-10 | pose-widget: add empty space to prevent out-out-bounds writes | Stanislaw Halik | |
2017-05-10 | pose-widget: projected pixel overflow isn'n an issue | Stanislaw Halik | |
2017-05-01 | pose-widget: catch 90 deg oblique rotation sooner | Stanislaw Halik | |
2017-04-29 | cv, pose-widget: don't premultiply alpha | Stanislaw Halik | |
It doesn't improve perf. | |||
2017-04-20 | pose-widget: fix build | Stanislaw Halik | |
2017-04-18 | many: use std::f{max,min} for floating-point values | Stanislaw Halik | |
2017-04-18 | pose-widget: also compute alpha in the loop | Stanislaw Halik | |
2017-04-18 | pose-widget: check area for invalid denom | Stanislaw Halik | |
The denom check is a magic number otherwise. | |||
2017-04-17 | pose-widget: iterate over BGR | Stanislaw Halik | |
2017-04-17 | pose-widget: interpolate next in world coordinate space | Stanislaw Halik | |
The next value was chosen in view space. | |||
2017-04-17 | few widgets: use repaint() for no event loop overhead | Stanislaw Halik | |
The Qt event loop overhead formed a decent amount of total CPU usage. `repaint()' is a direct call. | |||
2017-04-17 | cv/video-widget, pose-widget: use premultiplied argb32 surface | Stanislaw Halik | |
2017-04-12 | pose-widget: fix some breakage, forgot what it was | Stanislaw Halik | |
2017-04-06 | pose-widget: avoid condition variable overhead | Stanislaw Halik | |
It's busy-looping on Windows. | |||
2017-04-06 | pose-widget: prevent races and serial execution | Stanislaw Halik | |
We actually need to use "mtx" with the condition variable and copy the data to the worker thread's stack. Also allow for synchronous pose update, for tracking stoppage. | |||
2017-04-06 | pose-widget: rename unit and header | Stanislaw Halik | |
2017-03-29 | pose-widget: reduce latency | Stanislaw Halik | |
- project on a separate thread - use Qt's native ARGB32 - use double buffering - more fine-grained locks | |||
2017-03-28 | start renaming internal macros as OPENTRACK_* to OTR_* | Stanislaw Halik | |
2017-03-27 | cmake: rename project's function prefix | Stanislaw Halik | |
It's not annoying having to type it anymore. Also "otr_boilerplate" -> "otr_module". | |||
2017-03-22 | [COVERITY] pose-widget: fix integer math where fpu was meant | Stanislaw Halik | |
2017-02-27 | remove unfinished polish translation files | Stanislaw Halik | |
Polish speakers typically know English well enough and translations are awkward. | |||
2017-02-21 | modules: add .ts files | Stanislaw Halik | |
2016-12-28 | pose-widget: qrc init needed only for static libraries | Stanislaw Halik | |
cf. http://doc.qt.io/qt-5/resources.html#using-resources-in-a-library | |||
2016-12-28 | pose-widget: qrc initializer needn't be exported | Stanislaw Halik | |
It's only used in _init inside that library. | |||
2016-12-28 | pose-widget: fix resources in library | Stanislaw Halik | |
They must be initialized at top namespace |