FBO as desktop wallpaper

Hello Everyone,

I was wondering if there’s a way to use an FBO as a dynamic desktop wallpaper (any platform).

  • is that technically possible?
  • If so, what sort of performance can I expect in terms of frame rates?

I’m trying to visualize a few ‘live-desktop’ ideas. I’m aiming for ‘sketch/prototype’ level of fidelity. I can fake it with layered images (for icons and other desktop elements) but I was hoping to push it a notch.

Any opinions, links, insights, etc. appreciated!


Ping on this. Anyone?


I don’t know any doable solution with a FBO.
But I did remember doing a similar thing 6yrs back…that was on windows XP.

It was a live sketch app that allows you draw directly on the desktop wallpaper.
I approached with a pretty dumb solution by first reading the wallpaper file into the memory,
then capturing mouse position/clicks to draw. Every time a new stroke is done, the wallpaper file is saved.

I’m not sure if windows now allows for a FBO approach(not likely), but it depends on how often you want to update your wallpaper, some dumb solution might just work.


Not very sophisticated but I made an app a few years ago on OSX that would periodically save over the top of an image and then call some applescript via command line to reset the wallpaper image. I guess you could make an app to do that with what’s in your FBO and see what kind of speeds you can get. I doubt there’s a way to do this with texture sharing but would be great if possible.

Hi, thanks for all the recommendations! I’ve been experimenting a little bit on windows and so far I have the ability to get the context between the desktop wallpaper and the icons (which is what I want). Unfortunately what I can draw is just this:
TextOut(hdc, 10, 10, “hello”, 12);
The hdc I obtain through various FindWindow processes. It’s basically a device context handle *(HDC GetDC)

The question then is, how would I go about using that context area or as the drawing area? Meaning, how would I assign the context handle to cinder window (which I can then try to customize and make transparent/no frame etc.? Are there some ‘magic’ commands which would allow me to do that? I don’t expect to interact with it on desktop, just show ‘data’ and update accordingly. I do need high fps’s though.

You can see the little hello world sign behind the chrome icon. The blue is the desktop wallpaper.