Age | Commit message (Collapse) | Author |
|
|
|
See:
https://github.com/opentrack/opentrack/issues/327#issuecomment-215991810
|
|
Don't prepend existing remaining data racing with add new data. Expose
the lock as a public member.
|
|
We can't have async io on the main thread because QSerialPort's
readyRead() signal can fire constantly, thus consuming all CPU time.
We can't sleep in the main thread either as that blocks too many things.
We can't ignore readyRead() invocations over a threshold as that'll make
us lose some of data notifications.
Refactor hatire to put IO on a thread. Since this is a separate Qt event
loop, we may sleep in there.
Further, add a debug mode reading data from a file, as if it came from a
serial-attached device.
Issue: #327
|
|
Remove redundant operation on the frame.
|
|
The following keybindings are now implemented:
- restart tracking. if not started, starts.
- toggle (keep position) while key held
- zero (keep zero) while key held
The latter two options only work for Windows as libqxt doesn't support
them.
Closes #291
|
|
"no video" wasn't clearly indicating that no tracking was done. Some first
time users had hard times figuring out tracking had to be started.
@sthalik: I've put an image mimicking what you did for "no video", feel
free to change it or switch to plain text instead.
|
|
When an user installs opentrack on a system which has RealSense F200 or
SR300 camera drivers installed, the installer now proposes to install the
proper runtime after having displayed its EULA.
|
|
|
|
It's enabled only for automatic thresholding. With it on, it's possible
to keep tracking in normal light conditions without changing gain or
exposure beforehand.
It won't function on badly overexposed images, or with other bright
white colors in the frame. It should function on somewhat overexposed
images.
CPU usage is somewhat high, even taking advantage of all OpenCV SIMD
goodness as per the code. We can revert the change if user reception is
bad.
|
|
|
|
|
|
|
|
Issue: #342
|
|
|
|
causes breakage. even with denormal flush to zero it's not correct to
compare to epsilon.
|
|
Causes frequent user confusion on Linux.
|
|
Issue: #332
|
|
Closes #340
|
|
Clear registry path when opentrack exits, not merely tracking is
stopped. This is still controlled by the checkbox, while checking for
being the first instance happens always regardless.
Also update dialog description.
Issue: #332
|
|
Make clearing the dll path optional, defaulting to false. See previous
commit.
It has a side effect of games started before opentrack not seeing any
dll path, and loading nothing. That is, opentrack only functions when
tracking is started before a game is started.
Issue: #332
|
|
Some background:
Our dll's for freetrack and npclient protocols don't support indication
whether opentrack is running or not. Worse yet, they're whitelisted on
Arma's anticheat system so we can't modify them at arbitrary times.
It's possible to run multiple opentrack instances at a time and we can't
have multiple instances stepping upon each other's toes. It's kind of
pointless to run multiple sessions but hey.
Implementation:
Guard with a mutex against multiple instances. Only the first instance
(that uses the freetrack protocol at all) gets to control whether the
dll's are accessible.
Remove the registry keys after either freetrack protocol exits or
software exits, but only if we're the first opentrack instance running
freetrack protocol at all.
Issue: #332
|
|
|
|
|
|
|
|
|
|
|
|
|
|
This reverts commit a40a557caddad5285bd03b79dca5f7a94d1f44c5.
|
|
|
|
|
|
When requesting specific modules, opencv doesn't need the others built.
|
|
|
|
|
|
|
|
|
|
We're not using it anywhere.
|
|
We're now using dw2 rather than sjlj for official builds.
|
|
|
|
|
|
There's a race here since further accesses to the points array aren't
protected by a mutex in the extractor class.
There's no race in "get_points()" in the extractor since it's only used
in same thread where updates take place.
|
|
|
|
|
|
|
|
|
|
Previously high DPI made the main screen all out of whack, unreadable
and unusable.
|
|
the RS implementation still resides in a different DLL as it has to be
compiled separately by MSVC compiler.
|
|
|
|
|
|
Closes #290
|