mirror of
https://github.com/DeeJanuz/frametop.git
synced 2026-10-06 05:00:08 +02:00
Hands: fixes from the first headset test
- The runtime files move to /run/user/UID/frametop-hands/: the desktop session deletes /run/user/UID/frametop at every start. - The cutout copy shader runs at highp: mediump (16-bit on Adreno) stepped 1.7 texels across a 3440-pixel screen. - One hand no longer pinches both sides after its left/right call flips mid-pinch, and --pinch-palm-down (0.6) holds back pinches with the palm facing down (typing on a lap keyboard). - ft-camd judges a colour frame fresh by its luma rows only, and logs per-buffer changes at stale colour frames with FT_CAMD_DEBUG=1. - hands/run.sh caps skips the setcap when ft-camd already has them. - The replay tool dumps poses (--poses), and its pinch events carry the hand id. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
4e5131d8ce
commit
e2abaa06b6
20 files changed
+131
-39
No files matched your search
+2
-2
@@ -59,7 +59,7 @@ bool Hands::Read() {
|
||||
const int64_t now = MonoNs();
|
||||
if (now - lastOpenTry_ < 1'000'000'000) return false;
|
||||
lastOpenTry_ = now;
|
||||
const std::string path = "/run/user/" + std::to_string(getuid()) + "/frametop/hands";
|
||||
const std::string path = "/run/user/" + std::to_string(getuid()) + "/frametop-hands/hands";
|
||||
fd_ = open(path.c_str(), O_RDONLY | O_CLOEXEC | O_NOFOLLOW);
|
||||
if (fd_ < 0) return false;
|
||||
struct stat st;
|
||||
@@ -295,7 +295,7 @@ void main() {
|
||||
// The client's pixels, opaque (its alpha is ignored, as IgnoreTextureAlpha did).
|
||||
const char *kCopy = R"(
|
||||
#extension GL_OES_EGL_image_external : require
|
||||
precision mediump float;
|
||||
precision highp float; // mediump (16-bit on Adreno) steps 1.7 texels across a 3440-pixel screen
|
||||
uniform samplerExternalOES tex;
|
||||
varying vec2 uv;
|
||||
void main() { gl_FragColor = vec4(texture2D(tex, uv).rgb, 1.0); })";
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@
|
||||
// room (Room View) through the screen instead of the screen drawn over the hand.
|
||||
//
|
||||
// ft-hands (hands/) publishes the hands it sees with the headset's cameras to
|
||||
// /run/user/UID/frametop/hands (hands/include/fh_hands.h):
|
||||
// /run/user/UID/frametop-hands/hands (hands/include/fh_hands.h):
|
||||
// capsules (finger bones, palm, forearm) in the head frame at capture time. Hands turns
|
||||
// them into the room with the head pose at that time. Project() finds where each eye
|
||||
// sees them on a panel, and Renderer draws the panel's client buffer into a side-by-side
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
//
|
||||
// ft-handtest [--distance m] [--width m] [--seconds s]
|
||||
//
|
||||
// Needs hand tracking running (hands/run.sh; ft-hands publishes /run/user/UID/frametop/hands).
|
||||
// Needs hand tracking running (hands/run.sh; ft-hands publishes /run/user/UID/frametop-hands/hands).
|
||||
// Build: screens/build.sh (build/ft-handtest), run in the dev container.
|
||||
#include "handcut.h"
|
||||
|
||||
|
||||
Reference in new issue
Block a user