/[rdesktop]/sourceforge.net/trunk/rdesktop/orders.c
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.c

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

revision 55 by jsorg71, Fri Jul 12 03:45:20 2002 UTC revision 207 by matthewc, Thu Sep 26 14:26:46 2002 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-2001     Copyright (C) Matthew Chapman 1999-2002
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 26  static RDP_ORDER_STATE order_state; Line 26  static RDP_ORDER_STATE order_state;
26    
27  /* Read field indicating which parameters are present */  /* Read field indicating which parameters are present */
28  static void  static void
29  rdp_in_present(STREAM s, uint32 *present, uint8 flags, int size)  rdp_in_present(STREAM s, uint32 * present, uint8 flags, int size)
30  {  {
31          uint8 bits;          uint8 bits;
32          int i;          int i;
# Line 54  rdp_in_present(STREAM s, uint32 *present Line 54  rdp_in_present(STREAM s, uint32 *present
54    
55  /* Read a co-ordinate (16-bit, or 8-bit delta) */  /* Read a co-ordinate (16-bit, or 8-bit delta) */
56  static void  static void
57  rdp_in_coord(STREAM s, uint16 *coord, BOOL delta)  rdp_in_coord(STREAM s, uint16 * coord, BOOL delta)
58  {  {
59          uint8 change;          uint8 change;
60    
# Line 71  rdp_in_coord(STREAM s, uint16 *coord, BO Line 71  rdp_in_coord(STREAM s, uint16 *coord, BO
71    
72  /* Read a colour entry */  /* Read a colour entry */
73  static void  static void
74  rdp_in_colour(STREAM s, uint8 *colour)  rdp_in_colour(STREAM s, uint8 * colour)
75  {  {
76          in_uint8(s, *colour);          in_uint8(s, *colour);
77          s->p += 2;          s->p += 2;
# Line 79  rdp_in_colour(STREAM s, uint8 *colour) Line 79  rdp_in_colour(STREAM s, uint8 *colour)
79    
80  /* Parse bounds information */  /* Parse bounds information */
81  static BOOL  static BOOL
82  rdp_parse_bounds(STREAM s, BOUNDS *bounds)  rdp_parse_bounds(STREAM s, BOUNDS * bounds)
83  {  {
84          uint8 present;          uint8 present;
85    
# Line 110  rdp_parse_bounds(STREAM s, BOUNDS *bound Line 110  rdp_parse_bounds(STREAM s, BOUNDS *bound
110    
111  /* Parse a pen */  /* Parse a pen */
112  static BOOL  static BOOL
113  rdp_parse_pen(STREAM s, PEN *pen, uint32 present)  rdp_parse_pen(STREAM s, PEN * pen, uint32 present)
114  {  {
115          if (present & 1)          if (present & 1)
116                  in_uint8(s, pen->style);                  in_uint8(s, pen->style);
# Line 126  rdp_parse_pen(STREAM s, PEN *pen, uint32 Line 126  rdp_parse_pen(STREAM s, PEN *pen, uint32
126    
127  /* Parse a brush */  /* Parse a brush */
128  static BOOL  static BOOL
129  rdp_parse_brush(STREAM s, BRUSH *brush, uint32 present)  rdp_parse_brush(STREAM s, BRUSH * brush, uint32 present)
130  {  {
131          if (present & 1)          if (present & 1)
132                  in_uint8(s, brush->xorigin);                  in_uint8(s, brush->xorigin);
# Line 148  rdp_parse_brush(STREAM s, BRUSH *brush, Line 148  rdp_parse_brush(STREAM s, BRUSH *brush,
148    
149  /* Process a destination blt order */  /* Process a destination blt order */
150  static void  static void
151  process_destblt(STREAM s, DESTBLT_ORDER *os, uint32 present, BOOL delta)  process_destblt(STREAM s, DESTBLT_ORDER * os, uint32 present, BOOL delta)
152  {  {
153          if (present & 0x01)          if (present & 0x01)
154                  rdp_in_coord(s, &os->x, delta);                  rdp_in_coord(s, &os->x, delta);
# Line 173  process_destblt(STREAM s, DESTBLT_ORDER Line 173  process_destblt(STREAM s, DESTBLT_ORDER
173    
174  /* Process a pattern blt order */  /* Process a pattern blt order */
175  static void  static void
176  process_patblt(STREAM s, PATBLT_ORDER *os, uint32 present, BOOL delta)  process_patblt(STREAM s, PATBLT_ORDER * os, uint32 present, BOOL delta)
177  {  {
178          if (present & 0x0001)          if (present & 0x0001)
179                  rdp_in_coord(s, &os->x, delta);                  rdp_in_coord(s, &os->x, delta);
# Line 198  process_patblt(STREAM s, PATBLT_ORDER *o Line 198  process_patblt(STREAM s, PATBLT_ORDER *o
198    
199          rdp_parse_brush(s, &os->brush, present >> 7);          rdp_parse_brush(s, &os->brush, present >> 7);
200    
201          DEBUG(("PATBLT(op=0x%x,x=%d,y=%d,cx=%d,cy=%d,bs=%d,bg=0x%x,fg=0x%x)\n",          DEBUG(("PATBLT(op=0x%x,x=%d,y=%d,cx=%d,cy=%d,bs=%d,bg=0x%x,fg=0x%x)\n", os->opcode, os->x,
202                 os->opcode, os->x, os->y, os->cx, os->cy,                 os->y, os->cx, os->cy, os->brush.style, os->bgcolour, os->fgcolour));
                os->brush.style, os->bgcolour, os->fgcolour));  
203    
204          ui_patblt(ROP2_P(os->opcode), os->x, os->y, os->cx, os->cy,          ui_patblt(ROP2_P(os->opcode), os->x, os->y, os->cx, os->cy,
205                    &os->brush, os->bgcolour, os->fgcolour);                    &os->brush, os->bgcolour, os->fgcolour);
# Line 208  process_patblt(STREAM s, PATBLT_ORDER *o Line 207  process_patblt(STREAM s, PATBLT_ORDER *o
207    
208  /* Process a screen blt order */  /* Process a screen blt order */
209  static void  static void
210  process_screenblt(STREAM s, SCREENBLT_ORDER *os, uint32 present, BOOL delta)  process_screenblt(STREAM s, SCREENBLT_ORDER * os, uint32 present, BOOL delta)
211  {  {
212          if (present & 0x0001)          if (present & 0x0001)
213                  rdp_in_coord(s, &os->x, delta);                  rdp_in_coord(s, &os->x, delta);
# Line 234  process_screenblt(STREAM s, SCREENBLT_OR Line 233  process_screenblt(STREAM s, SCREENBLT_OR
233          DEBUG(("SCREENBLT(op=0x%x,x=%d,y=%d,cx=%d,cy=%d,srcx=%d,srcy=%d)\n",          DEBUG(("SCREENBLT(op=0x%x,x=%d,y=%d,cx=%d,cy=%d,srcx=%d,srcy=%d)\n",
234                 os->opcode, os->x, os->y, os->cx, os->cy, os->srcx, os->srcy));                 os->opcode, os->x, os->y, os->cx, os->cy, os->srcx, os->srcy));
235    
236          ui_screenblt(ROP2_S(os->opcode), os->x, os->y, os->cx, os->cy,          ui_screenblt(ROP2_S(os->opcode), os->x, os->y, os->cx, os->cy, os->srcx, os->srcy);
                      os->srcx, os->srcy);  
237  }  }
238    
239  /* Process a line order */  /* Process a line order */
240  static void  static void
241  process_line(STREAM s, LINE_ORDER *os, uint32 present, BOOL delta)  process_line(STREAM s, LINE_ORDER * os, uint32 present, BOOL delta)
242  {  {
243          if (present & 0x0001)          if (present & 0x0001)
244                  in_uint16_le(s, os->mixmode);                  in_uint16_le(s, os->mixmode);
# Line 266  process_line(STREAM s, LINE_ORDER *os, u Line 264  process_line(STREAM s, LINE_ORDER *os, u
264          rdp_parse_pen(s, &os->pen, present >> 7);          rdp_parse_pen(s, &os->pen, present >> 7);
265    
266          DEBUG(("LINE(op=0x%x,sx=%d,sy=%d,dx=%d,dx=%d,fg=0x%x)\n",          DEBUG(("LINE(op=0x%x,sx=%d,sy=%d,dx=%d,dx=%d,fg=0x%x)\n",
267                 os->opcode, os->startx, os->starty, os->endx, os->endy,                 os->opcode, os->startx, os->starty, os->endx, os->endy, os->pen.colour));
                os->pen.colour));  
268    
269          if (os->opcode < 0x01 || os->opcode > 0x10)          if (os->opcode < 0x01 || os->opcode > 0x10)
270          {          {
# Line 275  process_line(STREAM s, LINE_ORDER *os, u Line 272  process_line(STREAM s, LINE_ORDER *os, u
272                  return;                  return;
273          }          }
274    
275          ui_line(os->opcode - 1, os->startx, os->starty,          ui_line(os->opcode - 1, os->startx, os->starty, os->endx, os->endy, &os->pen);
                 os->endx, os->endy, &os->pen);  
276  }  }
277    
278  /* Process an opaque rectangle order */  /* Process an opaque rectangle order */
279  static void  static void
280  process_rect(STREAM s, RECT_ORDER *os, uint32 present, BOOL delta)  process_rect(STREAM s, RECT_ORDER * os, uint32 present, BOOL delta)
281  {  {
282          if (present & 0x01)          if (present & 0x01)
283                  rdp_in_coord(s, &os->x, delta);                  rdp_in_coord(s, &os->x, delta);
# Line 298  process_rect(STREAM s, RECT_ORDER *os, u Line 294  process_rect(STREAM s, RECT_ORDER *os, u
294          if (present & 0x10)          if (present & 0x10)
295                  in_uint8(s, os->colour);                  in_uint8(s, os->colour);
296    
297          DEBUG(("RECT(x=%d,y=%d,cx=%d,cy=%d,fg=0x%x)\n",          DEBUG(("RECT(x=%d,y=%d,cx=%d,cy=%d,fg=0x%x)\n", os->x, os->y, os->cx, os->cy, os->colour));
                os->x, os->y, os->cx, os->cy, os->colour));  
298    
299          ui_rect(os->x, os->y, os->cx, os->cy, os->colour);          ui_rect(os->x, os->y, os->cx, os->cy, os->colour);
300  }  }
301    
302  /* Process a desktop save order */  /* Process a desktop save order */
303  static void  static void
304  process_desksave(STREAM s, DESKSAVE_ORDER *os, uint32 present, BOOL delta)  process_desksave(STREAM s, DESKSAVE_ORDER * os, uint32 present, BOOL delta)
305  {  {
306          int width, height;          int width, height;
307    
# Line 329  process_desksave(STREAM s, DESKSAVE_ORDE Line 324  process_desksave(STREAM s, DESKSAVE_ORDE
324                  in_uint8(s, os->action);                  in_uint8(s, os->action);
325    
326          DEBUG(("DESKSAVE(l=%d,t=%d,r=%d,b=%d,off=%d,op=%d)\n",          DEBUG(("DESKSAVE(l=%d,t=%d,r=%d,b=%d,off=%d,op=%d)\n",
327                 os->left, os->top, os->right, os->bottom, os->offset,                 os->left, os->top, os->right, os->bottom, os->offset, os->action));
                os->action));  
328    
329          width = os->right - os->left + 1;          width = os->right - os->left + 1;
330          height = os->bottom - os->top + 1;          height = os->bottom - os->top + 1;
# Line 338  process_desksave(STREAM s, DESKSAVE_ORDE Line 332  process_desksave(STREAM s, DESKSAVE_ORDE
332          if (os->action == 0)          if (os->action == 0)
333                  ui_desktop_save(os->offset, os->left, os->top, width, height);                  ui_desktop_save(os->offset, os->left, os->top, width, height);
334          else          else
335                  ui_desktop_restore(os->offset, os->left, os->top, width,                  ui_desktop_restore(os->offset, os->left, os->top, width, height);
                                    height);  
336  }  }
337    
338  /* Process a memory blt order */  /* Process a memory blt order */
339  static void  static void
340  process_memblt(STREAM s, MEMBLT_ORDER *os, uint32 present, BOOL delta)  process_memblt(STREAM s, MEMBLT_ORDER * os, uint32 present, BOOL delta)
341  {  {
342          HBITMAP bitmap;          HBITMAP bitmap;
343    
# Line 379  process_memblt(STREAM s, MEMBLT_ORDER *o Line 372  process_memblt(STREAM s, MEMBLT_ORDER *o
372                  in_uint16_le(s, os->cache_idx);                  in_uint16_le(s, os->cache_idx);
373    
374          DEBUG(("MEMBLT(op=0x%x,x=%d,y=%d,cx=%d,cy=%d,id=%d,idx=%d)\n",          DEBUG(("MEMBLT(op=0x%x,x=%d,y=%d,cx=%d,cy=%d,id=%d,idx=%d)\n",
375                 os->opcode, os->x, os->y, os->cx, os->cy, os->cache_id,                 os->opcode, os->x, os->y, os->cx, os->cy, os->cache_id, os->cache_idx));
                os->cache_idx));  
376    
377          bitmap = cache_get_bitmap(os->cache_id, os->cache_idx);          bitmap = cache_get_bitmap(os->cache_id, os->cache_idx);
378          if (bitmap == NULL)          if (bitmap == NULL)
379                  return;                  return;
380    
381          ui_memblt(ROP2_S(os->opcode), os->x, os->y, os->cx, os->cy,          ui_memblt(ROP2_S(os->opcode), os->x, os->y, os->cx, os->cy, bitmap, os->srcx, os->srcy);
                   bitmap, os->srcx, os->srcy);  
382  }  }
383    
384  /* Process a 3-way blt order */  /* Process a 3-way blt order */
385  static void  static void
386  process_triblt(STREAM s, TRIBLT_ORDER *os, uint32 present, BOOL delta)  process_triblt(STREAM s, TRIBLT_ORDER * os, uint32 present, BOOL delta)
387  {  {
388          HBITMAP bitmap;          HBITMAP bitmap;
389    
# Line 438  process_triblt(STREAM s, TRIBLT_ORDER *o Line 429  process_triblt(STREAM s, TRIBLT_ORDER *o
429                  in_uint16_le(s, os->unknown);                  in_uint16_le(s, os->unknown);
430    
431          DEBUG(("TRIBLT(op=0x%x,x=%d,y=%d,cx=%d,cy=%d,id=%d,idx=%d,bs=%d,bg=0x%x,fg=0x%x)\n",          DEBUG(("TRIBLT(op=0x%x,x=%d,y=%d,cx=%d,cy=%d,id=%d,idx=%d,bs=%d,bg=0x%x,fg=0x%x)\n",
432                 os->opcode, os->x, os->y, os->cx, os->cy, os->cache_id,                 os->opcode, os->x, os->y, os->cx, os->cy, os->cache_id, os->cache_idx,
433                 os->cache_idx, os->brush.style, os->bgcolour, os->fgcolour));                 os->brush.style, os->bgcolour, os->fgcolour));
434    
435          bitmap = cache_get_bitmap(os->cache_id, os->cache_idx);          bitmap = cache_get_bitmap(os->cache_id, os->cache_idx);
436          if (bitmap == NULL)          if (bitmap == NULL)
437                  return;                  return;
438    
439          ui_triblt(os->opcode, os->x, os->y, os->cx, os->cy,          ui_triblt(os->opcode, os->x, os->y, os->cx, os->cy,
440                    bitmap, os->srcx, os->srcy,                    bitmap, os->srcx, os->srcy, &os->brush, os->bgcolour, os->fgcolour);
                   &os->brush, os->bgcolour, os->fgcolour);  
441  }  }
442    
443  /* Parse a delta co-ordinate in polyline order form */  /* Parse a delta co-ordinate in polyline order form */
444  static int  static int
445  parse_delta(uint8 *buffer, int *offset)  parse_delta(uint8 * buffer, int *offset)
446  {  {
447          int value = buffer[(*offset)++];          int value = buffer[(*offset)++];
448          int two_byte = value & 0x80;          int two_byte = value & 0x80;
# Line 470  parse_delta(uint8 *buffer, int *offset) Line 460  parse_delta(uint8 *buffer, int *offset)
460    
461  /* Process a polyline order */  /* Process a polyline order */
462  static void  static void
463  process_polyline(STREAM s, POLYLINE_ORDER *os, uint32 present, BOOL delta)  process_polyline(STREAM s, POLYLINE_ORDER * os, uint32 present, BOOL delta)
464  {  {
465          int index, line, data;          int index, line, data;
466          int x, y, xfrom, yfrom;          int x, y, xfrom, yfrom;
# Line 485  process_polyline(STREAM s, POLYLINE_ORDE Line 475  process_polyline(STREAM s, POLYLINE_ORDE
475                  rdp_in_coord(s, &os->y, delta);                  rdp_in_coord(s, &os->y, delta);
476    
477          if (present & 0x04)          if (present & 0x04)
478                  in_uint8(s, os->flags);                  in_uint8(s, os->opcode);
479    
480          if (present & 0x10)          if (present & 0x10)
481                  rdp_in_colour(s, &os->fgcolour);                  rdp_in_colour(s, &os->fgcolour);
# Line 498  process_polyline(STREAM s, POLYLINE_ORDE Line 488  process_polyline(STREAM s, POLYLINE_ORDE
488                  in_uint8(s, os->datasize);                  in_uint8(s, os->datasize);
489                  in_uint8a(s, os->data, os->datasize);                  in_uint8a(s, os->data, os->datasize);
490          }          }
         if (os->flags & 1)  
                 opcode = ROP2_COPY;  
         else  
                 opcode = ROP2_NXOR;  
491    
492          DEBUG(("POLYLINE(x=%d,y=%d,fl=0x%x,fg=0x%x,n=%d,sz=%d)\n",          DEBUG(("POLYLINE(x=%d,y=%d,op=0x%x,fg=0x%x,n=%d,sz=%d)\n",
493                 os->x, os->y, os->flags, os->fgcolour, os->lines, os->datasize));                 os->x, os->y, os->opcode, os->fgcolour, os->lines, os->datasize));
494    
495          DEBUG(("Data: "));          DEBUG(("Data: "));
496    
# Line 513  process_polyline(STREAM s, POLYLINE_ORDE Line 499  process_polyline(STREAM s, POLYLINE_ORDE
499    
500          DEBUG(("\n"));          DEBUG(("\n"));
501    
502            if (os->opcode < 0x01 || os->opcode > 0x10)
503            {
504                    error("bad ROP2 0x%x\n", os->opcode);
505                    return;
506            }
507    
508            opcode = os->opcode - 1;
509          x = os->x;          x = os->x;
510          y = os->y;          y = os->y;
511          pen.style = pen.width = 0;          pen.style = pen.width = 0;
# Line 545  process_polyline(STREAM s, POLYLINE_ORDE Line 538  process_polyline(STREAM s, POLYLINE_ORDE
538    
539  /* Process a text order */  /* Process a text order */
540  static void  static void
541  process_text2(STREAM s, TEXT2_ORDER *os, uint32 present, BOOL delta)  process_text2(STREAM s, TEXT2_ORDER * os, uint32 present, BOOL delta)
542  {  {
543          int i;          int i;
544    
# Line 603  process_text2(STREAM s, TEXT2_ORDER *os, Line 596  process_text2(STREAM s, TEXT2_ORDER *os,
596                  in_uint8a(s, os->text, os->length);                  in_uint8a(s, os->text, os->length);
597          }          }
598    
599          DEBUG(("TEXT2(x=%d,y=%d,cl=%d,ct=%d,cr=%d,cb=%d,bl=%d,bt=%d,bb=%d,br=%d,fg=0x%x,bg=0x%x,font=%d,fl=0x%x,mix=%d,unk=0x%x,n=%d)\n",          DEBUG(("TEXT2(x=%d,y=%d,cl=%d,ct=%d,cr=%d,cb=%d,bl=%d,bt=%d,bb=%d,br=%d,fg=0x%x,bg=0x%x,font=%d,fl=0x%x,mix=%d,unk=0x%x,n=%d)\n", os->x, os->y, os->clipleft, os->cliptop, os->clipright, os->clipbottom, os->boxleft, os->boxtop, os->boxright, os->boxbottom, os->fgcolour, os->bgcolour, os->font, os->flags, os->mixmode, os->unknown, os->length));
                os->x, os->y, os->clipleft, os->cliptop, os->clipright,  
                os->clipbottom, os->boxleft, os->boxtop, os->boxright,  
                os->boxbottom, os->fgcolour, os->bgcolour, os->font,  
                os->flags, os->mixmode, os->unknown, os->length));  
600    
601          DEBUG(("Text: "));          DEBUG(("Text: "));
602    
# Line 622  process_text2(STREAM s, TEXT2_ORDER *os, Line 611  process_text2(STREAM s, TEXT2_ORDER *os,
611                       os->clipbottom - os->cliptop,                       os->clipbottom - os->cliptop,
612                       os->boxleft, os->boxtop,                       os->boxleft, os->boxtop,
613                       os->boxright - os->boxleft,                       os->boxright - os->boxleft,
614                       os->boxbottom - os->boxtop,                       os->boxbottom - os->boxtop, os->bgcolour, os->fgcolour, os->text, os->length);
                      os->bgcolour, os->fgcolour, os->text, os->length);  
615  }  }
616    
617  /* Process a raw bitmap cache order */  /* Process a raw bitmap cache order */
# Line 645  process_raw_bmpcache(STREAM s) Line 633  process_raw_bmpcache(STREAM s)
633          in_uint16_le(s, cache_idx);          in_uint16_le(s, cache_idx);
634          in_uint8p(s, data, bufsize);          in_uint8p(s, data, bufsize);
635    
636          DEBUG(("RAW_BMPCACHE(cx=%d,cy=%d,id=%d,idx=%d)\n",          DEBUG(("RAW_BMPCACHE(cx=%d,cy=%d,id=%d,idx=%d)\n", width, height, cache_id, cache_idx));
                width, height, cache_id, cache_idx));  
637          inverted = xmalloc(width * height);          inverted = xmalloc(width * height);
638          for (y = 0; y < height; y++)          for (y = 0; y < height; y++)
639          {          {
640                  memcpy(&inverted[(height - y - 1) * width], &data[y * width],                  memcpy(&inverted[(height - y - 1) * width], &data[y * width], width);
                        width);  
641          }          }
642    
643          bitmap = ui_create_bitmap(width, height, inverted);          bitmap = ui_create_bitmap(width, height, inverted);
# Line 680  process_bmpcache(STREAM s) Line 666  process_bmpcache(STREAM s)
666          in_uint8s(s, 4);        /* row_size, final_size */          in_uint8s(s, 4);        /* row_size, final_size */
667          in_uint8p(s, data, size);          in_uint8p(s, data, size);
668    
669          DEBUG(("BMPCACHE(cx=%d,cy=%d,id=%d,idx=%d)\n",          DEBUG(("BMPCACHE(cx=%d,cy=%d,id=%d,idx=%d)\n", width, height, cache_id, cache_idx));
                width, height, cache_id, cache_idx));  
670    
671          bmpdata = xmalloc(width * height);          bmpdata = xmalloc(width * height);
672    
# Line 753  process_fontcache(STREAM s) Line 738  process_fontcache(STREAM s)
738                  in_uint8p(s, data, datasize);                  in_uint8p(s, data, datasize);
739    
740                  bitmap = ui_create_glyph(width, height, data);                  bitmap = ui_create_glyph(width, height, data);
741                  cache_put_font(font, character, offset, baseline,                  cache_put_font(font, character, offset, baseline, width, height, bitmap);
                                width, height, bitmap);  
742          }          }
743  }  }
744    
# Line 861  process_orders(STREAM s) Line 845  process_orders(STREAM s)
845                                              os->bounds.top,                                              os->bounds.top,
846                                              os->bounds.right -                                              os->bounds.right -
847                                              os->bounds.left + 1,                                              os->bounds.left + 1,
848                                              os->bounds.bottom -                                              os->bounds.bottom - os->bounds.top + 1);
                                             os->bounds.top + 1);  
849                          }                          }
850    
851                          delta = order_flags & RDP_ORDER_DELTA;                          delta = order_flags & RDP_ORDER_DELTA;
# Line 870  process_orders(STREAM s) Line 853  process_orders(STREAM s)
853                          switch (os->order_type)                          switch (os->order_type)
854                          {                          {
855                                  case RDP_ORDER_DESTBLT:                                  case RDP_ORDER_DESTBLT:
856                                          process_destblt(s, &os->destblt,                                          process_destblt(s, &os->destblt, present, delta);
                                                         present, delta);  
857                                          break;                                          break;
858    
859                                  case RDP_ORDER_PATBLT:                                  case RDP_ORDER_PATBLT:
860                                          process_patblt(s, &os->patblt,                                          process_patblt(s, &os->patblt, present, delta);
                                                        present, delta);  
861                                          break;                                          break;
862    
863                                  case RDP_ORDER_SCREENBLT:                                  case RDP_ORDER_SCREENBLT:
864                                          process_screenblt(s, &os->screenblt,                                          process_screenblt(s, &os->screenblt, present, delta);
                                                           present, delta);  
865                                          break;                                          break;
866    
867                                  case RDP_ORDER_LINE:                                  case RDP_ORDER_LINE:
868                                          process_line(s, &os->line,                                          process_line(s, &os->line, present, delta);
                                                      present, delta);  
869                                          break;                                          break;
870    
871                                  case RDP_ORDER_RECT:                                  case RDP_ORDER_RECT:
872                                          process_rect(s, &os->rect,                                          process_rect(s, &os->rect, present, delta);
                                                      present, delta);  
873                                          break;                                          break;
874    
875                                  case RDP_ORDER_DESKSAVE:                                  case RDP_ORDER_DESKSAVE:
876                                          process_desksave(s, &os->desksave,                                          process_desksave(s, &os->desksave, present, delta);
                                                          present, delta);  
877                                          break;                                          break;
878    
879                                  case RDP_ORDER_MEMBLT:                                  case RDP_ORDER_MEMBLT:
880                                          process_memblt(s, &os->memblt,                                          process_memblt(s, &os->memblt, present, delta);
                                                        present, delta);  
881                                          break;                                          break;
882    
883                                  case RDP_ORDER_TRIBLT:                                  case RDP_ORDER_TRIBLT:
884                                          process_triblt(s, &os->triblt,                                          process_triblt(s, &os->triblt, present, delta);
                                                        present, delta);  
885                                          break;                                          break;
886    
887                                  case RDP_ORDER_POLYLINE:                                  case RDP_ORDER_POLYLINE:
888                                          process_polyline(s, &os->polyline,                                          process_polyline(s, &os->polyline, present, delta);
                                                          present, delta);  
889                                          break;                                          break;
890    
891                                  case RDP_ORDER_TEXT2:                                  case RDP_ORDER_TEXT2:
892                                          process_text2(s, &os->text2,                                          process_text2(s, &os->text2, present, delta);
                                                       present, delta);  
893                                          break;                                          break;
894    
895                                  default:                                  default:
# Line 937  process_orders(STREAM s) Line 910  process_orders(STREAM s)
910    
911  /* Reset order state */  /* Reset order state */
912  void  void
913  reset_order_state()  reset_order_state(void)
914  {  {
915          memset(&order_state, 0, sizeof(order_state));          memset(&order_state, 0, sizeof(order_state));
916          order_state.order_type = RDP_ORDER_PATBLT;          order_state.order_type = RDP_ORDER_PATBLT;

Legend:
Removed from v.55  
changed lines
  Added in v.207

  ViewVC Help
Powered by ViewVC 1.1.26