Log In  


Looking within the birds.p64 demo:

-- draw mask -- display pixels that have one of these bits set are drawn
-- 0 means draw all pixels
poke(0x547d, 0b00111111)

For a windowed app, this poke means that black (0x0) is not drawn to the screen at all. If we use cls(0) at the top of _draw(), then our entire background is effectively transparent, though the underlying color at those pixels is still 0. if we use a custom color table, gfx ops over the background will consider the "target color" to be 0 as well.

Is there a way to use the underlying desktop pixels as the target instead? This could be used to create some fun effects on the desktop: i'm imagining translucent windows, sophisticated shadows, additive blending...



Old thread with no answer, but... I'm seeking something like this myself. I'd kinda like to make a screensaver that can use a snapshot of the desktop when it starts, and overlay the screensaver on top of it.


This is unfortunately not currently possible. I'm sure you could find a way to get the current desktop background, and render it to a buffer somewhere and use that, but it would be hard to get right. The way the graphics pipeline works means that processes (windows and the background and other stuff) are rendered separately, and combined in the window manager, so that would require a custom OS (which is possible!)



[Please log in to post a comment]