first pass at multi-monitor capture
[imager-screenshot.git] / Screenshot.xs
1 #include "EXTERN.h"
2 #include "perl.h"
3 #include "XSUB.h"
4 #include "ppport.h"
5 #include "imext.h"
6 #include "imperl.h"
7 #include "imss.h"
8
9 DEFINE_IMAGER_CALLBACKS;
10
11 #define imss__x11_open imss_x11_open
12
13 MODULE = Imager::Screenshot  PACKAGE = Imager::Screenshot PREFIX = imss
14
15 PROTOTYPES: DISABLE
16
17 #ifdef SS_WIN32
18
19 Imager::ImgRaw
20 imss_win32(hwnd, include_decor = 0, left = 0, top = 0, right = 0, bottom = 0, display = 0)
21         unsigned hwnd
22         int include_decor
23         int left
24         int top
25         int right
26         int bottom
27         int display
28
29 #endif
30
31 #ifdef SS_X11
32
33 Imager::ImgRaw
34 imss_x11(display, window_id, left = 0, top = 0, right = 0, bottom = 0)
35         unsigned long display
36         int window_id
37         int left
38         int top
39         int right
40         int bottom
41
42 unsigned long
43 imss_x11_open(display_name = NULL)
44         const char *display_name
45
46 void
47 imss_x11_close(display)
48         unsigned long display
49
50 #endif
51
52 #ifdef SS_DARWIN
53
54 Imager::ImgRaw
55 imss_darwin(left = 0, top = 0, right = 0, bottom = 0)
56         int left
57         int top
58         int right
59         int bottom
60
61 #endif
62
63 BOOT:
64         PERL_INITIALIZE_IMAGER_CALLBACKS;