diff options
author | Jay Sorg <jay.sorg@gmail.com> | 2013-11-14 20:30:33 -0800 |
---|---|---|
committer | Jay Sorg <jay.sorg@gmail.com> | 2013-11-14 20:30:33 -0800 |
commit | c20dbff64410ce312112db5eb7e3f2930ed8ba86 (patch) | |
tree | f54642b29cb55ca49474d524c2ae6c2ea0eb95c5 /xorg/server/module/rdp.h | |
parent | f5e9bc3308617eefd7a527d91a97aef4b8c2369b (diff) | |
download | xrdp-proprietary-c20dbff64410ce312112db5eb7e3f2930ed8ba86.tar.gz xrdp-proprietary-c20dbff64410ce312112db5eb7e3f2930ed8ba86.zip |
xorg: work on xrdp xorg driver
Diffstat (limited to 'xorg/server/module/rdp.h')
-rw-r--r-- | xorg/server/module/rdp.h | 97 |
1 files changed, 93 insertions, 4 deletions
diff --git a/xorg/server/module/rdp.h b/xorg/server/module/rdp.h index c3533e98..7784f567 100644 --- a/xorg/server/module/rdp.h +++ b/xorg/server/module/rdp.h @@ -65,6 +65,26 @@ struct _rdpKeyboard }; typedef struct _rdpKeyboard rdpKeyboard; + +struct _rdpPixmapRec +{ + int status; + int rdpindex; + int con_number; + int is_dirty; + int is_scratch; + int is_alpha_dirty_not; + /* number of times used in a remote operation + if this gets above XRDP_USE_COUNT_THRESHOLD + then we force remote the pixmap */ + int use_count; + int kind_width; + struct rdp_draw_item *draw_item_head; + struct rdp_draw_item *draw_item_tail; +}; +typedef struct _rdpPixmapRec rdpPixmapRec; +typedef struct _rdpPixmapRec * rdpPixmapPtr; + /* move this to common header */ struct _rdpRec { @@ -114,6 +134,13 @@ struct _rdpRec char uds_data[256]; rdpClientCon *clientConHead; rdpClientCon *clientConTail; + + rdpPixmapRec screenPriv; + int sendUpdateScheduled; /* boolean */ + OsTimerPtr sendUpdateTimer; + + int do_dirty_ons; /* boolean */ + }; typedef struct _rdpRec rdpRec; typedef struct _rdpRec * rdpPtr; @@ -127,11 +154,73 @@ struct _rdpGCRec typedef struct _rdpGCRec rdpGCRec; typedef struct _rdpGCRec * rdpGCPtr; -struct _rdpPixmapRec +#define RDI_FILL 1 +#define RDI_IMGLL 2 /* lossless */ +#define RDI_IMGLY 3 /* lossy */ +#define RDI_LINE 4 +#define RDI_SCRBLT 5 +#define RDI_TEXT 6 + +struct urdp_draw_item_fill { - int i1; + int opcode; + int fg_color; + int bg_color; + int pad0; +}; + +struct urdp_draw_item_img +{ + int opcode; + int pad0; +}; + +struct urdp_draw_item_line +{ + int opcode; + int fg_color; + int bg_color; + int width; + xSegment* segs; + int nseg; + int flags; +}; + +struct urdp_draw_item_scrblt +{ + int srcx; + int srcy; + int dstx; + int dsty; + int cx; + int cy; +}; + +struct urdp_draw_item_text +{ + int opcode; + int fg_color; + struct rdp_text* rtext; /* in rdpglyph.h */ +}; + +union urdp_draw_item +{ + struct urdp_draw_item_fill fill; + struct urdp_draw_item_img img; + struct urdp_draw_item_line line; + struct urdp_draw_item_scrblt scrblt; + struct urdp_draw_item_text text; +}; + +struct rdp_draw_item +{ + int type; /* RDI_FILL, RDI_IMGLL, ... */ + int flags; + struct rdp_draw_item* prev; + struct rdp_draw_item* next; + RegionPtr reg; + union urdp_draw_item u; }; -typedef struct _rdpPixmapRec rdpPixmapRec; -typedef struct _rdpPixmapRec * rdpPixmapPtr; +#define XRDP_USE_COUNT_THRESHOLD 1 #endif |