diff options
author | Jim Grandy <jgrandy@authentic8.com> | 2013-07-03 15:57:00 -0700 |
---|---|---|
committer | Jim Grandy <jgrandy@authentic8.com> | 2013-07-26 12:25:01 -0700 |
commit | 86ee28fe9a206703711c7d100131caa1a81b624b (patch) | |
tree | b6ff1c553ec37c5111f4342dced7df8b836ea0a7 /xup | |
parent | cac958fc3747979f68330a79ca88f0a0d47d27fd (diff) | |
download | xrdp-proprietary-86ee28fe9a206703711c7d100131caa1a81b624b.tar.gz xrdp-proprietary-86ee28fe9a206703711c7d100131caa1a81b624b.zip |
Hand-apply patches (glyph cache) from Authentic8 branch: 653869c 30f23d4 74b015d 4e51e6d 2829087
Diffstat (limited to 'xup')
-rw-r--r-- | xup/xup.c | 54 | ||||
-rw-r--r-- | xup/xup.h | 5 |
2 files changed, 58 insertions, 1 deletions
@@ -555,6 +555,18 @@ lib_mod_process_orders(struct mod *mod, int type, struct stream *s) int fgcolor; int bgcolor; 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)]; @@ -680,6 +692,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; @@ -119,8 +119,11 @@ struct mod int flags); int (*server_set_cursor_ex)(struct mod* v, int x, int y, char* data, char* mask, int bpp); + int (*server_add_char_alpha)(struct mod* v, int font, int charactor, + int offset, int baseline, + int width, int height, char* data); - tbus server_dumby[100 - 38]; /* align, 100 minus the number of server + tbus server_dumby[100 - 39]; /* align, 100 minus the number of server functions above */ /* common */ tbus handle; /* pointer to self as long */ |