Skip to content

Remove STIOHID support and size markers with UITouch.majorRadius - #5

Merged
cysp merged 1 commit into
masterfrom
ci/public-touch-radius
Sep 26, 2026
Merged

cysp merged 1 commit into
masterfrom
ci/public-touch-radius

Conversation

@cysp

@cysp cysp commented Sep 23, 2026 •

Copy link
Copy Markdown
Owner

Why

STIOHID was an optional compile-time path. With its headers present, STTouchDisplay used private UIEvent/UITouch selectors and assumed an IOHID event object layout reconstructed in 2014; without them, it used fixed marker geometry. In an iOS 27 simulator probe, IOHIDEventGetType(root) returned digitizer type 11, while the old struct read type 1 from the same event. The reader exited at its type check and used its fixed-size fallback even with the headers present. Behavior on a physical iPhone has not been verified.

Behavior change

  • Remove the conditional STIOHID reader and its obsolete header search paths. STIOHID headers no longer change how the library builds or renders markers.
  • Scale both marker axes uniformly with public UITouch.majorRadius, relative to the existing 5-point reference; use the default size for a nonpositive radius.
  • Stop rendering contact ellipses and rotation. The README describes the marker as an approximation of touch contact.
  • Verify 2× scale at a 10-point radius and a return to the default size when a moving touch reports zero.

Validation

  • Local Xcode 27: Objective-C formatting, Release demo build, five library unit tests, the demo UI test, and both static analyzers passed.
  • Xcode 26 CI passed formatting, library and demo builds, unit and UI tests, and both static analyzers on the rewritten commit.
  • Simulator tests verify marker behavior, not physical finger-contact geometry.

@cysp
cysp force-pushed the ci/modernize-ios15 branch from 719d32a to cd7cfed Compare September 23, 2026 14:40
@cysp
cysp force-pushed the ci/public-touch-radius branch 3 times, most recently from ded3ede to 91a76b5 Compare September 23, 2026 15:34
@cysp
cysp force-pushed the ci/modernize-ios15 branch from 8c4df3b to 07bd001 Compare September 23, 2026 16:06
@cysp
cysp force-pushed the ci/public-touch-radius branch from 91a76b5 to 2f439e8 Compare September 23, 2026 16:06
@cysp
cysp force-pushed the ci/modernize-ios15 branch from 07bd001 to 8fa252f Compare September 23, 2026 22:03
@cysp
cysp force-pushed the ci/public-touch-radius branch 2 times, most recently from 5320bbd to e83b652 Compare September 23, 2026 22:36
@cysp
cysp force-pushed the ci/modernize-ios15 branch from 8fa252f to 36e7ee6 Compare September 23, 2026 22:36
@cysp
cysp force-pushed the ci/public-touch-radius branch from e83b652 to 17a69d7 Compare September 23, 2026 23:10
@cysp
cysp changed the base branch from ci/modernize-ios15 to master September 23, 2026 23:11
@cysp
cysp force-pushed the ci/public-touch-radius branch 2 times, most recently from aa8482b to f553ef5 Compare September 24, 2026 15:14
The optional STIOHID path reads private UIKit selectors and assumes a
reconstructed IOHID event layout from 2014. In an iOS 27 simulator
probe, the raw type read through that layout disagreed with the IOHID
accessor, so the overlay used its fixed-size fallback even with the
headers installed.

Remove the conditional HID reader and obsolete header search paths.
Scale both marker axes uniformly from public UITouch.majorRadius,
relative to the existing 5-point reference, and use the default size
for nonpositive radii. This drops contact ellipse and rotation
rendering. Document the approximation and test scaling and fallback
across a moving touch.
@cysp
cysp force-pushed the ci/public-touch-radius branch from f553ef5 to 01c68ee Compare September 26, 2026 09:25
@cysp cysp changed the title Replace private HID touch geometry with UIKit radius Remove STIOHID support and size markers with UITouch.majorRadius Sep 26, 2026
@cysp
cysp merged commit 093abe2 into master Sep 26, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant