Screen and Window Capture

A patch to capture the full screen, so that (among other things) one can create screensavers which (appear to) modify the existing screen contents.

[edit: this request has been expanded to include window capturing.]

Just.Jake's picture
Of note

Check out Fenetres Volantes at http://objective-cocoa.org/fenetresvolantes/en/index_en.html

Stuff like that should now be easy to do via the CGWindow API.

Just.Jake's picture
Done

I've got this working, using the CGWindow API. I sent it to cwright.

cwright's picture
it's true

Just confirming Just.Jake's words, he did indeed send it. I've been swamped this week, so I've not been able to test it yet, or prep for a posting here. :/ Sorry.

gtoledo3's picture
I checked out Fenetres a

I checked out Fenetres a long time ago...

But, is there away to actually do the screen grab within QC? This one is marked as done.... is there something I missed here!?

smokris's picture
Screen Saver input

gtoledo3 wrote:
is there away to actually do the screen grab within QC?

Kinda. As of Leopard, Quartz Composer includes a "Screen Saver" template, which provides a "_protocolInput_ScreenImage" --- which takes a screenshot just prior to launching the screensaver, and feeds it into the composition. I marked it "Done" because that fulfilled what I wanted for "screen capture" functionality.

What other uses do you have in mind?

gtoledo3's picture
Whoops, and re-reading the

Whoops, and re-reading the original post, I guess this is done.

I find it irritating that, to my memory, if you load any .qtz with that input into the Apple Screensaver library, and activate it as a screensaver when you have password implemented, all you see is "black". I think that is why Fenetres uses Cocoa to get the screengrab...my memory could be failing me on that.

I also think it sucks that the "protocol" screen grab can't be set to grab specific windows or coordinates at worst. The thing that would like is to do live/video screen grab of a small space in Processing, Nodebox, etc., and route it into QC with the appropriate buffer to keep the computer from blowing up.

If it was possible to set it to grab a specific window... you could set up Processing in a different position in Spaces from QC... ah, dreams.

smokris's picture
Window Grabber

gtoledo3 wrote:
If it was possible to set it to grab a specific window...

Yes, that could be quite cool.. Using CGWindow, as Just.Jake and cwright discussed above, it might even be possible. Also Apple provides http://developer.apple.com/samplecode/SonOfGrab/ which may be helpful in implementation.

I've edited this featurerequest and marked it 'not done'.