Consumer with transparency

Is it possible to make a consumer transparent so that it can reveal the desktop below? I’m thinking of an application where I can have an NDI feed with alpha that overlays on top of other applications. I have an NDI coming in with alpha, but I’m not getting transparency in the consumer layer .

I don’t know of a way to get the consumer window transparent and I know, that it’s quite hard to get any window having transparent areas. That is something, that Windows does poorly. What sure is possible to get the desktop into Caspar as a layer. For instance the NDI Tools Screen Capture utility is one way to do that.

What is your use case?

The use case is for a kiosk of sorts. Looking at the ability to have a superimposed overlay over an application running in the background. This would be used for adding an extra layer of content at various times that is separate from the app.

Maybe not the typical use case for Caspar, but I’m really happy to have found this software, I can see all kinds of uses for it.

M

As I said in my previous post, this is not possible. But you could take the desktop as a layer into Caspar and overlay the NDI on top of it. Then output the whole thing to the screen of the kiosk.

There il also OBS (Open Broadcaster Software) that allows you to capture single application or window, instead of the entire desktop.

Then you can channel it to Caspar though NDI
[or vice versa if you are going to stream with OBS]

Maybe there’s some possibility to grab an NDI feed and output that through a WPF transparent window but I’m not sure about that. If I have some free time I’ll do a quick test for that over the weekend.

AFAIK Windows does not allow half-transparency like you would expect from an alpha-channel, only fully transparency or fully opacity, so I guess you willnot be happy with the result.

It does… some WPF windows use transparent chromes to show effects like half transparency or drop shadows. The transparency part is the easiest on WPF, the hard part is to avoid hit-testing the transparent window with the mouse but there’s a Win32 native method to disable that (WS_EX_TRANSPARENT).

I modified a NDI test app I coded to show a new full screen window for a source:

Very cool. That is the pretty much the application we are looking for. Sort of like using the OS for dynamic compositing.

You already mentioned your use case but I wonder what type of content would you be showing there that can’t be baked right into your current app. Is that a legacy app that doesn’t support media elements? Every app is pretty much a web page nowadays so adding a layer there is trivial.

The use case involves multiple applications from several developers - need to a find a flexible solution that can overlay in a holistic way without impacting the development of each individual application. Different development environments and game engines will be used for producing these applications.