/[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 64 by astrand, Thu Jul 18 16:38:31 2002 UTC revision 82 by astrand, Tue Jul 30 07:18:48 2002 UTC
# Line 198  process_patblt(STREAM s, PATBLT_ORDER * Line 198  process_patblt(STREAM s, PATBLT_ORDER *
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", os->opcode, os->x, os->y, os->cx, os->cy, os->brush.style, os->bgcolour, os->fgcolour));          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->y, os->cx, os->cy, 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 232  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 */
# Line 264  process_line(STREAM s, LINE_ORDER * os, Line 264  process_line(STREAM s, LINE_ORDER * os,
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 273  process_line(STREAM s, LINE_ORDER * os, Line 272  process_line(STREAM s, LINE_ORDER * os,
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 */
# Line 296  process_rect(STREAM s, RECT_ORDER * os, Line 294  process_rect(STREAM s, RECT_ORDER * os,
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  }  }
# Line 327  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 336  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 */
# Line 377  process_memblt(STREAM s, MEMBLT_ORDER * Line 372  process_memblt(STREAM s, MEMBLT_ORDER *
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 */
# Line 435  process_triblt(STREAM s, TRIBLT_ORDER * Line 428  process_triblt(STREAM s, TRIBLT_ORDER *
428          if (present & 0x010000)          if (present & 0x010000)
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", os->opcode, os->x, os->y, os->cx, os->cy, os->cache_id, os->cache_idx, os->brush.style, os->bgcolour, os->fgcolour));          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->cache_idx,
433                   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 */
# Line 500  process_polyline(STREAM s, POLYLINE_ORDE Line 494  process_polyline(STREAM s, POLYLINE_ORDE
494                  opcode = ROP2_NXOR;                  opcode = ROP2_NXOR;
495    
496          DEBUG(("POLYLINE(x=%d,y=%d,fl=0x%x,fg=0x%x,n=%d,sz=%d)\n",          DEBUG(("POLYLINE(x=%d,y=%d,fl=0x%x,fg=0x%x,n=%d,sz=%d)\n",
497                 os->x, os->y, os->flags, os->fgcolour, os->lines,                 os->x, os->y, os->flags, os->fgcolour, os->lines, os->datasize));
                os->datasize));  
498    
499          DEBUG(("Data: "));          DEBUG(("Data: "));
500    
# Line 615  process_text2(STREAM s, TEXT2_ORDER * os Line 608  process_text2(STREAM s, TEXT2_ORDER * os
608                       os->clipbottom - os->cliptop,                       os->clipbottom - os->cliptop,
609                       os->boxleft, os->boxtop,                       os->boxleft, os->boxtop,
610                       os->boxright - os->boxleft,                       os->boxright - os->boxleft,
611                       os->boxbottom - os->boxtop,                       os->boxbottom - os->boxtop, os->bgcolour, os->fgcolour, os->text, os->length);
                      os->bgcolour, os->fgcolour, os->text, os->length);  
612  }  }
613    
614  /* Process a raw bitmap cache order */  /* Process a raw bitmap cache order */
# Line 638  process_raw_bmpcache(STREAM s) Line 630  process_raw_bmpcache(STREAM s)
630          in_uint16_le(s, cache_idx);          in_uint16_le(s, cache_idx);
631          in_uint8p(s, data, bufsize);          in_uint8p(s, data, bufsize);
632    
633          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));  
634          inverted = xmalloc(width * height);          inverted = xmalloc(width * height);
635          for (y = 0; y < height; y++)          for (y = 0; y < height; y++)
636          {          {
637                  memcpy(&inverted[(height - y - 1) * width], &data[y * width],                  memcpy(&inverted[(height - y - 1) * width], &data[y * width], width);
                        width);  
638          }          }
639    
640          bitmap = ui_create_bitmap(width, height, inverted);          bitmap = ui_create_bitmap(width, height, inverted);
# Line 673  process_bmpcache(STREAM s) Line 663  process_bmpcache(STREAM s)
663          in_uint8s(s, 4);        /* row_size, final_size */          in_uint8s(s, 4);        /* row_size, final_size */
664          in_uint8p(s, data, size);          in_uint8p(s, data, size);
665    
666          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));  
667    
668          bmpdata = xmalloc(width * height);          bmpdata = xmalloc(width * height);
669    
# Line 746  process_fontcache(STREAM s) Line 735  process_fontcache(STREAM s)
735                  in_uint8p(s, data, datasize);                  in_uint8p(s, data, datasize);
736    
737                  bitmap = ui_create_glyph(width, height, data);                  bitmap = ui_create_glyph(width, height, data);
738                  cache_put_font(font, character, offset, baseline,                  cache_put_font(font, character, offset, baseline, width, height, bitmap);
                                width, height, bitmap);  
739          }          }
740  }  }
741    
# Line 854  process_orders(STREAM s) Line 842  process_orders(STREAM s)
842                                              os->bounds.top,                                              os->bounds.top,
843                                              os->bounds.right -                                              os->bounds.right -
844                                              os->bounds.left + 1,                                              os->bounds.left + 1,
845                                              os->bounds.bottom -                                              os->bounds.bottom - os->bounds.top + 1);
                                             os->bounds.top + 1);  
846                          }                          }
847    
848                          delta = order_flags & RDP_ORDER_DELTA;                          delta = order_flags & RDP_ORDER_DELTA;
# Line 863  process_orders(STREAM s) Line 850  process_orders(STREAM s)
850                          switch (os->order_type)                          switch (os->order_type)
851                          {                          {
852                                  case RDP_ORDER_DESTBLT:                                  case RDP_ORDER_DESTBLT:
853                                          process_destblt(s, &os->destblt,                                          process_destblt(s, &os->destblt, present, delta);
                                                         present, delta);  
854                                          break;                                          break;
855    
856                                  case RDP_ORDER_PATBLT:                                  case RDP_ORDER_PATBLT:
857                                          process_patblt(s, &os->patblt,                                          process_patblt(s, &os->patblt, present, delta);
                                                        present, delta);  
858                                          break;                                          break;
859    
860                                  case RDP_ORDER_SCREENBLT:                                  case RDP_ORDER_SCREENBLT:
861                                          process_screenblt(s, &os->screenblt,                                          process_screenblt(s, &os->screenblt, present, delta);
                                                           present, delta);  
862                                          break;                                          break;
863    
864                                  case RDP_ORDER_LINE:                                  case RDP_ORDER_LINE:
865                                          process_line(s, &os->line,                                          process_line(s, &os->line, present, delta);
                                                      present, delta);  
866                                          break;                                          break;
867    
868                                  case RDP_ORDER_RECT:                                  case RDP_ORDER_RECT:
869                                          process_rect(s, &os->rect,                                          process_rect(s, &os->rect, present, delta);
                                                      present, delta);  
870                                          break;                                          break;
871    
872                                  case RDP_ORDER_DESKSAVE:                                  case RDP_ORDER_DESKSAVE:
873                                          process_desksave(s, &os->desksave,                                          process_desksave(s, &os->desksave, present, delta);
                                                          present, delta);  
874                                          break;                                          break;
875    
876                                  case RDP_ORDER_MEMBLT:                                  case RDP_ORDER_MEMBLT:
877                                          process_memblt(s, &os->memblt,                                          process_memblt(s, &os->memblt, present, delta);
                                                        present, delta);  
878                                          break;                                          break;
879    
880                                  case RDP_ORDER_TRIBLT:                                  case RDP_ORDER_TRIBLT:
881                                          process_triblt(s, &os->triblt,                                          process_triblt(s, &os->triblt, present, delta);
                                                        present, delta);  
882                                          break;                                          break;
883    
884                                  case RDP_ORDER_POLYLINE:                                  case RDP_ORDER_POLYLINE:
885                                          process_polyline(s, &os->polyline,                                          process_polyline(s, &os->polyline, present, delta);
                                                          present, delta);  
886                                          break;                                          break;
887    
888                                  case RDP_ORDER_TEXT2:                                  case RDP_ORDER_TEXT2:
889                                          process_text2(s, &os->text2,                                          process_text2(s, &os->text2, present, delta);
                                                       present, delta);  
890                                          break;                                          break;
891    
892                                  default:                                  default:

Legend:
Removed from v.64  
changed lines
  Added in v.82

  ViewVC Help
Powered by ViewVC 1.1.26