FreeRDP
x11_shadow.h
1 
19 #ifndef FREERDP_SERVER_SHADOW_X11_H
20 #define FREERDP_SERVER_SHADOW_X11_H
21 
22 #include <freerdp/server/shadow.h>
23 
24 typedef struct x11_shadow_subsystem x11ShadowSubsystem;
25 
26 #include <winpr/crt.h>
27 #include <winpr/synch.h>
28 #include <winpr/thread.h>
29 #include <winpr/stream.h>
30 #include <winpr/collections.h>
31 
32 #include <X11/Xlib.h>
33 
34 #ifdef WITH_XSHM
35 #include <X11/extensions/XShm.h>
36 #endif
37 
38 #ifdef WITH_XFIXES
39 #include <X11/extensions/Xfixes.h>
40 #endif
41 
42 #ifdef WITH_XTEST
43 #include <X11/extensions/XTest.h>
44 #endif
45 
46 #ifdef WITH_XDAMAGE
47 #include <X11/extensions/Xdamage.h>
48 #endif
49 
50 #ifdef WITH_XINERAMA
51 #include <X11/extensions/Xinerama.h>
52 #endif
53 
55 {
56  rdpShadowSubsystem common;
57 
58  HANDLE thread;
59 
60  UINT32 bpp;
61  int xfds;
62  UINT32 depth;
63  UINT32 width;
64  UINT32 height;
65  int number;
66  XImage* image;
67  Screen* screen;
68  Visual* visual;
69  Display* display;
70  UINT32 scanline_pad;
71  BOOL composite;
72 
73  BOOL use_xshm;
74  BOOL use_xfixes;
75  BOOL use_xdamage;
76  BOOL use_xinerama;
77 
78  XImage* fb_image;
79  Pixmap fb_pixmap;
80  Window root_window;
81  XShmSegmentInfo fb_shm_info;
82 
83  UINT32 cursorHotX;
84  UINT32 cursorHotY;
85  UINT32 cursorWidth;
86  UINT32 cursorHeight;
87  UINT64 cursorId;
88  BYTE* cursorPixels;
89  UINT32 cursorMaxWidth;
90  UINT32 cursorMaxHeight;
91  rdpShadowClient* lastMouseClient;
92 
93 #ifdef WITH_XDAMAGE
94  GC xshm_gc;
95  Damage xdamage;
96  int xdamage_notify_event;
97  XserverRegion xdamage_region;
98 #endif
99 
100 #ifdef WITH_XFIXES
101  int xfixes_cursor_notify_event;
102 #endif
103  UINT32 format;
104 };
105 
106 #ifdef __cplusplus
107 extern "C"
108 {
109 #endif
110 
111 #ifdef __cplusplus
112 }
113 #endif
114 
115 #endif /* FREERDP_SERVER_SHADOW_X11_H */