Merge branch 'master' of github.com:neutrinolabs/xrdp

ulab-next
Laxmikant Rashinkar 11 years ago
commit 1a6483f0ab

@ -492,7 +492,7 @@ rdpCopyArea(DrawablePtr pSrc, DrawablePtr pDst, GCPtr pGC,
if (g_do_dirty_os) if (g_do_dirty_os)
{ {
LLOGLN(10, ("rdpCopyArea: gettig dirty")); LLOGLN(10, ("rdpCopyArea: getting dirty"));
pDstPriv->is_dirty = 1; pDstPriv->is_dirty = 1;
pDirtyPriv = pDstPriv; pDirtyPriv = pDstPriv;
dirty_type = RDI_IMGLL; dirty_type = RDI_IMGLL;
@ -522,7 +522,7 @@ rdpCopyArea(DrawablePtr pSrc, DrawablePtr pDst, GCPtr pGC,
if (g_do_dirty_ons) if (g_do_dirty_ons)
{ {
LLOGLN(10, ("rdpCopyArea: gettig dirty")); LLOGLN(10, ("rdpCopyArea: getting dirty"));
g_screenPriv.is_dirty = 1; g_screenPriv.is_dirty = 1;
pDirtyPriv = &g_screenPriv; pDirtyPriv = &g_screenPriv;
dirty_type = RDI_IMGLL; dirty_type = RDI_IMGLL;

@ -111,7 +111,7 @@ rdpCopyPlane(DrawablePtr pSrc, DrawablePtr pDst,
if (g_do_dirty_os) if (g_do_dirty_os)
{ {
LLOGLN(10, ("rdpCopyPlane: gettig dirty")); LLOGLN(10, ("rdpCopyPlane: getting dirty"));
pDstPriv->is_dirty = 1; pDstPriv->is_dirty = 1;
pDirtyPriv = pDstPriv; pDirtyPriv = pDstPriv;
dirty_type = RDI_IMGLL; dirty_type = RDI_IMGLL;
@ -137,7 +137,7 @@ rdpCopyPlane(DrawablePtr pSrc, DrawablePtr pDst,
if (g_do_dirty_ons) if (g_do_dirty_ons)
{ {
LLOGLN(0, ("rdpCopyPlane: gettig dirty")); LLOGLN(10, ("rdpCopyPlane: getting dirty"));
g_screenPriv.is_dirty = 1; g_screenPriv.is_dirty = 1;
pDirtyPriv = &g_screenPriv; pDirtyPriv = &g_screenPriv;
dirty_type = RDI_IMGLL; dirty_type = RDI_IMGLL;

@ -150,7 +150,7 @@ rdpFillPolygon(DrawablePtr pDrawable, GCPtr pGC,
if (g_do_dirty_os) if (g_do_dirty_os)
{ {
LLOGLN(10, ("rdpFillPolygon: gettig dirty")); LLOGLN(10, ("rdpFillPolygon: getting dirty"));
pDstPriv->is_dirty = 1; pDstPriv->is_dirty = 1;
pDirtyPriv = pDstPriv; pDirtyPriv = pDstPriv;
dirty_type = RDI_IMGLL; dirty_type = RDI_IMGLL;
@ -176,7 +176,7 @@ rdpFillPolygon(DrawablePtr pDrawable, GCPtr pGC,
if (g_do_dirty_ons) if (g_do_dirty_ons)
{ {
LLOGLN(0, ("rdpFillPolygon: gettig dirty")); LLOGLN(10, ("rdpFillPolygon: getting dirty"));
g_screenPriv.is_dirty = 1; g_screenPriv.is_dirty = 1;
pDirtyPriv = &g_screenPriv; pDirtyPriv = &g_screenPriv;
dirty_type = RDI_IMGLL; dirty_type = RDI_IMGLL;

@ -108,7 +108,7 @@ rdpImageGlyphBlt(DrawablePtr pDrawable, GCPtr pGC,
if (g_do_dirty_os) if (g_do_dirty_os)
{ {
LLOGLN(10, ("rdpImageGlyphBlt: gettig dirty")); LLOGLN(10, ("rdpImageGlyphBlt: getting dirty"));
pDstPriv->is_dirty = 1; pDstPriv->is_dirty = 1;
pDirtyPriv = pDstPriv; pDirtyPriv = pDstPriv;
dirty_type = RDI_IMGLL; dirty_type = RDI_IMGLL;
@ -134,7 +134,7 @@ rdpImageGlyphBlt(DrawablePtr pDrawable, GCPtr pGC,
if (g_do_dirty_ons) if (g_do_dirty_ons)
{ {
LLOGLN(0, ("rdpImageGlyphBlt: gettig dirty")); LLOGLN(10, ("rdpImageGlyphBlt: getting dirty"));
g_screenPriv.is_dirty = 1; g_screenPriv.is_dirty = 1;
pDirtyPriv = &g_screenPriv; pDirtyPriv = &g_screenPriv;
dirty_type = RDI_IMGLL; dirty_type = RDI_IMGLL;

@ -106,7 +106,7 @@ rdpImageText16(DrawablePtr pDrawable, GCPtr pGC,
if (g_do_dirty_os) if (g_do_dirty_os)
{ {
LLOGLN(10, ("rdpImageText16: gettig dirty")); LLOGLN(10, ("rdpImageText16: getting dirty"));
pDstPriv->is_dirty = 1; pDstPriv->is_dirty = 1;
pDirtyPriv = pDstPriv; pDirtyPriv = pDstPriv;
dirty_type = RDI_IMGLY; dirty_type = RDI_IMGLY;
@ -132,7 +132,7 @@ rdpImageText16(DrawablePtr pDrawable, GCPtr pGC,
if (g_do_dirty_ons) if (g_do_dirty_ons)
{ {
LLOGLN(10, ("rdpImageText16: gettig dirty")); LLOGLN(10, ("rdpImageText16: getting dirty"));
g_screenPriv.is_dirty = 1; g_screenPriv.is_dirty = 1;
pDirtyPriv = &g_screenPriv; pDirtyPriv = &g_screenPriv;
dirty_type = RDI_IMGLL; dirty_type = RDI_IMGLL;

@ -106,7 +106,7 @@ rdpImageText8(DrawablePtr pDrawable, GCPtr pGC,
if (g_do_dirty_os) if (g_do_dirty_os)
{ {
LLOGLN(10, ("rdpImageText8: gettig dirty")); LLOGLN(10, ("rdpImageText8: getting dirty"));
pDstPriv->is_dirty = 1; pDstPriv->is_dirty = 1;
pDirtyPriv = pDstPriv; pDirtyPriv = pDstPriv;
dirty_type = RDI_IMGLL; dirty_type = RDI_IMGLL;
@ -132,7 +132,7 @@ rdpImageText8(DrawablePtr pDrawable, GCPtr pGC,
if (g_do_dirty_ons) if (g_do_dirty_ons)
{ {
LLOGLN(0, ("rdpImageText8: gettig dirty")); LLOGLN(10, ("rdpImageText8: getting dirty"));
g_screenPriv.is_dirty = 1; g_screenPriv.is_dirty = 1;
pDirtyPriv = &g_screenPriv; pDirtyPriv = &g_screenPriv;
dirty_type = RDI_IMGLL; dirty_type = RDI_IMGLL;

@ -125,7 +125,7 @@ rdpPolyArc(DrawablePtr pDrawable, GCPtr pGC, int narcs, xArc *parcs)
if (g_do_dirty_os) if (g_do_dirty_os)
{ {
LLOGLN(10, ("rdpPolyArc: gettig dirty")); LLOGLN(10, ("rdpPolyArc: getting dirty"));
pDstPriv->is_dirty = 1; pDstPriv->is_dirty = 1;
pDirtyPriv = pDstPriv; pDirtyPriv = pDstPriv;
dirty_type = RDI_IMGLL; dirty_type = RDI_IMGLL;
@ -151,7 +151,7 @@ rdpPolyArc(DrawablePtr pDrawable, GCPtr pGC, int narcs, xArc *parcs)
if (g_do_dirty_ons) if (g_do_dirty_ons)
{ {
LLOGLN(0, ("rdpPolyArc: gettig dirty")); LLOGLN(10, ("rdpPolyArc: getting dirty"));
g_screenPriv.is_dirty = 1; g_screenPriv.is_dirty = 1;
pDirtyPriv = &g_screenPriv; pDirtyPriv = &g_screenPriv;
dirty_type = RDI_IMGLL; dirty_type = RDI_IMGLL;

@ -125,7 +125,7 @@ rdpPolyFillArc(DrawablePtr pDrawable, GCPtr pGC, int narcs, xArc *parcs)
if (g_do_dirty_os) if (g_do_dirty_os)
{ {
LLOGLN(10, ("rdpPolyFillArc: gettig dirty")); LLOGLN(10, ("rdpPolyFillArc: getting dirty"));
pDstPriv->is_dirty = 1; pDstPriv->is_dirty = 1;
pDirtyPriv = pDstPriv; pDirtyPriv = pDstPriv;
dirty_type = RDI_IMGLY; dirty_type = RDI_IMGLY;
@ -151,7 +151,7 @@ rdpPolyFillArc(DrawablePtr pDrawable, GCPtr pGC, int narcs, xArc *parcs)
if (g_do_dirty_ons) if (g_do_dirty_ons)
{ {
LLOGLN(0, ("rdpPolyFillArc: gettig dirty")); LLOGLN(10, ("rdpPolyFillArc: getting dirty"));
g_screenPriv.is_dirty = 1; g_screenPriv.is_dirty = 1;
pDirtyPriv = &g_screenPriv; pDirtyPriv = &g_screenPriv;
dirty_type = RDI_IMGLL; dirty_type = RDI_IMGLL;

@ -105,7 +105,7 @@ rdpPolyFillRect(DrawablePtr pDrawable, GCPtr pGC, int nrectFill,
if (g_do_dirty_ons) if (g_do_dirty_ons)
{ {
LLOGLN(10, ("rdpPolyFillRect: gettig dirty")); LLOGLN(10, ("rdpPolyFillRect: getting dirty"));
g_screenPriv.is_dirty = 1; g_screenPriv.is_dirty = 1;
pDirtyPriv = &g_screenPriv; pDirtyPriv = &g_screenPriv;
dirty_type = RDI_IMGLL; dirty_type = RDI_IMGLL;
@ -122,7 +122,7 @@ rdpPolyFillRect(DrawablePtr pDrawable, GCPtr pGC, int nrectFill,
if (g_do_dirty_os) if (g_do_dirty_os)
{ {
LLOGLN(10, ("rdpPolyFillRect: gettig dirty")); LLOGLN(10, ("rdpPolyFillRect: getting dirty"));
pDstPriv->is_dirty = 1; pDstPriv->is_dirty = 1;
pDirtyPriv = pDstPriv; pDirtyPriv = pDstPriv;
dirty_type = RDI_FILL; dirty_type = RDI_FILL;
@ -148,7 +148,7 @@ rdpPolyFillRect(DrawablePtr pDrawable, GCPtr pGC, int nrectFill,
if (g_do_dirty_ons) if (g_do_dirty_ons)
{ {
LLOGLN(10, ("rdpPolyFillRect: gettig dirty")); LLOGLN(10, ("rdpPolyFillRect: getting dirty"));
g_screenPriv.is_dirty = 1; g_screenPriv.is_dirty = 1;
pDirtyPriv = &g_screenPriv; pDirtyPriv = &g_screenPriv;
dirty_type = RDI_IMGLL; dirty_type = RDI_IMGLL;

@ -108,7 +108,7 @@ rdpPolyGlyphBlt(DrawablePtr pDrawable, GCPtr pGC,
if (g_do_dirty_os) if (g_do_dirty_os)
{ {
LLOGLN(10, ("rdpPolyGlyphBlt: gettig dirty")); LLOGLN(10, ("rdpPolyGlyphBlt: getting dirty"));
pDstPriv->is_dirty = 1; pDstPriv->is_dirty = 1;
pDirtyPriv = pDstPriv; pDirtyPriv = pDstPriv;
dirty_type = RDI_IMGLY; dirty_type = RDI_IMGLY;
@ -134,7 +134,7 @@ rdpPolyGlyphBlt(DrawablePtr pDrawable, GCPtr pGC,
if (g_do_dirty_ons) if (g_do_dirty_ons)
{ {
LLOGLN(0, ("rdpPolyGlyphBlt: gettig dirty")); LLOGLN(10, ("rdpPolyGlyphBlt: getting dirty"));
g_screenPriv.is_dirty = 1; g_screenPriv.is_dirty = 1;
pDirtyPriv = &g_screenPriv; pDirtyPriv = &g_screenPriv;
dirty_type = RDI_IMGLL; dirty_type = RDI_IMGLL;

@ -156,7 +156,7 @@ rdpPolyPoint(DrawablePtr pDrawable, GCPtr pGC, int mode,
if (g_do_dirty_os) if (g_do_dirty_os)
{ {
LLOGLN(10, ("rdpPolyPoint: gettig dirty")); LLOGLN(10, ("rdpPolyPoint: getting dirty"));
pDstPriv->is_dirty = 1; pDstPriv->is_dirty = 1;
pDirtyPriv = pDstPriv; pDirtyPriv = pDstPriv;
dirty_type = RDI_IMGLL; dirty_type = RDI_IMGLL;
@ -182,7 +182,7 @@ rdpPolyPoint(DrawablePtr pDrawable, GCPtr pGC, int mode,
if (g_do_dirty_ons) if (g_do_dirty_ons)
{ {
LLOGLN(0, ("rdpPolyPoint: gettig dirty")); LLOGLN(10, ("rdpPolyPoint: getting dirty"));
g_screenPriv.is_dirty = 1; g_screenPriv.is_dirty = 1;
pDirtyPriv = &g_screenPriv; pDirtyPriv = &g_screenPriv;
dirty_type = RDI_IMGLL; dirty_type = RDI_IMGLL;

@ -118,7 +118,7 @@ rdpPolyRectangle(DrawablePtr pDrawable, GCPtr pGC, int nrects,
if (g_do_dirty_os) if (g_do_dirty_os)
{ {
LLOGLN(10, ("rdpPolyRectangle: gettig dirty")); LLOGLN(10, ("rdpPolyRectangle: getting dirty"));
pDstPriv->is_dirty = 1; pDstPriv->is_dirty = 1;
pDirtyPriv = pDstPriv; pDirtyPriv = pDstPriv;
dirty_type = RDI_IMGLL; dirty_type = RDI_IMGLL;
@ -144,7 +144,7 @@ rdpPolyRectangle(DrawablePtr pDrawable, GCPtr pGC, int nrects,
if (g_do_dirty_ons) if (g_do_dirty_ons)
{ {
LLOGLN(10, ("rdpPolyRectangle: gettig dirty")); LLOGLN(10, ("rdpPolyRectangle: getting dirty"));
g_screenPriv.is_dirty = 1; g_screenPriv.is_dirty = 1;
pDirtyPriv = &g_screenPriv; pDirtyPriv = &g_screenPriv;
dirty_type = RDI_IMGLL; dirty_type = RDI_IMGLL;

@ -115,7 +115,7 @@ rdpPolySegment(DrawablePtr pDrawable, GCPtr pGC, int nseg, xSegment *pSegs)
if (g_do_dirty_os) if (g_do_dirty_os)
{ {
LLOGLN(10, ("rdpPolySegment: gettig dirty")); LLOGLN(10, ("rdpPolySegment: getting dirty"));
pDstPriv->is_dirty = 1; pDstPriv->is_dirty = 1;
pDirtyPriv = pDstPriv; pDirtyPriv = pDstPriv;
dirty_type = RDI_IMGLL; dirty_type = RDI_IMGLL;
@ -141,7 +141,7 @@ rdpPolySegment(DrawablePtr pDrawable, GCPtr pGC, int nseg, xSegment *pSegs)
if (g_do_dirty_ons) if (g_do_dirty_ons)
{ {
LLOGLN(10, ("rdpPolySegment: gettig dirty")); LLOGLN(10, ("rdpPolySegment: getting dirty"));
g_screenPriv.is_dirty = 1; g_screenPriv.is_dirty = 1;
pDirtyPriv = &g_screenPriv; pDirtyPriv = &g_screenPriv;
dirty_type = RDI_IMGLL; dirty_type = RDI_IMGLL;

@ -109,7 +109,7 @@ rdpPolyText16(DrawablePtr pDrawable, GCPtr pGC,
if (g_do_dirty_os) if (g_do_dirty_os)
{ {
LLOGLN(10, ("rdpPolyText16: gettig dirty")); LLOGLN(10, ("rdpPolyText16: getting dirty"));
pDstPriv->is_dirty = 1; pDstPriv->is_dirty = 1;
pDirtyPriv = pDstPriv; pDirtyPriv = pDstPriv;
dirty_type = RDI_IMGLY; dirty_type = RDI_IMGLY;
@ -135,7 +135,7 @@ rdpPolyText16(DrawablePtr pDrawable, GCPtr pGC,
if (g_do_dirty_ons) if (g_do_dirty_ons)
{ {
LLOGLN(0, ("rdpPolyText16: gettig dirty")); LLOGLN(10, ("rdpPolyText16: getting dirty"));
g_screenPriv.is_dirty = 1; g_screenPriv.is_dirty = 1;
pDirtyPriv = &g_screenPriv; pDirtyPriv = &g_screenPriv;
dirty_type = RDI_IMGLL; dirty_type = RDI_IMGLL;

@ -109,7 +109,7 @@ rdpPolyText8(DrawablePtr pDrawable, GCPtr pGC,
if (g_do_dirty_os) if (g_do_dirty_os)
{ {
LLOGLN(10, ("rdpPolyText8: gettig dirty")); LLOGLN(10, ("rdpPolyText8: getting dirty"));
pDstPriv->is_dirty = 1; pDstPriv->is_dirty = 1;
pDirtyPriv = pDstPriv; pDirtyPriv = pDstPriv;
dirty_type = RDI_IMGLY; dirty_type = RDI_IMGLY;
@ -135,7 +135,7 @@ rdpPolyText8(DrawablePtr pDrawable, GCPtr pGC,
if (g_do_dirty_ons) if (g_do_dirty_ons)
{ {
LLOGLN(0, ("rdpPolyText8: gettig dirty")); LLOGLN(10, ("rdpPolyText8: getting dirty"));
g_screenPriv.is_dirty = 1; g_screenPriv.is_dirty = 1;
pDirtyPriv = &g_screenPriv; pDirtyPriv = &g_screenPriv;
dirty_type = RDI_IMGLL; dirty_type = RDI_IMGLL;

@ -166,7 +166,7 @@ rdpPolylines(DrawablePtr pDrawable, GCPtr pGC, int mode,
if (g_do_dirty_os) if (g_do_dirty_os)
{ {
LLOGLN(10, ("rdpPolylines: gettig dirty")); LLOGLN(10, ("rdpPolylines: getting dirty"));
pDstPriv->is_dirty = 1; pDstPriv->is_dirty = 1;
pDirtyPriv = pDstPriv; pDirtyPriv = pDstPriv;
dirty_type = RDI_IMGLL; dirty_type = RDI_IMGLL;
@ -192,7 +192,7 @@ rdpPolylines(DrawablePtr pDrawable, GCPtr pGC, int mode,
if (g_do_dirty_ons) if (g_do_dirty_ons)
{ {
LLOGLN(10, ("rdpPolylines: gettig dirty")); LLOGLN(10, ("rdpPolylines: getting dirty"));
g_screenPriv.is_dirty = 1; g_screenPriv.is_dirty = 1;
pDirtyPriv = &g_screenPriv; pDirtyPriv = &g_screenPriv;
dirty_type = RDI_IMGLL; dirty_type = RDI_IMGLL;

@ -102,7 +102,7 @@ rdpPushPixels(GCPtr pGC, PixmapPtr pBitMap, DrawablePtr pDst,
if (g_do_dirty_os) if (g_do_dirty_os)
{ {
LLOGLN(10, ("rdpPushPixels: gettig dirty")); LLOGLN(10, ("rdpPushPixels: getting dirty"));
pDstPriv->is_dirty = 1; pDstPriv->is_dirty = 1;
pDirtyPriv = pDstPriv; pDirtyPriv = pDstPriv;
dirty_type = RDI_IMGLY; dirty_type = RDI_IMGLY;
@ -128,7 +128,7 @@ rdpPushPixels(GCPtr pGC, PixmapPtr pBitMap, DrawablePtr pDst,
if (g_do_dirty_ons) if (g_do_dirty_ons)
{ {
LLOGLN(0, ("rdpPushPixels: gettig dirty")); LLOGLN(10, ("rdpPushPixels: getting dirty"));
g_screenPriv.is_dirty = 1; g_screenPriv.is_dirty = 1;
pDirtyPriv = &g_screenPriv; pDirtyPriv = &g_screenPriv;
dirty_type = RDI_IMGLL; dirty_type = RDI_IMGLL;

@ -106,7 +106,7 @@ rdpPutImage(DrawablePtr pDst, GCPtr pGC, int depth, int x, int y,
if (g_do_dirty_os) if (g_do_dirty_os)
{ {
LLOGLN(10, ("rdpPutImage: gettig dirty")); LLOGLN(10, ("rdpPutImage: getting dirty"));
pDstPriv->is_dirty = 1; pDstPriv->is_dirty = 1;
pDirtyPriv = pDstPriv; pDirtyPriv = pDstPriv;
dirty_type = RDI_IMGLY; dirty_type = RDI_IMGLY;
@ -132,7 +132,7 @@ rdpPutImage(DrawablePtr pDst, GCPtr pGC, int depth, int x, int y,
if (g_do_dirty_ons) if (g_do_dirty_ons)
{ {
LLOGLN(10, ("rdpPutImage: gettig dirty")); LLOGLN(10, ("rdpPutImage: getting dirty"));
g_screenPriv.is_dirty = 1; g_screenPriv.is_dirty = 1;
pDirtyPriv = &g_screenPriv; pDirtyPriv = &g_screenPriv;
dirty_type = RDI_IMGLL; dirty_type = RDI_IMGLL;

@ -38,6 +38,8 @@ extern int g_Bpp; /* from rdpmain.c */
extern ScreenPtr g_pScreen; /* from rdpmain.c */ extern ScreenPtr g_pScreen; /* from rdpmain.c */
extern Bool g_wrapPixmap; /* from rdpmain.c */ extern Bool g_wrapPixmap; /* from rdpmain.c */
extern int g_do_dirty_os; /* in rdpmain.c */ extern int g_do_dirty_os; /* in rdpmain.c */
extern int g_do_dirty_ons; /* in rdpmain.c */
extern rdpPixmapRec g_screenPriv; /* in rdpmain.c */
extern GCOps g_rdpGCOps; /* from rdpdraw.c */ extern GCOps g_rdpGCOps; /* from rdpdraw.c */
@ -95,7 +97,7 @@ rdpSetSpans(DrawablePtr pDrawable, GCPtr pGC, char *psrc,
if (g_do_dirty_os) if (g_do_dirty_os)
{ {
LLOGLN(10, ("rdpSetSpans: gettig dirty")); LLOGLN(10, ("rdpSetSpans: getting dirty"));
pDstPriv->is_dirty = 1; pDstPriv->is_dirty = 1;
pDirtyPriv = pDstPriv; pDirtyPriv = pDstPriv;
dirty_type = RDI_IMGLY; dirty_type = RDI_IMGLY;
@ -118,11 +120,21 @@ rdpSetSpans(DrawablePtr pDrawable, GCPtr pGC, char *psrc,
if (pDstWnd->viewable) if (pDstWnd->viewable)
{ {
post_process = 1; post_process = 1;
if (g_do_dirty_ons)
{
LLOGLN(10, ("rdpSetSpans: getting dirty"));
g_screenPriv.is_dirty = 1;
pDirtyPriv = &g_screenPriv;
dirty_type = RDI_IMGLL;
}
else
{
rdpup_get_screen_image_rect(&id); rdpup_get_screen_image_rect(&id);
got_id = 1; got_id = 1;
} }
} }
} }
}
if (!post_process) if (!post_process)
{ {

@ -481,15 +481,67 @@ draw_item_remove_all(rdpPixmapRec *priv)
return 0; return 0;
} }
/******************************************************************************/
static int
remove_empties(rdpPixmapRec* priv)
{
struct rdp_draw_item* di;
struct rdp_draw_item* di_prev;
int rv;
rv = 0;
/* remove draw items with empty regions */
di = priv->draw_item_head;
di_prev = 0;
while (di != 0)
{
if (!RegionNotEmpty(di->reg))
{
LLOGLN(10, ("remove_empties: removing empty item type %d", di->type));
draw_item_remove(priv, di);
di = di_prev == 0 ? priv->draw_item_head : di_prev->next;
rv++;
}
else
{
di_prev = di;
di = di->next;
}
}
return rv;
}
/******************************************************************************/ /******************************************************************************/
int int
draw_item_pack(PixmapPtr pix, rdpPixmapRec *priv) draw_item_pack(PixmapPtr pix, rdpPixmapRec *priv)
{ {
struct rdp_draw_item *di; struct rdp_draw_item *di;
struct rdp_draw_item *di_prev; struct rdp_draw_item *di_prev;
BoxRec box;
RegionRec treg;
#if 1 #if 1
if (pix != 0)
{
box.x1 = 0;
box.x2 = pix->drawable.width;
box.y1 = 0;
box.y2 = pix->drawable.height;
RegionInit(&treg, &box, 0);
di = priv->draw_item_head;
di_prev = 0;
while (di != 0)
{
RegionIntersect(di->reg, di->reg, &treg);
di_prev = di;
di = di->next;
}
RegionUninit(&treg);
remove_empties(priv);
}
#endif
#if 1
/* look for repeating draw types */ /* look for repeating draw types */
if (priv->draw_item_head != 0) if (priv->draw_item_head != 0)
{ {
@ -522,10 +574,10 @@ draw_item_pack(PixmapPtr pix, rdpPixmapRec *priv)
} }
} }
} }
remove_empties(priv);
#endif #endif
#if 0
#if 0
/* subtract regions */ /* subtract regions */
if (priv->draw_item_tail != 0) if (priv->draw_item_tail != 0)
{ {
@ -556,30 +608,9 @@ draw_item_pack(PixmapPtr pix, rdpPixmapRec *priv)
} }
} }
} }
remove_empties(priv);
#endif #endif
#if 1
/* remove draw items with empty regions */
di = priv->draw_item_head;
di_prev = 0;
while (di != 0)
{
if (!RegionNotEmpty(di->reg))
{
LLOGLN(10, ("draw_item_pack: removing empty item type %d", di->type));
draw_item_remove(priv, di);
di = di_prev == 0 ? priv->draw_item_head : di_prev->next;
}
else
{
di_prev = di;
di = di->next;
}
}
#endif
return 0; return 0;
} }
@ -1345,7 +1376,7 @@ rdpComposite(CARD8 op, PicturePtr pSrc, PicturePtr pMask, PicturePtr pDst,
if (g_do_dirty_os) if (g_do_dirty_os)
{ {
LLOGLN(10, ("rdpComposite: gettig dirty")); LLOGLN(10, ("rdpComposite: getting dirty"));
pDstPriv->is_dirty = 1; pDstPriv->is_dirty = 1;
dirty_type = g_doing_font ? RDI_IMGLL : RDI_IMGLY; dirty_type = g_doing_font ? RDI_IMGLL : RDI_IMGLY;
pDirtyPriv = pDstPriv; pDirtyPriv = pDstPriv;
@ -1373,7 +1404,7 @@ rdpComposite(CARD8 op, PicturePtr pSrc, PicturePtr pMask, PicturePtr pDst,
if (g_do_dirty_ons) if (g_do_dirty_ons)
{ {
LLOGLN(10, ("rdpComposite: gettig dirty")); LLOGLN(10, ("rdpComposite: getting dirty"));
g_screenPriv.is_dirty = 1; g_screenPriv.is_dirty = 1;
pDirtyPriv = &g_screenPriv; pDirtyPriv = &g_screenPriv;
dirty_type = RDI_IMGLL; dirty_type = RDI_IMGLL;

@ -137,8 +137,9 @@ xrdp_cache_reset(struct xrdp_cache *self,
} }
#define COMPARE_WITH_CRC(_b1, _b2) \ #define COMPARE_WITH_CRC(_b1, _b2) \
_b1 != 0 && _b2 != 0 && _b1->crc == _b2->crc && _b1->bpp == _b2->bpp && \ ((_b1 != 0) && (_b2 != 0) && (_b1->crc == _b2->crc) && \
_b1->width == _b1->width && _b1->height == _b2->height (_b1->bpp == _b2->bpp) && \
(_b1->width == _b2->width) && (_b1->height == _b2->height))
/*****************************************************************************/ /*****************************************************************************/
/* returns cache id */ /* returns cache id */
@ -174,8 +175,6 @@ xrdp_cache_add_bitmap(struct xrdp_cache *self, struct xrdp_bitmap *bitmap,
for (j = 0; j < self->cache1_entries; j++) for (j = 0; j < self->cache1_entries; j++)
{ {
#ifdef USE_CRC #ifdef USE_CRC
//if (xrdp_bitmap_compare_with_crc(self->bitmap_items[i][j].bitmap, bitmap))
if (COMPARE_WITH_CRC(self->bitmap_items[i][j].bitmap, bitmap)) if (COMPARE_WITH_CRC(self->bitmap_items[i][j].bitmap, bitmap))
#else #else
if (xrdp_bitmap_compare(self->bitmap_items[i][j].bitmap, bitmap)) if (xrdp_bitmap_compare(self->bitmap_items[i][j].bitmap, bitmap))
@ -195,8 +194,6 @@ xrdp_cache_add_bitmap(struct xrdp_cache *self, struct xrdp_bitmap *bitmap,
for (j = 0; j < self->cache2_entries; j++) for (j = 0; j < self->cache2_entries; j++)
{ {
#ifdef USE_CRC #ifdef USE_CRC
//if (xrdp_bitmap_compare_with_crc(self->bitmap_items[i][j].bitmap, bitmap))
if (COMPARE_WITH_CRC(self->bitmap_items[i][j].bitmap, bitmap)) if (COMPARE_WITH_CRC(self->bitmap_items[i][j].bitmap, bitmap))
#else #else
if (xrdp_bitmap_compare(self->bitmap_items[i][j].bitmap, bitmap)) if (xrdp_bitmap_compare(self->bitmap_items[i][j].bitmap, bitmap))
@ -216,8 +213,6 @@ xrdp_cache_add_bitmap(struct xrdp_cache *self, struct xrdp_bitmap *bitmap,
for (j = 0; j < self->cache3_entries; j++) for (j = 0; j < self->cache3_entries; j++)
{ {
#ifdef USE_CRC #ifdef USE_CRC
//if (xrdp_bitmap_compare_with_crc(self->bitmap_items[i][j].bitmap, bitmap))
if (COMPARE_WITH_CRC(self->bitmap_items[i][j].bitmap, bitmap)) if (COMPARE_WITH_CRC(self->bitmap_items[i][j].bitmap, bitmap))
#else #else
if (xrdp_bitmap_compare(self->bitmap_items[i][j].bitmap, bitmap)) if (xrdp_bitmap_compare(self->bitmap_items[i][j].bitmap, bitmap))

Loading…
Cancel
Save