X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?p=xscreensaver;a=blobdiff_plain;f=utils%2Fgrabscreen.h;h=3d9b16eb9e2cf92ed86e5c6ff3dddc2ae39a5b6e;hp=416c6b2b97f4386aaa94040e509740807aa4126d;hb=96a411663168b0ba5432b407a83be55f3df0c802;hpb=8eb2873d7054e705c4e83f22d18c40946a9e2529 diff --git a/utils/grabscreen.h b/utils/grabscreen.h index 416c6b2b..3d9b16eb 100644 --- a/utils/grabscreen.h +++ b/utils/grabscreen.h @@ -1,4 +1,4 @@ -/* xscreensaver, Copyright (c) 1992, 1993, 1994, 1997, 2001 +/* xscreensaver, Copyright (c) 1992, 1993, 1994, 1997, 2001, 2003 * Jamie Zawinski * * Permission to use, copy, modify, distribute, and sell this software and its @@ -13,11 +13,28 @@ #ifndef __GRABSCREEN_H__ #define __GRABSCREEN_H__ -/* This will write a snapshot of the screen image into the given window. - Beware that the colormap of the window may also be changed (to match - the bits that were drawn.) +/* This will write an image onto the given Drawable. + The Drawable (arg 3) may be a Window or a Pixmap. + + The Window must be the top-level window. The image *may or may not* + be written to the window, though it will definitely be written to + the drawable. It's fine for args 2 and 3 to be the same window, or + for arg 2 to be a Window, and arg 3 to be a Pixmap. + + The loaded image might be from a file, or from a screen shot of the + desktop, or from the system's video input, depending on user + preferences. + + If it is from a file, then it will be returned in `filename_return'. + filename_return may be NULL; also, NULL may be returned (e.g., if + it's a screenshot or video capture.) + + Many colors may be allocated from the window's colormap. */ -extern void grab_screen_image (Screen *, Window); +extern void load_random_image (Screen *screen, + Window top_level_window, + Drawable target_window_or_pixmap, + char **filename_return); /* Whether one should use GCSubwindowMode when drawing on this window (assuming a screen image has been grabbed onto it.) Yes, this is a @@ -32,4 +49,12 @@ extern Bool use_subwindow_mode_p(Screen *screen, Window window); */ extern Bool top_level_window_p(Screen *screen, Window window); + +/* Don't call this: this is for the "xscreensaver-getimage" program only. */ +extern void grab_screen_image_internal (Screen *, Window); + +/* Don't use this: this is how "xscreensaver-getimage" and "grabclient.c" + pass the file name around. */ +#define XA_XSCREENSAVER_IMAGE_FILENAME "_SCREENSAVER_IMAGE_FILENAME" + #endif /* __GRABSCREEN_H__ */