syphon-wgpu 0.1.0

High-level wgpu integration for Syphon
docs.rs failed to build syphon-wgpu-0.1.0
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.

Syphon wgpu Integration - Zero-Copy Edition

High-performance, zero-copy GPU-to-GPU Syphon integration for wgpu applications.

Overview

This crate provides:

  • SyphonWgpuOutput - Publish wgpu-rendered frames to Syphon clients
  • SyphonWgpuInput - Receive frames from Syphon servers as wgpu textures

Both use IOSurface-backed textures for zero-copy GPU transfer.

Native BGRA Format

This crate uses native macOS BGRA8Unorm format throughout. When rendering for Syphon output, use wgpu::TextureFormat::Bgra8Unorm. When receiving from Syphon, you'll get BGRA data directly without any format conversion.

Usage

Output (Server)

use syphon_wgpu::SyphonWgpuOutput;

let mut output = SyphonWgpuOutput::new(
    "My App", &device, &queue, 1920, 1080
).expect("Failed to create Syphon output");

output.publish(&render_texture, &device, &queue);

Input (Client)

use syphon_wgpu::SyphonWgpuInput;

let mut input = SyphonWgpuInput::new(&device, &queue);
input.connect("Simple Server").unwrap();

if let Some(texture) = input.receive_texture(&device, &queue) {
    // Texture is Bgra8Unorm (native Syphon format)
}