Summary
Add Syphon output — publish MapMap's rendered output composition as a Syphon server so other macOS apps (Resolume, MadMapper, OBS, recorders, …) can receive it. Syphon input (receiving) already works and is merged.
Status
A Phase‑1 implementation exists but is disabled behind a build flag (SYPHON_OUTPUT_EXPERIMENTAL, off by default), because it does not work on Apple Silicon:
- MapMap renders with legacy OpenGL, which macOS translates to Metal (
AppleMetalOpenGLRenderer) on Apple Silicon.
SyphonOpenGLServer cannot create its IOSurface‑backed texture in that context: the log floods with cannot create texture, Metal texture cache was released and no frame is ever published (no server appears in Syphon clients).
The Syphon input source is unaffected.
Path forward
Output needs a modern rendering path for the published frame — a Core‑profile OpenGL or Metal context whose textures Syphon can wrap — rather than MapMap's legacy GL context. This is a larger architectural change than the Syphon work itself.
Repro (with the flag on)
- Build with
SYPHON_OUTPUT_EXPERIMENTAL defined (see src/src.pri).
- Open the output window; View → Publish Syphon Output.
- Observe the
cannot create texture, Metal texture cache was released flood, and that no server appears in a Syphon client.
Notes
Kept, compiled, behind the flag: SyphonOutput / SyphonServerImpl.mm (a SyphonOpenGLServer wrapper) + an OutputGLCanvas publish hook + a "Publish Syphon Output" View‑menu toggle. Tracked for the roadmap.
Summary
Add Syphon output — publish MapMap's rendered output composition as a Syphon server so other macOS apps (Resolume, MadMapper, OBS, recorders, …) can receive it. Syphon input (receiving) already works and is merged.
Status
A Phase‑1 implementation exists but is disabled behind a build flag (
SYPHON_OUTPUT_EXPERIMENTAL, off by default), because it does not work on Apple Silicon:AppleMetalOpenGLRenderer) on Apple Silicon.SyphonOpenGLServercannot create its IOSurface‑backed texture in that context: the log floods withcannot create texture, Metal texture cache was releasedand no frame is ever published (no server appears in Syphon clients).The Syphon input source is unaffected.
Path forward
Output needs a modern rendering path for the published frame — a Core‑profile OpenGL or Metal context whose textures Syphon can wrap — rather than MapMap's legacy GL context. This is a larger architectural change than the Syphon work itself.
Repro (with the flag on)
SYPHON_OUTPUT_EXPERIMENTALdefined (seesrc/src.pri).cannot create texture, Metal texture cache was releasedflood, and that no server appears in a Syphon client.Notes
Kept, compiled, behind the flag:
SyphonOutput/SyphonServerImpl.mm(aSyphonOpenGLServerwrapper) + anOutputGLCanvaspublish hook + a "Publish Syphon Output" View‑menu toggle. Tracked for the roadmap.