o Previous merge had too many issues. Hence all files in .../xorg/X11R7.6/rdp were copied

from master branch and then astyle was run on the files
ulab-next
Laxmikant Rashinkar 12 years ago
parent 70d535211b
commit 42a56cd33e

@ -377,114 +377,102 @@ rdpCopyArea(DrawablePtr pSrc, DrawablePtr pDst, GCPtr pGC,
if (pSrc->type == DRAWABLE_WINDOW) if (pSrc->type == DRAWABLE_WINDOW)
{ {
rdpup_check_dirty_screen(&g_screenPriv); pSrcWnd = (WindowPtr)pSrc;
if (pDst->type == DRAWABLE_WINDOW) if (pSrcWnd->viewable)
{ {
pDstWnd = (WindowPtr)pDst; rdpup_check_dirty_screen(&g_screenPriv);
if (pDstWnd->viewable) if (pDst->type == DRAWABLE_WINDOW)
{ {
can_do_screen_blt = pGC->alu == GXcopy; pDstWnd = (WindowPtr)pDst;
if (can_do_screen_blt) if (pDstWnd->viewable)
{ {
return rdpCopyAreaWndToWnd(pSrcWnd, pDstWnd, pGC, can_do_screen_blt = pGC->alu == GXcopy;
srcx, srcy, w, h, dstx, dsty);
}
}
}
else if (pDst->type == DRAWABLE_PIXMAP)
{
pDstPixmap = (PixmapPtr)pDst;
pDstPriv = GETPIXPRIV(pDstPixmap);
if (XRDP_IS_OS(pDstPriv)) if (can_do_screen_blt)
{
if (pDst->type == DRAWABLE_WINDOW)
{
pDstWnd = (WindowPtr)pDst;
if (pDstWnd->viewable)
{ {
can_do_screen_blt = pGC->alu == GXcopy; return rdpCopyAreaWndToWnd(pSrcWnd, pDstWnd, pGC,
srcx, srcy, w, h, dstx, dsty);
if (can_do_screen_blt)
{
return rdpCopyAreaWndToWnd(pSrcWnd, pDstWnd, pGC,
srcx, srcy, w, h, dstx, dsty);
}
} }
} }
else if (pDst->type == DRAWABLE_PIXMAP) }
else if (pDst->type == DRAWABLE_PIXMAP)
{
pDstPixmap = (PixmapPtr)pDst;
pDstPriv = GETPIXPRIV(pDstPixmap);
if (XRDP_IS_OS(pDstPriv))
{ {
pDstPixmap = (PixmapPtr)pDst; can_do_screen_blt = pGC->alu == GXcopy;
pDstPriv = GETPIXPRIV(pDstPixmap);
if (XRDP_IS_OS(pDstPriv)) if (can_do_screen_blt)
{ {
can_do_screen_blt = pGC->alu == GXcopy; rdpup_check_dirty(pDstPixmap, pDstPriv);
return rdpCopyAreaWndToPixmap(pSrcWnd, pDstPixmap, pDstPriv, pGC,
if (can_do_screen_blt) srcx, srcy, w, h, dstx, dsty);
{
rdpup_check_dirty(pDstPixmap, pDstPriv);
return rdpCopyAreaWndToPixmap(pSrcWnd, pDstPixmap, pDstPriv, pGC,
srcx, srcy, w, h, dstx, dsty);
}
} }
} }
} }
} }
}
if (pSrc->type == DRAWABLE_PIXMAP) if (pSrc->type == DRAWABLE_PIXMAP)
{ {
pSrcPixmap = (PixmapPtr)pSrc; pSrcPixmap = (PixmapPtr)pSrc;
pSrcPriv = GETPIXPRIV(pSrcPixmap); pSrcPriv = GETPIXPRIV(pSrcPixmap);
if (XRDP_IS_OS(pSrcPriv))
{
rdpup_check_dirty_screen(&g_screenPriv);
rdpup_check_dirty(pSrcPixmap, pSrcPriv);
return rdpCopyAreaPixmapToWnd(pSrcPixmap, pSrcPriv, pDstWnd, pGC,
srcx, srcy, w, h, dstx, dsty);
}
}
/* do original call */
rv = rdpCopyAreaOrg(pSrc, pDst, pGC, srcx, srcy, w, h, dstx, dsty);
dirty_type = 0;
pDirtyPriv = 0;
post_process = 0;
reset_surface = 0;
got_id = 0;
if (pDst->type == DRAWABLE_PIXMAP) if (XRDP_IS_OS(pSrcPriv))
{ {
pDstPixmap = (PixmapPtr)pDst; if (pDst->type == DRAWABLE_WINDOW)
pDstPriv = GETPIXPRIV(pDstPixmap);
if (XRDP_IS_OS(pDstPriv))
{ {
post_process = 1; pDstWnd = (WindowPtr)pDst;
if (g_do_dirty_os) if (pDstWnd->viewable)
{ {
LLOGLN(10, ("rdpCopyArea: gettig dirty")); rdpup_check_dirty_screen(&g_screenPriv);
pDstPriv->is_dirty = 1; rdpup_check_dirty(pSrcPixmap, pSrcPriv);
pDirtyPriv = pDstPriv; return rdpCopyAreaPixmapToWnd(pSrcPixmap, pSrcPriv, pDstWnd, pGC,
dirty_type = RDI_IMGLL; srcx, srcy, w, h, dstx, dsty);
} }
else }
else if (pDst->type == DRAWABLE_PIXMAP)
{
pDstPixmap = (PixmapPtr)pDst;
pDstPriv = GETPIXPRIV(pDstPixmap);
if (XRDP_IS_OS(pDstPriv))
{ {
rdpup_switch_os_surface(pDstPriv->rdpindex); if (g_can_do_pix_to_pix)
reset_surface = 1; {
rdpup_get_pixmap_image_rect(pDstPixmap, &id); rdpup_check_dirty(pSrcPixmap, pSrcPriv);
got_id = 1; rdpup_check_dirty(pDstPixmap, pDstPriv);
return rdpCopyAreaPixmapToPixmap(pSrcPixmap, pSrcPriv,
pDstPixmap, pDstPriv,
pGC, srcx, srcy, w, h,
dstx, dsty);
}
} }
} }
} }
else }
/* do original call */
rv = rdpCopyAreaOrg(pSrc, pDst, pGC, srcx, srcy, w, h, dstx, dsty);
dirty_type = 0;
pDirtyPriv = 0;
post_process = 0;
reset_surface = 0;
got_id = 0;
if (pDst->type == DRAWABLE_PIXMAP)
{
pDstPixmap = (PixmapPtr)pDst;
pDstPriv = GETPIXPRIV(pDstPixmap);
if (XRDP_IS_OS(pDstPriv))
{ {
post_process = 1; post_process = 1;
@ -528,16 +516,40 @@ rdpCopyArea(DrawablePtr pSrc, DrawablePtr pDst, GCPtr pGC,
} }
} }
} }
}
if (!post_process)
{
return rv;
}
if (!post_process) RegionInit(&clip_reg, NullBox, 0);
cd = rdp_get_clip(&clip_reg, pDst, pGC);
if (cd == 1)
{
if (dirty_type != 0)
{ {
return rv; box.x1 = pDst->x + dstx;
box.y1 = pDst->y + dsty;
box.x2 = box.x1 + w;
box.y2 = box.y1 + h;
RegionInit(&reg1, &box, 0);
draw_item_add_img_region(pDirtyPriv, &reg1, GXcopy, dirty_type);
RegionUninit(&reg1);
} }
else if (got_id)
{
rdpup_begin_update();
rdpup_send_area(&id, pDst->x + dstx, pDst->y + dsty, w, h);
rdpup_end_update();
}
}
else if (cd == 2)
{
num_clips = REGION_NUM_RECTS(&clip_reg);
RegionInit(&clip_reg, NullBox, 0); if (num_clips > 0)
cd = rdp_get_clip(&clip_reg, pDst, pGC);
if (cd == 1)
{ {
if (dirty_type != 0) if (dirty_type != 0)
{ {
@ -545,74 +557,50 @@ rdpCopyArea(DrawablePtr pSrc, DrawablePtr pDst, GCPtr pGC,
box.y1 = pDst->y + dsty; box.y1 = pDst->y + dsty;
box.x2 = box.x1 + w; box.x2 = box.x1 + w;
box.y2 = box.y1 + h; box.y2 = box.y1 + h;
RegionInit(&reg1, &box, 0); RegionInit(&box_reg, &box, 0);
draw_item_add_img_region(pDirtyPriv, &reg1, GXcopy, dirty_type); RegionIntersect(&clip_reg, &clip_reg, &box_reg);
RegionUninit(&reg1); draw_item_add_img_region(pDirtyPriv, &clip_reg, GXcopy, dirty_type);
RegionUninit(&box_reg);
} }
else if (got_id) else if (got_id)
{ {
rdpup_begin_update(); rdpup_begin_update();
rdpup_send_area(&id, pDst->x + dstx, pDst->y + dsty, w, h); box.x1 = pDst->x + dstx;
rdpup_end_update(); box.y1 = pDst->y + dsty;
} box.x2 = box.x1 + w;
} box.y2 = box.y1 + h;
else if (cd == 2) RegionInit(&box_reg, &box, 0);
{ RegionIntersect(&clip_reg, &clip_reg, &box_reg);
num_clips = REGION_NUM_RECTS(&clip_reg); num_clips = REGION_NUM_RECTS(&clip_reg);
if (num_clips > 0) if (num_clips < 10)
{
if (dirty_type != 0)
{
box.x1 = pDst->x + dstx;
box.y1 = pDst->y + dsty;
box.x2 = box.x1 + w;
box.y2 = box.y1 + h;
RegionInit(&box_reg, &box, 0);
RegionIntersect(&clip_reg, &clip_reg, &box_reg);
draw_item_add_img_region(pDirtyPriv, &clip_reg, GXcopy, dirty_type);
RegionUninit(&box_reg);
}
else if (got_id)
{ {
rdpup_begin_update(); for (j = num_clips - 1; j >= 0; j--)
box.x1 = pDst->x + dstx;
box.y1 = pDst->y + dsty;
box.x2 = box.x1 + w;
box.y2 = box.y1 + h;
RegionInit(&box_reg, &box, 0);
RegionIntersect(&clip_reg, &clip_reg, &box_reg);
num_clips = REGION_NUM_RECTS(&clip_reg);
if (num_clips < 10)
{ {
for (j = num_clips - 1; j >= 0; j--) box = REGION_RECTS(&clip_reg)[j];
{ rdpup_send_area(&id, box.x1, box.y1, box.x2 - box.x1,
box = REGION_RECTS(&clip_reg)[j]; box.y2 - box.y1);
rdpup_send_area(&id, box.x1, box.y1, box.x2 - box.x1,
box.y2 - box.y1);
}
} }
else
{
pbox = RegionExtents(&clip_reg);
rdpup_send_area(&id, pbox->x1, pbox->y1, pbox->x2 - pbox->x1,
pbox->y2 - pbox->y1);
}
RegionUninit(&box_reg);
rdpup_end_update();
} }
else
{
pbox = RegionExtents(&clip_reg);
rdpup_send_area(&id, pbox->x1, pbox->y1, pbox->x2 - pbox->x1,
pbox->y2 - pbox->y1);
}
RegionUninit(&box_reg);
rdpup_end_update();
} }
} }
}
RegionUninit(&clip_reg); RegionUninit(&clip_reg);
if (reset_surface)
{
rdpup_switch_os_surface(-1);
}
return rv; if (reset_surface)
{
rdpup_switch_os_surface(-1);
} }
return rv;
} }

@ -127,23 +127,26 @@ rdpCopyPlane(DrawablePtr pSrc, DrawablePtr pDst,
} }
else else
{ {
pDstWnd = (WindowPtr)pDst; if (pDst->type == DRAWABLE_WINDOW)
if (pDstWnd->viewable)
{ {
post_process = 1; pDstWnd = (WindowPtr)pDst;
if (g_do_dirty_ons) if (pDstWnd->viewable)
{ {
LLOGLN(0, ("rdpCopyPlane: gettig dirty")); post_process = 1;
g_screenPriv.is_dirty = 1;
pDirtyPriv = &g_screenPriv; if (g_do_dirty_ons)
dirty_type = RDI_IMGLL; {
} LLOGLN(0, ("rdpCopyPlane: gettig dirty"));
else g_screenPriv.is_dirty = 1;
{ pDirtyPriv = &g_screenPriv;
rdpup_get_screen_image_rect(&id); dirty_type = RDI_IMGLL;
got_id = 1; }
else
{
rdpup_get_screen_image_rect(&id);
got_id = 1;
}
} }
} }
} }

@ -166,23 +166,26 @@ rdpFillPolygon(DrawablePtr pDrawable, GCPtr pGC,
} }
else else
{ {
pDstWnd = (WindowPtr)pDrawable; if (pDrawable->type == DRAWABLE_WINDOW)
if (pDstWnd->viewable)
{ {
post_process = 1; pDstWnd = (WindowPtr)pDrawable;
if (g_do_dirty_ons) if (pDstWnd->viewable)
{
LLOGLN(0, ("rdpFillPolygon: gettig dirty"));
g_screenPriv.is_dirty = 1;
pDirtyPriv = &g_screenPriv;
dirty_type = RDI_IMGLL;
}
else
{ {
rdpup_get_screen_image_rect(&id); post_process = 1;
got_id = 1;
if (g_do_dirty_ons)
{
LLOGLN(0, ("rdpFillPolygon: gettig dirty"));
g_screenPriv.is_dirty = 1;
pDirtyPriv = &g_screenPriv;
dirty_type = RDI_IMGLL;
}
else
{
rdpup_get_screen_image_rect(&id);
got_id = 1;
}
} }
} }
} }

@ -82,21 +82,40 @@ rdpFillSpans(DrawablePtr pDrawable, GCPtr pGC, int nInit,
if (XRDP_IS_OS(pDstPriv)) if (XRDP_IS_OS(pDstPriv))
{ {
return; rdpup_switch_os_surface(pDstPriv->rdpindex);
rdpup_get_pixmap_image_rect(pDstPixmap, &id);
got_id = 1;
} }
}
RegionInit(&clip_reg, NullBox, 0); else
cd = rdp_get_clip(&clip_reg, pDrawable, pGC); {
if (pDrawable->type == DRAWABLE_WINDOW)
if (cd == 1)
{
}
else if (cd == 2)
{ {
pDstWnd = (WindowPtr)pDrawable;
if (pDstWnd->viewable)
{
rdpup_get_screen_image_rect(&id);
got_id = 1;
}
} }
}
RegionUninit(&clip_reg); if (!got_id)
rdpup_switch_os_surface(-1); {
return;
}
RegionInit(&clip_reg, NullBox, 0);
cd = rdp_get_clip(&clip_reg, pDrawable, pGC);
if (cd == 1)
{
}
else if (cd == 2)
{
} }
}
RegionUninit(&clip_reg);
rdpup_switch_os_surface(-1);
}

@ -99,22 +99,25 @@ rdpImageGlyphBlt(DrawablePtr pDrawable, GCPtr pGC,
if (pDrawable->type == DRAWABLE_PIXMAP) if (pDrawable->type == DRAWABLE_PIXMAP)
{ {
pDstWnd = (WindowPtr)pDrawable; pDstPixmap = (PixmapPtr)pDrawable;
pDstPriv = GETPIXPRIV(pDstPixmap);
if (pDstWnd->viewable) if (XRDP_IS_OS(pDstPriv))
{ {
post_process = 1; post_process = 1;
if (g_do_dirty_ons) if (g_do_dirty_os)
{ {
LLOGLN(0, ("rdpImageGlyphBlt: gettig dirty")); LLOGLN(10, ("rdpImageGlyphBlt: gettig dirty"));
g_screenPriv.is_dirty = 1; pDstPriv->is_dirty = 1;
pDirtyPriv = &g_screenPriv; pDirtyPriv = pDstPriv;
dirty_type = RDI_IMGLL; dirty_type = RDI_IMGLL;
} }
else else
{ {
rdpup_get_screen_image_rect(&id); rdpup_switch_os_surface(pDstPriv->rdpindex);
reset_surface = 1;
rdpup_get_pixmap_image_rect(pDstPixmap, &id);
got_id = 1; got_id = 1;
} }
} }
@ -128,8 +131,19 @@ rdpImageGlyphBlt(DrawablePtr pDrawable, GCPtr pGC,
if (pDstWnd->viewable) if (pDstWnd->viewable)
{ {
post_process = 1; post_process = 1;
rdpup_get_screen_image_rect(&id);
got_id = 1; if (g_do_dirty_ons)
{
LLOGLN(0, ("rdpImageGlyphBlt: gettig dirty"));
g_screenPriv.is_dirty = 1;
pDirtyPriv = &g_screenPriv;
dirty_type = RDI_IMGLL;
}
else
{
rdpup_get_screen_image_rect(&id);
got_id = 1;
}
} }
} }
} }

@ -97,22 +97,25 @@ rdpImageText16(DrawablePtr pDrawable, GCPtr pGC,
if (pDrawable->type == DRAWABLE_PIXMAP) if (pDrawable->type == DRAWABLE_PIXMAP)
{ {
pDstWnd = (WindowPtr)pDrawable; pDstPixmap = (PixmapPtr)pDrawable;
pDstPriv = GETPIXPRIV(pDstPixmap);
if (pDstWnd->viewable) if (XRDP_IS_OS(pDstPriv))
{ {
post_process = 1; post_process = 1;
if (g_do_dirty_ons) if (g_do_dirty_os)
{ {
LLOGLN(0, ("rdpImageText16: gettig dirty")); LLOGLN(10, ("rdpImageText16: gettig dirty"));
g_screenPriv.is_dirty = 1; pDstPriv->is_dirty = 1;
pDirtyPriv = &g_screenPriv; pDirtyPriv = pDstPriv;
dirty_type = RDI_IMGLL; dirty_type = RDI_IMGLY;
} }
else else
{ {
rdpup_get_screen_image_rect(&id); rdpup_switch_os_surface(pDstPriv->rdpindex);
reset_surface = 1;
rdpup_get_pixmap_image_rect(pDstPixmap, &id);
got_id = 1; got_id = 1;
} }
} }
@ -126,8 +129,19 @@ rdpImageText16(DrawablePtr pDrawable, GCPtr pGC,
if (pDstWnd->viewable) if (pDstWnd->viewable)
{ {
post_process = 1; post_process = 1;
rdpup_get_screen_image_rect(&id);
got_id = 1; if (g_do_dirty_ons)
{
LLOGLN(0, ("rdpImageText16: gettig dirty"));
g_screenPriv.is_dirty = 1;
pDirtyPriv = &g_screenPriv;
dirty_type = RDI_IMGLL;
}
else
{
rdpup_get_screen_image_rect(&id);
got_id = 1;
}
} }
} }
} }

@ -97,22 +97,25 @@ rdpImageText8(DrawablePtr pDrawable, GCPtr pGC,
if (pDrawable->type == DRAWABLE_PIXMAP) if (pDrawable->type == DRAWABLE_PIXMAP)
{ {
pDstWnd = (WindowPtr)pDrawable; pDstPixmap = (PixmapPtr)pDrawable;
pDstPriv = GETPIXPRIV(pDstPixmap);
if (pDstWnd->viewable) if (XRDP_IS_OS(pDstPriv))
{ {
post_process = 1; post_process = 1;
if (g_do_dirty_ons) if (g_do_dirty_os)
{ {
LLOGLN(0, ("rdpImageText8: gettig dirty")); LLOGLN(10, ("rdpImageText8: gettig dirty"));
g_screenPriv.is_dirty = 1; pDstPriv->is_dirty = 1;
pDirtyPriv = &g_screenPriv; pDirtyPriv = pDstPriv;
dirty_type = RDI_IMGLL; dirty_type = RDI_IMGLL;
} }
else else
{ {
rdpup_get_screen_image_rect(&id); rdpup_switch_os_surface(pDstPriv->rdpindex);
reset_surface = 1;
rdpup_get_pixmap_image_rect(pDstPixmap, &id);
got_id = 1; got_id = 1;
} }
} }
@ -126,8 +129,19 @@ rdpImageText8(DrawablePtr pDrawable, GCPtr pGC,
if (pDstWnd->viewable) if (pDstWnd->viewable)
{ {
post_process = 1; post_process = 1;
rdpup_get_screen_image_rect(&id);
got_id = 1; if (g_do_dirty_ons)
{
LLOGLN(0, ("rdpImageText8: gettig dirty"));
g_screenPriv.is_dirty = 1;
pDirtyPriv = &g_screenPriv;
dirty_type = RDI_IMGLL;
}
else
{
rdpup_get_screen_image_rect(&id);
got_id = 1;
}
} }
} }
} }

@ -148,33 +148,27 @@ rdpPolyArc(DrawablePtr pDrawable, GCPtr pGC, int narcs, xArc *parcs)
if (pDstWnd->viewable) if (pDstWnd->viewable)
{ {
post_process = 1; post_process = 1;
rdpup_get_screen_image_rect(&id);
got_id = 1; if (g_do_dirty_ons)
{
LLOGLN(0, ("rdpPolyArc: gettig dirty"));
g_screenPriv.is_dirty = 1;
pDirtyPriv = &g_screenPriv;
dirty_type = RDI_IMGLL;
}
else
{
rdpup_get_screen_image_rect(&id);
got_id = 1;
}
} }
} }
} }
if (!post_process) if (!post_process)
{ {
pDstWnd = (WindowPtr)pDrawable; g_free(rects);
return;
if (pDstWnd->viewable)
{
post_process = 1;
if (g_do_dirty_ons)
{
LLOGLN(0, ("rdpPolyArc: gettig dirty"));
g_screenPriv.is_dirty = 1;
pDirtyPriv = &g_screenPriv;
dirty_type = RDI_IMGLL;
}
else
{
rdpup_get_screen_image_rect(&id);
got_id = 1;
}
}
} }
RegionInit(&clip_reg, NullBox, 0); RegionInit(&clip_reg, NullBox, 0);

@ -148,33 +148,27 @@ rdpPolyFillArc(DrawablePtr pDrawable, GCPtr pGC, int narcs, xArc *parcs)
if (pDstWnd->viewable) if (pDstWnd->viewable)
{ {
post_process = 1; post_process = 1;
rdpup_get_screen_image_rect(&id);
got_id = 1; if (g_do_dirty_ons)
{
LLOGLN(0, ("rdpPolyFillArc: gettig dirty"));
g_screenPriv.is_dirty = 1;
pDirtyPriv = &g_screenPriv;
dirty_type = RDI_IMGLL;
}
else
{
rdpup_get_screen_image_rect(&id);
got_id = 1;
}
} }
} }
} }
if (!post_process) if (!post_process)
{ {
pDstWnd = (WindowPtr)pDrawable; g_free(rects);
return;
if (pDstWnd->viewable)
{
post_process = 1;
if (g_do_dirty_ons)
{
LLOGLN(0, ("rdpPolyFillArc: gettig dirty"));
g_screenPriv.is_dirty = 1;
pDirtyPriv = &g_screenPriv;
dirty_type = RDI_IMGLL;
}
else
{
rdpup_get_screen_image_rect(&id);
got_id = 1;
}
}
} }
RegionInit(&clip_reg, NullBox, 0); RegionInit(&clip_reg, NullBox, 0);

@ -96,45 +96,54 @@ rdpPolyFillRect(DrawablePtr pDrawable, GCPtr pGC, int nrectFill,
if (pDrawable->type == DRAWABLE_PIXMAP) if (pDrawable->type == DRAWABLE_PIXMAP)
{ {
post_process = 1; pDstPixmap = (PixmapPtr)pDrawable;
pDstPriv = GETPIXPRIV(pDstPixmap);
if (g_do_dirty_os) if (XRDP_IS_OS(pDstPriv))
{
LLOGLN(10, ("rdpPolyFillRect: gettig dirty"));
pDstPriv->is_dirty = 1;
pDirtyPriv = pDstPriv;
dirty_type = RDI_FILL;
}
else
{
rdpup_switch_os_surface(pDstPriv->rdpindex);
reset_surface = 1;
rdpup_get_pixmap_image_rect(pDstPixmap, &id);
got_id = 1;
}
}
else
{
pDstWnd = (WindowPtr)pDrawable;
if (pDstWnd->viewable)
{ {
post_process = 1; post_process = 1;
if (g_do_dirty_ons) if (g_do_dirty_os)
{ {
LLOGLN(0, ("rdpPolyFillRect: gettig dirty")); LLOGLN(10, ("rdpPolyFillRect: gettig dirty"));
g_screenPriv.is_dirty = 1; pDstPriv->is_dirty = 1;
pDirtyPriv = &g_screenPriv; pDirtyPriv = pDstPriv;
dirty_type = RDI_IMGLL; dirty_type = RDI_FILL;
} }
else else
{ {
rdpup_get_screen_image_rect(&id); rdpup_switch_os_surface(pDstPriv->rdpindex);
reset_surface = 1;
rdpup_get_pixmap_image_rect(pDstPixmap, &id);
got_id = 1; got_id = 1;
} }
} }
} }
else
{
if (pDrawable->type == DRAWABLE_WINDOW)
{
pDstWnd = (WindowPtr)pDrawable;
if (pDstWnd->viewable)
{
post_process = 1;
if (g_do_dirty_ons)
{
LLOGLN(0, ("rdpPolyFillRect: gettig dirty"));
g_screenPriv.is_dirty = 1;
pDirtyPriv = &g_screenPriv;
dirty_type = RDI_IMGLL;
}
else
{
rdpup_get_screen_image_rect(&id);
got_id = 1;
}
}
}
}
if (!post_process) if (!post_process)
{ {

@ -99,22 +99,25 @@ rdpPolyGlyphBlt(DrawablePtr pDrawable, GCPtr pGC,
if (pDrawable->type == DRAWABLE_PIXMAP) if (pDrawable->type == DRAWABLE_PIXMAP)
{ {
pDstWnd = (WindowPtr)pDrawable; pDstPixmap = (PixmapPtr)pDrawable;
pDstPriv = GETPIXPRIV(pDstPixmap);
if (pDstWnd->viewable) if (XRDP_IS_OS(pDstPriv))
{ {
post_process = 1; post_process = 1;
if (g_do_dirty_ons) if (g_do_dirty_os)
{ {
LLOGLN(0, ("rdpPolyGlyphBlt: gettig dirty")); LLOGLN(10, ("rdpPolyGlyphBlt: gettig dirty"));
g_screenPriv.is_dirty = 1; pDstPriv->is_dirty = 1;
pDirtyPriv = &g_screenPriv; pDirtyPriv = pDstPriv;
dirty_type = RDI_IMGLL; dirty_type = RDI_IMGLY;
} }
else else
{ {
rdpup_get_screen_image_rect(&id); rdpup_switch_os_surface(pDstPriv->rdpindex);
reset_surface = 1;
rdpup_get_pixmap_image_rect(pDstPixmap, &id);
got_id = 1; got_id = 1;
} }
} }
@ -128,8 +131,19 @@ rdpPolyGlyphBlt(DrawablePtr pDrawable, GCPtr pGC,
if (pDstWnd->viewable) if (pDstWnd->viewable)
{ {
post_process = 1; post_process = 1;
rdpup_get_screen_image_rect(&id);
got_id = 1; if (g_do_dirty_ons)
{
LLOGLN(0, ("rdpPolyGlyphBlt: gettig dirty"));
g_screenPriv.is_dirty = 1;
pDirtyPriv = &g_screenPriv;
dirty_type = RDI_IMGLL;
}
else
{
rdpup_get_screen_image_rect(&id);
got_id = 1;
}
} }
} }
} }

@ -100,25 +100,40 @@ rdpPolyPoint(DrawablePtr pDrawable, GCPtr pGC, int mode,
for (i = 0; i < npt; i++) for (i = 0; i < npt; i++)
{ {
pDstWnd = (WindowPtr)pDrawable; pts[i].x = pDrawable->x + in_pts[i].x;
pts[i].y = pDrawable->y + in_pts[i].y;
if (pDstWnd->viewable) if (i == 0)
{ {
post_process = 1; total_box.x1 = pts[0].x;
total_box.y1 = pts[0].y;
total_box.x2 = pts[0].x;
total_box.y2 = pts[0].y;
}
else
{
if (pts[i].x < total_box.x1)
{
total_box.x1 = pts[i].x;
}
if (g_do_dirty_ons) if (pts[i].y < total_box.y1)
{ {
LLOGLN(0, ("rdpPolyPoint: gettig dirty")); total_box.y1 = pts[i].y;
g_screenPriv.is_dirty = 1;
pDirtyPriv = &g_screenPriv;
dirty_type = RDI_IMGLL;
} }
else
if (pts[i].x > total_box.x2)
{ {
rdpup_get_screen_image_rect(&id); total_box.x2 = pts[i].x;
got_id = 1; }
if (pts[i].y > total_box.y2)
{
total_box.y2 = pts[i].y;
} }
} }
/* todo, use this total_box */
} }
/* do original call */ /* do original call */
@ -164,8 +179,19 @@ rdpPolyPoint(DrawablePtr pDrawable, GCPtr pGC, int mode,
if (pDstWnd->viewable) if (pDstWnd->viewable)
{ {
post_process = 1; post_process = 1;
rdpup_get_screen_image_rect(&id);
got_id = 1; if (g_do_dirty_ons)
{
LLOGLN(0, ("rdpPolyPoint: gettig dirty"));
g_screenPriv.is_dirty = 1;
pDirtyPriv = &g_screenPriv;
dirty_type = RDI_IMGLL;
}
else
{
rdpup_get_screen_image_rect(&id);
got_id = 1;
}
} }
} }
} }

@ -109,22 +109,25 @@ rdpPolyRectangle(DrawablePtr pDrawable, GCPtr pGC, int nrects,
if (pDrawable->type == DRAWABLE_PIXMAP) if (pDrawable->type == DRAWABLE_PIXMAP)
{ {
pDstWnd = (WindowPtr)pDrawable; pDstPixmap = (PixmapPtr)pDrawable;
pDstPriv = GETPIXPRIV(pDstPixmap);
if (pDstWnd->viewable) if (XRDP_IS_OS(pDstPriv))
{ {
post_process = 1; post_process = 1;
if (g_do_dirty_ons) if (g_do_dirty_os)
{ {
LLOGLN(0, ("rdpPolyRectangle: gettig dirty")); LLOGLN(10, ("rdpPolyRectangle: gettig dirty"));
g_screenPriv.is_dirty = 1; pDstPriv->is_dirty = 1;
pDirtyPriv = &g_screenPriv; pDirtyPriv = pDstPriv;
dirty_type = RDI_IMGLL; dirty_type = RDI_IMGLL;
} }
else else
{ {
rdpup_get_screen_image_rect(&id); rdpup_switch_os_surface(pDstPriv->rdpindex);
reset_surface = 1;
rdpup_get_pixmap_image_rect(pDstPixmap, &id);
got_id = 1; got_id = 1;
} }
} }
@ -138,8 +141,19 @@ rdpPolyRectangle(DrawablePtr pDrawable, GCPtr pGC, int nrects,
if (pDstWnd->viewable) if (pDstWnd->viewable)
{ {
post_process = 1; post_process = 1;
rdpup_get_screen_image_rect(&id);
got_id = 1; if (g_do_dirty_ons)
{
LLOGLN(0, ("rdpPolyRectangle: gettig dirty"));
g_screenPriv.is_dirty = 1;
pDirtyPriv = &g_screenPriv;
dirty_type = RDI_IMGLL;
}
else
{
rdpup_get_screen_image_rect(&id);
got_id = 1;
}
} }
} }
} }

@ -138,33 +138,27 @@ rdpPolySegment(DrawablePtr pDrawable, GCPtr pGC, int nseg, xSegment *pSegs)
if (pDstWnd->viewable) if (pDstWnd->viewable)
{ {
post_process = 1; post_process = 1;
rdpup_get_screen_image_rect(&id);
got_id = 1; if (g_do_dirty_ons)
{
LLOGLN(0, ("rdpPolySegment: gettig dirty"));
g_screenPriv.is_dirty = 1;
pDirtyPriv = &g_screenPriv;
dirty_type = RDI_IMGLL;
}
else
{
rdpup_get_screen_image_rect(&id);
got_id = 1;
}
} }
} }
} }
if (!post_process) if (!post_process)
{ {
pDstWnd = (WindowPtr)pDrawable; g_free(segs);
return;
if (pDstWnd->viewable)
{
post_process = 1;
if (g_do_dirty_ons)
{
LLOGLN(0, ("rdpPolySegment: gettig dirty"));
g_screenPriv.is_dirty = 1;
pDirtyPriv = &g_screenPriv;
dirty_type = RDI_IMGLL;
}
else
{
rdpup_get_screen_image_rect(&id);
got_id = 1;
}
}
} }
RegionInit(&clip_reg, NullBox, 0); RegionInit(&clip_reg, NullBox, 0);

@ -100,22 +100,25 @@ rdpPolyText16(DrawablePtr pDrawable, GCPtr pGC,
if (pDrawable->type == DRAWABLE_PIXMAP) if (pDrawable->type == DRAWABLE_PIXMAP)
{ {
pDstWnd = (WindowPtr)pDrawable; pDstPixmap = (PixmapPtr)pDrawable;
pDstPriv = GETPIXPRIV(pDstPixmap);
if (pDstWnd->viewable) if (XRDP_IS_OS(pDstPriv))
{ {
post_process = 1; post_process = 1;
if (g_do_dirty_ons) if (g_do_dirty_os)
{ {
LLOGLN(0, ("rdpPolyText16: gettig dirty")); LLOGLN(10, ("rdpPolyText16: gettig dirty"));
g_screenPriv.is_dirty = 1; pDstPriv->is_dirty = 1;
pDirtyPriv = &g_screenPriv; pDirtyPriv = pDstPriv;
dirty_type = RDI_IMGLL; dirty_type = RDI_IMGLY;
} }
else else
{ {
rdpup_get_screen_image_rect(&id); rdpup_switch_os_surface(pDstPriv->rdpindex);
reset_surface = 1;
rdpup_get_pixmap_image_rect(pDstPixmap, &id);
got_id = 1; got_id = 1;
} }
} }
@ -129,8 +132,19 @@ rdpPolyText16(DrawablePtr pDrawable, GCPtr pGC,
if (pDstWnd->viewable) if (pDstWnd->viewable)
{ {
post_process = 1; post_process = 1;
rdpup_get_screen_image_rect(&id);
got_id = 1; if (g_do_dirty_ons)
{
LLOGLN(0, ("rdpPolyText16: gettig dirty"));
g_screenPriv.is_dirty = 1;
pDirtyPriv = &g_screenPriv;
dirty_type = RDI_IMGLL;
}
else
{
rdpup_get_screen_image_rect(&id);
got_id = 1;
}
} }
} }
} }

@ -100,22 +100,25 @@ rdpPolyText8(DrawablePtr pDrawable, GCPtr pGC,
if (pDrawable->type == DRAWABLE_PIXMAP) if (pDrawable->type == DRAWABLE_PIXMAP)
{ {
pDstWnd = (WindowPtr)pDrawable; pDstPixmap = (PixmapPtr)pDrawable;
pDstPriv = GETPIXPRIV(pDstPixmap);
if (pDstWnd->viewable) if (XRDP_IS_OS(pDstPriv))
{ {
post_process = 1; post_process = 1;
if (g_do_dirty_ons) if (g_do_dirty_os)
{ {
LLOGLN(0, ("rdpPolyText8: gettig dirty")); LLOGLN(10, ("rdpPolyText8: gettig dirty"));
g_screenPriv.is_dirty = 1; pDstPriv->is_dirty = 1;
pDirtyPriv = &g_screenPriv; pDirtyPriv = pDstPriv;
dirty_type = RDI_IMGLL; dirty_type = RDI_IMGLY;
} }
else else
{ {
rdpup_get_screen_image_rect(&id); rdpup_switch_os_surface(pDstPriv->rdpindex);
reset_surface = 1;
rdpup_get_pixmap_image_rect(pDstPixmap, &id);
got_id = 1; got_id = 1;
} }
} }
@ -129,8 +132,19 @@ rdpPolyText8(DrawablePtr pDrawable, GCPtr pGC,
if (pDstWnd->viewable) if (pDstWnd->viewable)
{ {
post_process = 1; post_process = 1;
rdpup_get_screen_image_rect(&id);
got_id = 1; if (g_do_dirty_ons)
{
LLOGLN(0, ("rdpPolyText8: gettig dirty"));
g_screenPriv.is_dirty = 1;
pDirtyPriv = &g_screenPriv;
dirty_type = RDI_IMGLL;
}
else
{
rdpup_get_screen_image_rect(&id);
got_id = 1;
}
} }
} }
} }

@ -182,23 +182,26 @@ rdpPolylines(DrawablePtr pDrawable, GCPtr pGC, int mode,
} }
else else
{ {
pDstWnd = (WindowPtr)pDrawable; if (pDrawable->type == DRAWABLE_WINDOW)
if (pDstWnd->viewable)
{ {
post_process = 1; pDstWnd = (WindowPtr)pDrawable;
if (g_do_dirty_ons) if (pDstWnd->viewable)
{
LLOGLN(0, ("rdpPolylines: gettig dirty"));
g_screenPriv.is_dirty = 1;
pDirtyPriv = &g_screenPriv;
dirty_type = RDI_IMGLL;
}
else
{ {
rdpup_get_screen_image_rect(&id); post_process = 1;
got_id = 1;
if (g_do_dirty_ons)
{
LLOGLN(0, ("rdpPolylines: gettig dirty"));
g_screenPriv.is_dirty = 1;
pDirtyPriv = &g_screenPriv;
dirty_type = RDI_IMGLL;
}
else
{
rdpup_get_screen_image_rect(&id);
got_id = 1;
}
} }
} }
} }

@ -93,45 +93,54 @@ rdpPushPixels(GCPtr pGC, PixmapPtr pBitMap, DrawablePtr pDst,
if (pDst->type == DRAWABLE_PIXMAP) if (pDst->type == DRAWABLE_PIXMAP)
{ {
post_process = 1; pDstPixmap = (PixmapPtr)pDst;
pDstPriv = GETPIXPRIV(pDstPixmap);
if (g_do_dirty_os) if (XRDP_IS_OS(pDstPriv))
{
LLOGLN(10, ("rdpPushPixels: gettig dirty"));
pDstPriv->is_dirty = 1;
pDirtyPriv = pDstPriv;
dirty_type = RDI_IMGLY;
}
else
{
rdpup_switch_os_surface(pDstPriv->rdpindex);
reset_surface = 1;
rdpup_get_pixmap_image_rect(pDstPixmap, &id);
got_id = 1;
}
}
else
{
pDstWnd = (WindowPtr)pDst;
if (pDstWnd->viewable)
{ {
post_process = 1; post_process = 1;
if (g_do_dirty_ons) if (g_do_dirty_os)
{ {
LLOGLN(0, ("rdpPushPixels: gettig dirty")); LLOGLN(10, ("rdpPushPixels: gettig dirty"));
g_screenPriv.is_dirty = 1; pDstPriv->is_dirty = 1;
pDirtyPriv = &g_screenPriv; pDirtyPriv = pDstPriv;
dirty_type = RDI_IMGLL; dirty_type = RDI_IMGLY;
} }
else else
{ {
rdpup_get_screen_image_rect(&id); rdpup_switch_os_surface(pDstPriv->rdpindex);
reset_surface = 1;
rdpup_get_pixmap_image_rect(pDstPixmap, &id);
got_id = 1; got_id = 1;
} }
} }
} }
else
{
if (pDst->type == DRAWABLE_WINDOW)
{
pDstWnd = (WindowPtr)pDst;
if (pDstWnd->viewable)
{
post_process = 1;
if (g_do_dirty_ons)
{
LLOGLN(0, ("rdpPushPixels: gettig dirty"));
g_screenPriv.is_dirty = 1;
pDirtyPriv = &g_screenPriv;
dirty_type = RDI_IMGLL;
}
else
{
rdpup_get_screen_image_rect(&id);
got_id = 1;
}
}
}
}
if (!post_process) if (!post_process)
{ {

@ -120,23 +120,26 @@ rdpPutImage(DrawablePtr pDst, GCPtr pGC, int depth, int x, int y,
} }
else else
{ {
pDstWnd = (WindowPtr)pDst; if (pDst->type == DRAWABLE_WINDOW)
if (pDstWnd->viewable)
{ {
post_process = 1; pDstWnd = (WindowPtr)pDst;
if (g_do_dirty_ons) if (pDstWnd->viewable)
{
LLOGLN(0, ("rdpPutImage: gettig dirty"));
g_screenPriv.is_dirty = 1;
pDirtyPriv = &g_screenPriv;
dirty_type = RDI_IMGLL;
}
else
{ {
rdpup_get_screen_image_rect(&id); post_process = 1;
got_id = 1;
if (g_do_dirty_ons)
{
LLOGLN(0, ("rdpPutImage: gettig dirty"));
g_screenPriv.is_dirty = 1;
pDirtyPriv = &g_screenPriv;
dirty_type = RDI_IMGLL;
}
else
{
rdpup_get_screen_image_rect(&id);
got_id = 1;
}
} }
} }
} }

@ -91,77 +91,70 @@ rdpSetSpans(DrawablePtr pDrawable, GCPtr pGC, char *psrc,
if (XRDP_IS_OS(pDstPriv)) if (XRDP_IS_OS(pDstPriv))
{ {
pDstPixmap = (PixmapPtr)pDrawable; post_process = 1;
pDstPriv = GETPIXPRIV(pDstPixmap);
if (XRDP_IS_OS(pDstPriv)) if (g_do_dirty_os)
{ {
post_process = 1; LLOGLN(10, ("rdpSetSpans: gettig dirty"));
pDstPriv->is_dirty = 1;
if (g_do_dirty_os) pDirtyPriv = pDstPriv;
{ dirty_type = RDI_IMGLY;
LLOGLN(10, ("rdpSetSpans: gettig dirty")); }
pDstPriv->is_dirty = 1; else
pDirtyPriv = pDstPriv; {
dirty_type = RDI_IMGLY; rdpup_switch_os_surface(pDstPriv->rdpindex);
} reset_surface = 1;
else rdpup_get_pixmap_image_rect(pDstPixmap, &id);
{ got_id = 1;
rdpup_switch_os_surface(pDstPriv->rdpindex);
reset_surface = 1;
rdpup_get_pixmap_image_rect(pDstPixmap, &id);
got_id = 1;
}
} }
} }
else }
else
{
if (pDrawable->type == DRAWABLE_WINDOW)
{ {
if (pDrawable->type == DRAWABLE_WINDOW) pDstWnd = (WindowPtr)pDrawable;
if (pDstWnd->viewable)
{ {
pDstWnd = (WindowPtr)pDrawable; post_process = 1;
rdpup_get_screen_image_rect(&id);
if (pDstWnd->viewable) got_id = 1;
{
post_process = 1;
rdpup_get_screen_image_rect(&id);
got_id = 1;
}
} }
} }
}
if (!post_process) if (!post_process)
{ {
return; return;
} }
RegionInit(&clip_reg, NullBox, 0); RegionInit(&clip_reg, NullBox, 0);
cd = rdp_get_clip(&clip_reg, pDrawable, pGC); cd = rdp_get_clip(&clip_reg, pDrawable, pGC);
if (cd == 1) if (cd == 1)
{
if (dirty_type != 0)
{ {
if (dirty_type != 0)
{
}
else if (got_id)
{
}
} }
else if (cd == 2) else if (got_id)
{ {
if (dirty_type != 0)
{
}
else if (got_id)
{
}
} }
}
RegionUninit(&clip_reg); else if (cd == 2)
{
if (reset_surface) if (dirty_type != 0)
{
}
else if (got_id)
{ {
rdpup_switch_os_surface(-1);
} }
} }
}
RegionUninit(&clip_reg);
if (reset_surface)
{
rdpup_switch_os_surface(-1);
}
}

@ -1247,24 +1247,27 @@ rdpComposite(CARD8 op, PicturePtr pSrc, PicturePtr pMask, PicturePtr pDst,
} }
else else
{ {
pDstWnd = (WindowPtr)p; if (p->type == DRAWABLE_WINDOW)
if (pDstWnd->viewable)
{ {
post_process = 1; pDstWnd = (WindowPtr)p;
if (g_do_dirty_ons) if (pDstWnd->viewable)
{
LLOGLN(0, ("rdpComposite: gettig dirty"));
g_screenPriv.is_dirty = 1;
pDirtyPriv = &g_screenPriv;
dirty_type = RDI_IMGLL;
}
else
{ {
rdpup_get_screen_image_rect(&id); post_process = 1;
got_id = 1;
LLOGLN(10, ("rdpComposite: screen")); if (g_do_dirty_ons)
{
LLOGLN(0, ("rdpComposite: gettig dirty"));
g_screenPriv.is_dirty = 1;
pDirtyPriv = &g_screenPriv;
dirty_type = RDI_IMGLL;
}
else
{
rdpup_get_screen_image_rect(&id);
got_id = 1;
LLOGLN(10, ("rdpComposite: screen"));
}
} }
} }
} }

@ -1685,82 +1685,92 @@ rdpup_create_window(WindowPtr pWindow, rdpWindowRec *priv)
if (g_connected) if (g_connected)
{ {
style = XR_STYLE_NORMAL; root_id = pWindow->drawable.pScreen->root->drawable.id;
ext_style = XR_EXT_STYLE_NORMAL;
} if (pWindow->overrideRedirect)
{
flags = WINDOW_ORDER_TYPE_WINDOW | WINDOW_ORDER_STATE_NEW; style = XR_STYLE_TOOLTIP;
strcpy(title, "title"); ext_style = XR_EXT_STYLE_TOOLTIP;
title_bytes = strlen(title); }
else
num_window_rects = 1; {
num_visibility_rects = 1; style = XR_STYLE_NORMAL;
ext_style = XR_EXT_STYLE_NORMAL;
/* calculate bytes */ }
bytes = (2 + 2) + (5 * 4) + (2 + title_bytes) + (12 * 4) +
(2 + num_window_rects * 8) + (4 + 4) + flags = WINDOW_ORDER_TYPE_WINDOW | WINDOW_ORDER_STATE_NEW;
(2 + num_visibility_rects * 8) + 4; strcpy(title, "title");
title_bytes = strlen(title);
rdpup_pre_check(bytes);
out_uint16_le(g_out_s, 25); num_window_rects = 1;
out_uint16_le(g_out_s, bytes); num_visibility_rects = 1;
g_count++;
out_uint32_le(g_out_s, pWindow->drawable.id); /* window_id */ /* calculate bytes */
out_uint32_le(g_out_s, pWindow->parent->drawable.id); /* owner_window_id */ bytes = (2 + 2) + (5 * 4) + (2 + title_bytes) + (12 * 4) +
flags |= WINDOW_ORDER_FIELD_OWNER; (2 + num_window_rects * 8) + (4 + 4) +
out_uint32_le(g_out_s, style); /* style */ (2 + num_visibility_rects * 8) + 4;
out_uint32_le(g_out_s, ext_style); /* extended_style */
flags |= WINDOW_ORDER_FIELD_STYLE; rdpup_pre_check(bytes);
out_uint32_le(g_out_s, 0); /* show_state */ out_uint16_le(g_out_s, 25);
flags |= WINDOW_ORDER_FIELD_SHOW; out_uint16_le(g_out_s, bytes);
out_uint16_le(g_out_s, title_bytes); /* title_info */ g_count++;
out_uint8a(g_out_s, title, title_bytes); out_uint32_le(g_out_s, pWindow->drawable.id); /* window_id */
flags |= WINDOW_ORDER_FIELD_TITLE; out_uint32_le(g_out_s, pWindow->parent->drawable.id); /* owner_window_id */
out_uint32_le(g_out_s, 0); /* client_offset_x */ flags |= WINDOW_ORDER_FIELD_OWNER;
out_uint32_le(g_out_s, 0); /* client_offset_y */ out_uint32_le(g_out_s, style); /* style */
flags |= WINDOW_ORDER_FIELD_CLIENT_AREA_OFFSET; out_uint32_le(g_out_s, ext_style); /* extended_style */
out_uint32_le(g_out_s, pWindow->drawable.width); /* client_area_width */ flags |= WINDOW_ORDER_FIELD_STYLE;
out_uint32_le(g_out_s, pWindow->drawable.height); /* client_area_height */ out_uint32_le(g_out_s, 0); /* show_state */
flags |= WINDOW_ORDER_FIELD_CLIENT_AREA_SIZE; flags |= WINDOW_ORDER_FIELD_SHOW;
out_uint32_le(g_out_s, 0); /* rp_content */ out_uint16_le(g_out_s, title_bytes); /* title_info */
out_uint32_le(g_out_s, root_id); /* root_parent_handle */ out_uint8a(g_out_s, title, title_bytes);
flags |= WINDOW_ORDER_FIELD_ROOT_PARENT; flags |= WINDOW_ORDER_FIELD_TITLE;
out_uint32_le(g_out_s, pWindow->drawable.x); /* window_offset_x */ out_uint32_le(g_out_s, 0); /* client_offset_x */
out_uint32_le(g_out_s, pWindow->drawable.y); /* window_offset_y */ out_uint32_le(g_out_s, 0); /* client_offset_y */
flags |= WINDOW_ORDER_FIELD_WND_OFFSET; flags |= WINDOW_ORDER_FIELD_CLIENT_AREA_OFFSET;
out_uint32_le(g_out_s, 0); /* window_client_delta_x */ out_uint32_le(g_out_s, pWindow->drawable.width); /* client_area_width */
out_uint32_le(g_out_s, 0); /* window_client_delta_y */ out_uint32_le(g_out_s, pWindow->drawable.height); /* client_area_height */
flags |= WINDOW_ORDER_FIELD_WND_CLIENT_DELTA; flags |= WINDOW_ORDER_FIELD_CLIENT_AREA_SIZE;
out_uint32_le(g_out_s, pWindow->drawable.width); /* window_width */ out_uint32_le(g_out_s, 0); /* rp_content */
out_uint32_le(g_out_s, pWindow->drawable.height); /* window_height */ out_uint32_le(g_out_s, root_id); /* root_parent_handle */
flags |= WINDOW_ORDER_FIELD_WND_SIZE; flags |= WINDOW_ORDER_FIELD_ROOT_PARENT;
out_uint16_le(g_out_s, num_window_rects); /* num_window_rects */ out_uint32_le(g_out_s, pWindow->drawable.x); /* window_offset_x */
out_uint32_le(g_out_s, pWindow->drawable.y); /* window_offset_y */
for (index = 0; index < num_window_rects; index++) flags |= WINDOW_ORDER_FIELD_WND_OFFSET;
{ out_uint32_le(g_out_s, 0); /* window_client_delta_x */
out_uint16_le(g_out_s, 0); /* left */ out_uint32_le(g_out_s, 0); /* window_client_delta_y */
out_uint16_le(g_out_s, 0); /* top */ flags |= WINDOW_ORDER_FIELD_WND_CLIENT_DELTA;
out_uint16_le(g_out_s, pWindow->drawable.width); /* right */ out_uint32_le(g_out_s, pWindow->drawable.width); /* window_width */
out_uint16_le(g_out_s, pWindow->drawable.height); /* bottom */ out_uint32_le(g_out_s, pWindow->drawable.height); /* window_height */
} flags |= WINDOW_ORDER_FIELD_WND_SIZE;
out_uint16_le(g_out_s, num_window_rects); /* num_window_rects */
flags |= WINDOW_ORDER_FIELD_WND_RECTS;
out_uint32_le(g_out_s, pWindow->drawable.x); /* visible_offset_x */ for (index = 0; index < num_window_rects; index++)
out_uint32_le(g_out_s, pWindow->drawable.y); /* visible_offset_y */ {
flags |= WINDOW_ORDER_FIELD_VIS_OFFSET; out_uint16_le(g_out_s, 0); /* left */
out_uint16_le(g_out_s, num_visibility_rects); /* num_visibility_rects */ out_uint16_le(g_out_s, 0); /* top */
out_uint16_le(g_out_s, pWindow->drawable.width); /* right */
for (index = 0; index < num_visibility_rects; index++) out_uint16_le(g_out_s, pWindow->drawable.height); /* bottom */
{ }
out_uint16_le(g_out_s, 0); /* left */
out_uint16_le(g_out_s, 0); /* top */ flags |= WINDOW_ORDER_FIELD_WND_RECTS;
out_uint16_le(g_out_s, pWindow->drawable.width); /* right */ out_uint32_le(g_out_s, pWindow->drawable.x); /* visible_offset_x */
out_uint16_le(g_out_s, pWindow->drawable.height); /* bottom */ out_uint32_le(g_out_s, pWindow->drawable.y); /* visible_offset_y */
} flags |= WINDOW_ORDER_FIELD_VIS_OFFSET;
out_uint16_le(g_out_s, num_visibility_rects); /* num_visibility_rects */
flags |= WINDOW_ORDER_FIELD_VISIBILITY;
for (index = 0; index < num_visibility_rects; index++)
out_uint32_le(g_out_s, flags); /* flags */ {
out_uint16_le(g_out_s, 0); /* left */
out_uint16_le(g_out_s, 0); /* top */
out_uint16_le(g_out_s, pWindow->drawable.width); /* right */
out_uint16_le(g_out_s, pWindow->drawable.height); /* bottom */
}
flags |= WINDOW_ORDER_FIELD_VISIBILITY;
out_uint32_le(g_out_s, flags); /* flags */
}
} }
/******************************************************************************/ /******************************************************************************/
@ -1894,7 +1904,6 @@ rdpup_check_dirty(PixmapPtr pDirtyPixmap, rdpPixmapRec *pDirtyPriv)
rdpup_reset_clip(); rdpup_reset_clip();
rdpup_set_opcode(GXcopy); rdpup_set_opcode(GXcopy);
break; break;
case RDI_SCRBLT: case RDI_SCRBLT:
LLOGLN(10, (" RDI_SCRBLT")); LLOGLN(10, (" RDI_SCRBLT"));
break; break;
@ -1910,9 +1919,9 @@ rdpup_check_dirty(PixmapPtr pDirtyPixmap, rdpPixmapRec *pDirtyPriv)
return 0; return 0;
} }
/******************************************************************************/ /******************************************************************************/
int int
rdpup_check_dirty_screen(rdpPixmapRec *pDirtyPriv) rdpup_check_dirty_screen(rdpPixmapRec *pDirtyPriv)
{ {
int index; int index;
int clip_index; int clip_index;

Loading…
Cancel
Save