diff options
author | Jay Sorg <jay.sorg@gmail.com> | 2012-05-19 19:25:08 -0700 |
---|---|---|
committer | Jay Sorg <jay.sorg@gmail.com> | 2012-05-19 19:25:08 -0700 |
commit | aa3fad894db4e9b02999b229eb7e63fd8e91bdf6 (patch) | |
tree | 409c10184c95a2305edc6b7d04e6116aaa30a936 /xrdp/xrdp_painter.c | |
parent | cc3754a2bdd6801179751d45f1df3b5816e189fc (diff) | |
download | xrdp-proprietary-aa3fad894db4e9b02999b229eb7e63fd8e91bdf6.tar.gz xrdp-proprietary-aa3fad894db4e9b02999b229eb7e63fd8e91bdf6.zip |
xorg: work on offscreen bitmaps
Diffstat (limited to 'xrdp/xrdp_painter.c')
-rw-r--r-- | xrdp/xrdp_painter.c | 29 |
1 files changed, 18 insertions, 11 deletions
diff --git a/xrdp/xrdp_painter.c b/xrdp/xrdp_painter.c index 117d68a4..9cf9438d 100644 --- a/xrdp/xrdp_painter.c +++ b/xrdp/xrdp_painter.c @@ -49,16 +49,10 @@ xrdp_painter_delete(struct xrdp_painter* self) /*****************************************************************************/ int APP_CC -xrdp_painter_begin_update(struct xrdp_painter* self) +wm_painter_set_target(struct xrdp_painter* self) { int surface_index; - if (self == 0) - { - return 0; - } - libxrdp_orders_init(self->session); - if (self->wm->target_surface->type == WND_TYPE_SCREEN) { if (self->wm->current_surface_index != 0xffff) @@ -75,8 +69,8 @@ xrdp_painter_begin_update(struct xrdp_painter* self) if (self->wm->target_surface->tab_stop == 0) /* tab_stop is hack */ { libxrdp_orders_send_create_os_surface(self->session, surface_index, - self->wm->target_surface->width, - self->wm->target_surface->height); + self->wm->target_surface->width, + self->wm->target_surface->height); self->wm->target_surface->tab_stop = 1; } libxrdp_orders_send_switch_os_surface(self->session, surface_index); @@ -92,6 +86,19 @@ xrdp_painter_begin_update(struct xrdp_painter* self) /*****************************************************************************/ int APP_CC +xrdp_painter_begin_update(struct xrdp_painter* self) +{ + if (self == 0) + { + return 0; + } + libxrdp_orders_init(self->session); + wm_painter_set_target(self); + return 0; +} + +/*****************************************************************************/ +int APP_CC xrdp_painter_end_update(struct xrdp_painter* self) { if (self == 0) @@ -667,13 +674,13 @@ xrdp_painter_copy(struct xrdp_painter* self, region = xrdp_region_create(self->wm); if (dst->type != WND_TYPE_OFFSCREEN) { - g_writeln("off screen to screen"); + //g_writeln("off screen to screen"); xrdp_wm_get_vis_region(self->wm, dst, x, y, cx, cy, region, self->clip_children); } else { - g_writeln("off screen to off screen"); + //g_writeln("off screen to off screen"); xrdp_region_add_rect(region, &clip_rect); } x += dx; |