/[rdesktop]/sourceforge.net/trunk/rdesktop/orders.h
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /sourceforge.net/trunk/rdesktop/orders.h

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 15 by matty, Thu Sep 28 05:27:25 2000 UTC revision 843 by jdmeijer, Thu Mar 10 22:40:20 2005 UTC
# Line 1  Line 1 
1  /*  /*
2     rdesktop: A Remote Desktop Protocol client.     rdesktop: A Remote Desktop Protocol client.
3     RDP order processing     RDP order processing
4     Copyright (C) Matthew Chapman 1999-2000     Copyright (C) Matthew Chapman 1999-2005
5        
6     This program is free software; you can redistribute it and/or modify     This program is free software; you can redistribute it and/or modify
7     it under the terms of the GNU General Public License as published by     it under the terms of the GNU General Public License as published by
# Line 33  enum RDP_ORDER_TYPE Line 33  enum RDP_ORDER_TYPE
33          RDP_ORDER_PATBLT = 1,          RDP_ORDER_PATBLT = 1,
34          RDP_ORDER_SCREENBLT = 2,          RDP_ORDER_SCREENBLT = 2,
35          RDP_ORDER_LINE = 9,          RDP_ORDER_LINE = 9,
36          RDP_ORDER_RECT = 10,          RDP_ORDER_RECT = 10,
37          RDP_ORDER_DESKSAVE = 11,          RDP_ORDER_DESKSAVE = 11,
38          RDP_ORDER_MEMBLT = 13,          RDP_ORDER_MEMBLT = 13,
39          RDP_ORDER_TRIBLT = 14,          RDP_ORDER_TRIBLT = 14,
40            RDP_ORDER_POLYGON = 20,
41            RDP_ORDER_POLYGON2 = 21,
42          RDP_ORDER_POLYLINE = 22,          RDP_ORDER_POLYLINE = 22,
43            RDP_ORDER_ELLIPSE = 25,
44            RDP_ORDER_ELLIPSE2 = 26,
45          RDP_ORDER_TEXT2 = 27          RDP_ORDER_TEXT2 = 27
46  };  };
47    
# Line 46  enum RDP_SECONDARY_ORDER_TYPE Line 50  enum RDP_SECONDARY_ORDER_TYPE
50          RDP_ORDER_RAW_BMPCACHE = 0,          RDP_ORDER_RAW_BMPCACHE = 0,
51          RDP_ORDER_COLCACHE = 1,          RDP_ORDER_COLCACHE = 1,
52          RDP_ORDER_BMPCACHE = 2,          RDP_ORDER_BMPCACHE = 2,
53          RDP_ORDER_FONTCACHE = 3          RDP_ORDER_FONTCACHE = 3,
54            RDP_ORDER_RAW_BMPCACHE2 = 4,
55            RDP_ORDER_BMPCACHE2 = 5,
56            RDP_ORDER_BRUSHCACHE = 7
57  };  };
58    
59  typedef struct _DESTBLT_ORDER  typedef struct _DESTBLT_ORDER
60  {  {
61          uint16 x;          sint16 x;
62          uint16 y;          sint16 y;
63          uint16 cx;          sint16 cx;
64          uint16 cy;          sint16 cy;
65          uint8 opcode;          uint8 opcode;
66    
67  } DESTBLT_ORDER;  }
68    DESTBLT_ORDER;
69    
70  typedef struct _PATBLT_ORDER  typedef struct _PATBLT_ORDER
71  {  {
72          uint16 x;          sint16 x;
73          uint16 y;          sint16 y;
74          uint16 cx;          sint16 cx;
75          uint16 cy;          sint16 cy;
76          uint8 opcode;          uint8 opcode;
77          uint8 bgcolour;          uint32 bgcolour;
78          uint8 fgcolour;          uint32 fgcolour;
79          BRUSH brush;          BRUSH brush;
80    
81  } PATBLT_ORDER;  }
82    PATBLT_ORDER;
83    
84  typedef struct _SCREENBLT_ORDER  typedef struct _SCREENBLT_ORDER
85  {  {
86          uint16 x;          sint16 x;
87          uint16 y;          sint16 y;
88          uint16 cx;          sint16 cx;
89          uint16 cy;          sint16 cy;
90          uint8 opcode;          uint8 opcode;
91          uint16 srcx;          sint16 srcx;
92          uint16 srcy;          sint16 srcy;
93    
94  } SCREENBLT_ORDER;  }
95    SCREENBLT_ORDER;
96    
97  typedef struct _LINE_ORDER  typedef struct _LINE_ORDER
98  {  {
99          uint16 mixmode;          uint16 mixmode;
100          uint16 startx;          sint16 startx;
101          uint16 starty;          sint16 starty;
102          uint16 endx;          sint16 endx;
103          uint16 endy;          sint16 endy;
104          uint8 bgcolour;          uint32 bgcolour;
105          uint8 opcode;          uint8 opcode;
106          PEN pen;          PEN pen;
107    
108  } LINE_ORDER;  }
109    LINE_ORDER;
110    
111  typedef struct _RECT_ORDER  typedef struct _RECT_ORDER
112  {  {
113          uint16 x;          sint16 x;
114          uint16 y;          sint16 y;
115          uint16 cx;          sint16 cx;
116          uint16 cy;          sint16 cy;
117          uint8 colour;          uint32 colour;
118    
119  } RECT_ORDER;  }
120    RECT_ORDER;
121    
122  typedef struct _DESKSAVE_ORDER  typedef struct _DESKSAVE_ORDER
123  {  {
124          uint32 offset;          uint32 offset;
125          uint16 left;          sint16 left;
126          uint16 top;          sint16 top;
127          uint16 right;          sint16 right;
128          uint16 bottom;          sint16 bottom;
129          uint8 action;          uint8 action;
130    
131  } DESKSAVE_ORDER;  }
132    DESKSAVE_ORDER;
133    
134  typedef struct _TRIBLT_ORDER  typedef struct _TRIBLT_ORDER
135  {  {
136          uint8 colour_table;          uint8 colour_table;
137          uint8 cache_id;          uint8 cache_id;
138          uint16 x;          sint16 x;
139          uint16 y;          sint16 y;
140          uint16 cx;          sint16 cx;
141          uint16 cy;          sint16 cy;
142          uint8 opcode;          uint8 opcode;
143          uint16 srcx;          sint16 srcx;
144          uint16 srcy;          sint16 srcy;
145          uint8 bgcolour;          uint32 bgcolour;
146          uint8 fgcolour;          uint32 fgcolour;
147          BRUSH brush;          BRUSH brush;
148          uint16 cache_idx;          uint16 cache_idx;
149          uint16 unknown;          uint16 unknown;
150    
151  } TRIBLT_ORDER;  }
152    TRIBLT_ORDER;
153    
154  typedef struct _MEMBLT_ORDER  typedef struct _MEMBLT_ORDER
155  {  {
156          uint8 colour_table;          uint8 colour_table;
157          uint8 cache_id;          uint8 cache_id;
158          uint16 x;          sint16 x;
159          uint16 y;          sint16 y;
160          uint16 cx;          sint16 cx;
161          uint16 cy;          sint16 cy;
162          uint8 opcode;          uint8 opcode;
163          uint16 srcx;          sint16 srcx;
164          uint16 srcy;          sint16 srcy;
165          uint16 cache_idx;          uint16 cache_idx;
166    
167  } MEMBLT_ORDER;  }
168    MEMBLT_ORDER;
169    
170  #define MAX_DATA 256  #define MAX_DATA 256
171    
172    typedef struct _POLYGON_ORDER
173    {
174            sint16 x;
175            sint16 y;
176            uint8 opcode;
177            uint8 fillmode;
178            uint32 fgcolour;
179            uint8 npoints;
180            uint8 datasize;
181            uint8 data[MAX_DATA];
182    
183    }
184    POLYGON_ORDER;
185    
186    typedef struct _POLYGON2_ORDER
187    {
188            sint16 x;
189            sint16 y;
190            uint8 opcode;
191            uint8 fillmode;
192            uint32 bgcolour;
193            uint32 fgcolour;
194            BRUSH brush;
195            uint8 npoints;
196            uint8 datasize;
197            uint8 data[MAX_DATA];
198    
199    }
200    POLYGON2_ORDER;
201    
202  typedef struct _POLYLINE_ORDER  typedef struct _POLYLINE_ORDER
203  {  {
204          uint16 x;          sint16 x;
205          uint16 y;          sint16 y;
206          uint8 flags;          uint8 opcode;
207          uint8 fgcolour;          uint32 fgcolour;
208          uint8 lines;          uint8 lines;
209          uint8 datasize;          uint8 datasize;
210          uint8 data[MAX_DATA];          uint8 data[MAX_DATA];
211    
212  } POLYLINE_ORDER;  }
213    POLYLINE_ORDER;
214    
215    typedef struct _ELLIPSE_ORDER
216    {
217            sint16 left;
218            sint16 top;
219            sint16 right;
220            sint16 bottom;
221            uint8 opcode;
222            uint8 fillmode;
223            uint32 fgcolour;
224    
225    }
226    ELLIPSE_ORDER;
227    
228    typedef struct _ELLIPSE2_ORDER
229    {
230            sint16 left;
231            sint16 top;
232            sint16 right;
233            sint16 bottom;
234            uint8 opcode;
235            uint8 fillmode;
236            BRUSH brush;
237            uint32 bgcolour;
238            uint32 fgcolour;
239    
240    }
241    ELLIPSE2_ORDER;
242    
243  #define MAX_TEXT 256  #define MAX_TEXT 256
244    
# Line 172  typedef struct _TEXT2_ORDER Line 246  typedef struct _TEXT2_ORDER
246  {  {
247          uint8 font;          uint8 font;
248          uint8 flags;          uint8 flags;
249            uint8 opcode;
250          uint8 mixmode;          uint8 mixmode;
251          uint8 unknown;          uint32 bgcolour;
252          uint8 fgcolour;          uint32 fgcolour;
253          uint8 bgcolour;          sint16 clipleft;
254          uint16 clipleft;          sint16 cliptop;
255          uint16 cliptop;          sint16 clipright;
256          uint16 clipright;          sint16 clipbottom;
257          uint16 clipbottom;          sint16 boxleft;
258          uint16 boxleft;          sint16 boxtop;
259          uint16 boxtop;          sint16 boxright;
260          uint16 boxright;          sint16 boxbottom;
261          uint16 boxbottom;          BRUSH brush;
262          uint16 x;          sint16 x;
263          uint16 y;          sint16 y;
264          uint8 length;          uint8 length;
265          uint8 text[MAX_TEXT];          uint8 text[MAX_TEXT];
266    
267  } TEXT2_ORDER;  }
268    TEXT2_ORDER;
269    
270  typedef struct _RDP_ORDER_STATE  typedef struct _RDP_ORDER_STATE
271  {  {
# Line 204  typedef struct _RDP_ORDER_STATE Line 280  typedef struct _RDP_ORDER_STATE
280          DESKSAVE_ORDER desksave;          DESKSAVE_ORDER desksave;
281          MEMBLT_ORDER memblt;          MEMBLT_ORDER memblt;
282          TRIBLT_ORDER triblt;          TRIBLT_ORDER triblt;
283            POLYGON_ORDER polygon;
284            POLYGON2_ORDER polygon2;
285          POLYLINE_ORDER polyline;          POLYLINE_ORDER polyline;
286            ELLIPSE_ORDER ellipse;
287            ELLIPSE2_ORDER ellipse2;
288          TEXT2_ORDER text2;          TEXT2_ORDER text2;
289    
290  } RDP_ORDER_STATE;  }
291    RDP_ORDER_STATE;
292    
293  typedef struct _RDP_RAW_BMPCACHE_ORDER  typedef struct _RDP_RAW_BMPCACHE_ORDER
294  {  {
# Line 220  typedef struct _RDP_RAW_BMPCACHE_ORDER Line 301  typedef struct _RDP_RAW_BMPCACHE_ORDER
301          uint16 cache_idx;          uint16 cache_idx;
302          uint8 *data;          uint8 *data;
303    
304  } RDP_RAW_BMPCACHE_ORDER;  }
305    RDP_RAW_BMPCACHE_ORDER;
306    
307  typedef struct _RDP_BMPCACHE_ORDER  typedef struct _RDP_BMPCACHE_ORDER
308  {  {
# Line 237  typedef struct _RDP_BMPCACHE_ORDER Line 319  typedef struct _RDP_BMPCACHE_ORDER
319          uint16 final_size;          uint16 final_size;
320          uint8 *data;          uint8 *data;
321    
322  } RDP_BMPCACHE_ORDER;  }
323    RDP_BMPCACHE_ORDER;
324    
325    /* RDP_BMPCACHE2_ORDER */
326    #define ID_MASK                 0x0007
327    #define MODE_MASK               0x0038
328    #define SQUARE                  0x0080
329    #define PERSIST                 0x0100
330    #define FLAG_51_UNKNOWN         0x0800
331    
332    #define MODE_SHIFT              3
333    
334    #define LONG_FORMAT             0x80
335    #define BUFSIZE_MASK            0x3FFF  /* or 0x1FFF? */
336    
337  #define MAX_GLYPH 32  #define MAX_GLYPH 32
338    
# Line 250  typedef struct _RDP_FONT_GLYPH Line 345  typedef struct _RDP_FONT_GLYPH
345          uint16 height;          uint16 height;
346          uint8 data[MAX_GLYPH];          uint8 data[MAX_GLYPH];
347    
348  } RDP_FONT_GLYPH;  }
349    RDP_FONT_GLYPH;
350    
351  #define MAX_GLYPHS 256  #define MAX_GLYPHS 256
352    
# Line 260  typedef struct _RDP_FONTCACHE_ORDER Line 356  typedef struct _RDP_FONTCACHE_ORDER
356          uint8 nglyphs;          uint8 nglyphs;
357          RDP_FONT_GLYPH glyphs[MAX_GLYPHS];          RDP_FONT_GLYPH glyphs[MAX_GLYPHS];
358    
359  } RDP_FONTCACHE_ORDER;  }
360    RDP_FONTCACHE_ORDER;
361    
362  typedef struct _RDP_COLCACHE_ORDER  typedef struct _RDP_COLCACHE_ORDER
363  {  {
364          uint8 cache_id;          uint8 cache_id;
365          COLOURMAP map;          COLOURMAP map;
366    
367  } RDP_COLCACHE_ORDER;  }
368    RDP_COLCACHE_ORDER;

Legend:
Removed from v.15  
changed lines
  Added in v.843

  ViewVC Help
Powered by ViewVC 1.1.26