summaryrefslogtreecommitdiffstats
path: root/xup/xup.c
diff options
context:
space:
mode:
authorJim Grandy <jgrandy@authentic8.com>2013-07-03 15:57:00 -0700
committerJim Grandy <jgrandy@authentic8.com>2013-07-03 15:57:00 -0700
commitcb1efca63704d342b3d1aba764f6971e2656a8d1 (patch)
tree8d92658d49a12b84893455f42e4bd3a46f7d1a5e /xup/xup.c
parentc64586c25c183635c77bb55136aef5dc2467dc57 (diff)
downloadxrdp-proprietary-cb1efca63704d342b3d1aba764f6971e2656a8d1.tar.gz
xrdp-proprietary-cb1efca63704d342b3d1aba764f6971e2656a8d1.zip
Hand-apply patches (glyph cache) from Authentic8 branch: 653869c 30f23d4 74b015d 4e51e6d 2829087
Diffstat (limited to 'xup/xup.c')
-rw-r--r--xup/xup.c54
1 files changed, 54 insertions, 0 deletions
diff --git a/xup/xup.c b/xup/xup.c
index 882d157c..d77eee55 100644
--- a/xup/xup.c
+++ b/xup/xup.c
@@ -554,6 +554,18 @@ lib_mod_process_orders(struct mod *mod, int type, struct stream *s)
int height;
int fgcolor;
int opcode;
+ int charactor;
+ int font;
+ int flags;
+ int mixmode;
+ int clip_left;
+ int clip_top;
+ int clip_right;
+ int clip_bottom;
+ int box_left;
+ int box_top;
+ int box_right;
+ int box_bottom;
char *bmpdata;
char cur_data[32 * (32 * 3)];
char cur_mask[32 * (32 / 8)];
@@ -675,6 +687,48 @@ lib_mod_process_orders(struct mod *mod, int type, struct stream *s)
case 27: /* server_window_new_update - show */
rv = process_server_window_show(mod, s);
break;
+ case 28: /* server_add_char */
+ in_uint16_le(s, font);
+ in_uint16_le(s, charactor);
+ in_sint16_le(s, x);
+ in_sint16_le(s, y);
+ in_uint16_le(s, cx);
+ in_uint16_le(s, cy);
+ in_uint16_le(s, len_bmpdata);
+ in_uint8p(s, bmpdata, len_bmpdata);
+ rv = mod->server_add_char(mod, font, charactor, x, y, cx, cy, bmpdata);
+ break;
+ case 29: /* server_add_char_alpha */
+ in_uint16_le(s, font);
+ in_uint16_le(s, charactor);
+ in_sint16_le(s, x);
+ in_sint16_le(s, y);
+ in_uint16_le(s, cx);
+ in_uint16_le(s, cy);
+ in_uint16_le(s, len_bmpdata);
+ in_uint8p(s, bmpdata, len_bmpdata);
+ rv = mod->server_add_char_alpha(mod, font, charactor, x, y, cx, cy, bmpdata);
+ break;
+ case 30: /* server_draw_text */
+ in_uint16_le(s, font);
+ in_uint16_le(s, flags);
+ in_uint16_le(s, mixmode);
+ in_sint16_le(s, clip_left);
+ in_sint16_le(s, clip_top);
+ in_sint16_le(s, clip_right);
+ in_sint16_le(s, clip_bottom);
+ in_sint16_le(s, box_left);
+ in_sint16_le(s, box_top);
+ in_sint16_le(s, box_right);
+ in_sint16_le(s, box_bottom);
+ in_sint16_le(s, x);
+ in_sint16_le(s, y);
+ in_uint16_le(s, len_bmpdata);
+ in_uint8p(s, bmpdata, len_bmpdata);
+ rv = mod->server_draw_text(mod, font, flags, mixmode, clip_left, clip_top,
+ clip_right, clip_bottom, box_left, box_top,
+ box_right, box_bottom, x, y, bmpdata, len_bmpdata);
+ break;
case 51: /* server_set_pointer_ex */
rv = process_server_set_pointer_ex(mod, s);
break;