Adopts punktfunk_connect_ex from the compositor-selection batch: a Compositor enum on PunktfunkConnection (auto/kwin/wlroots/mutter/gamescope, with the host's name aliases for env parsing), a "Host compositor" picker in Settings (default Automatic — a concrete choice is honored only if that backend is available host-side), and PUNKTFUNK_COMPOSITOR / PUNKTFUNK_REMOTE_COMPOSITOR pass-throughs for the autoconnect dev hook and the remote first-light test. The wire change is backward-compatible (optional trailing byte), so no behavior changes at the default. Validated live against the box: host with no compositor env (auto-detect = KWin) logged "honoring client compositor request compositor=gamescope" and streamed 60/60 decoded frames from the spawned gamescope. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -53,11 +53,16 @@ final class RemoteFirstLightTests: XCTestCase {
|
||||
throw XCTSkip("set PUNKTFUNK_REMOTE_HOST (and start m3-host --source virtual there)")
|
||||
}
|
||||
let port = env["PUNKTFUNK_REMOTE_PORT"].flatMap(UInt16.init) ?? 9777
|
||||
// PUNKTFUNK_REMOTE_COMPOSITOR=kwin|gamescope|… asks the host for a specific
|
||||
// backend (verify in its log: "punktfunk/1 virtual display compositor=…").
|
||||
let compositor = env["PUNKTFUNK_REMOTE_COMPOSITOR"]
|
||||
.flatMap(PunktfunkConnection.Compositor.init(name:)) ?? .auto
|
||||
let width: UInt32 = 1280
|
||||
let height: UInt32 = 720
|
||||
|
||||
let conn = try PunktfunkConnection(
|
||||
host: host, port: port, width: width, height: height, refreshHz: 60)
|
||||
host: host, port: port, width: width, height: height, refreshHz: 60,
|
||||
compositor: compositor)
|
||||
defer { conn.close() }
|
||||
XCTAssertEqual(conn.width, width)
|
||||
XCTAssertEqual(conn.height, height)
|
||||
|
||||
Reference in New Issue
Block a user