Adding syphon support to impress to allow access to the rendered output from other applications

James Sheridan sheridanis at gmail.com
Mon Sep 30 09:10:58 PDT 2013


Hi Tor, thanks for your quick reply

> Presumably you mean an Impress slide show, and not the Impress UI (as
> used to edit slide decks)?
Yes - I actually just came across the slidshow code (I was looking at 
the drawing layer before) and it looks like it might be where I would 
need to implement the changes - specifically

/slideshow/source/engine/OGLTrans/mac/OGLTrans_Shaders.m

which has a function "CopyFramebufferToTexture" which I'm guessing 
copies the slideshow output to a texture? does anyone have any idea what 
type of texture I would need to create to do this? is there a guide to 
writing slide transitions or the like that might mention this?

> As Impress slide shows typically are run full-screen, doesn't your 
> problem then (simply) become one of displaying the whole contents of 
> the screen (either the built-in one, or an external one if you have an 
> external one connected) on the dome? So if you find some way to just 
> display whatever is displayed on an external display onto the dome, it 
> will work for whatever application windows happen to be visible on the 
> screen at any moment. Or am I missing something? --tml 
Currently we do what you mention via displaying the slideshow across 3 
monitors linked into one display (via and AMD eyefinity card) and then 
using hardware capture (via a blackmagic declink quad capture card) to 
capture this into our warping solution (which runs on OSX).   We would 
like to move away from needing a second computer for this though and 
creating an extension/plugin for Libre that just sends the output 
texture to our warping solution.....or any other syphon apps, mad 
mapper, resolume, vdmx etc.

I'm guessing this will also mean I'll need to add in some functionality 
that allows me to set the size of the rendering window (to something 
like 5760x1080) when its not in fullscreen mode - so any pointers tips 
as to where I might find this functionality in the code would be greatly 
appreciated.

Cheers - James


More information about the LibreOffice mailing list