|
|
@ -714,6 +714,10 @@ rdpCreatePixmap(ScreenPtr pScreen, int width, int height, int depth,
|
|
|
|
priv->kind_width = width;
|
|
|
|
priv->kind_width = width;
|
|
|
|
pScreen->ModifyPixmapHeader(rv, org_width, 0, 0, 0, 0, 0);
|
|
|
|
pScreen->ModifyPixmapHeader(rv, org_width, 0, 0, 0, 0, 0);
|
|
|
|
pScreen->CreatePixmap = rdpCreatePixmap;
|
|
|
|
pScreen->CreatePixmap = rdpCreatePixmap;
|
|
|
|
|
|
|
|
if (org_width == 0 && height == 0)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
priv->is_scratch = 1;
|
|
|
|
|
|
|
|
}
|
|
|
|
return rv;
|
|
|
|
return rv;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -764,7 +768,8 @@ xrdp_is_os(PixmapPtr pix, rdpPixmapPtr priv)
|
|
|
|
height = pix->drawable.height;
|
|
|
|
height = pix->drawable.height;
|
|
|
|
if ((pix->usage_hint == 0) &&
|
|
|
|
if ((pix->usage_hint == 0) &&
|
|
|
|
(pix->drawable.depth >= g_rdpScreen.depth) &&
|
|
|
|
(pix->drawable.depth >= g_rdpScreen.depth) &&
|
|
|
|
(width > 1) && (height > 1) && (priv->kind_width > 0))
|
|
|
|
(width > 0) && (height > 0) && (priv->kind_width > 0) &&
|
|
|
|
|
|
|
|
(priv->is_scratch == 0))
|
|
|
|
{
|
|
|
|
{
|
|
|
|
LLOGLN(10, ("%d %d", priv->kind_width, pix->drawable.width));
|
|
|
|
LLOGLN(10, ("%d %d", priv->kind_width, pix->drawable.width));
|
|
|
|
priv->rdpindex = rdpup_add_os_bitmap(pix, priv);
|
|
|
|
priv->rdpindex = rdpup_add_os_bitmap(pix, priv);
|
|
|
@ -1018,6 +1023,7 @@ void
|
|
|
|
rdpCopyWindow(WindowPtr pWin, DDXPointRec ptOldOrg, RegionPtr pOldRegion)
|
|
|
|
rdpCopyWindow(WindowPtr pWin, DDXPointRec ptOldOrg, RegionPtr pOldRegion)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
RegionRec reg;
|
|
|
|
RegionRec reg;
|
|
|
|
|
|
|
|
RegionRec reg1;
|
|
|
|
RegionRec clip;
|
|
|
|
RegionRec clip;
|
|
|
|
int dx;
|
|
|
|
int dx;
|
|
|
|
int dy;
|
|
|
|
int dy;
|
|
|
@ -1032,8 +1038,6 @@ rdpCopyWindow(WindowPtr pWin, DDXPointRec ptOldOrg, RegionPtr pOldRegion)
|
|
|
|
LLOGLN(10, ("in rdpCopyWindow"));
|
|
|
|
LLOGLN(10, ("in rdpCopyWindow"));
|
|
|
|
RegionInit(®, NullBox, 0);
|
|
|
|
RegionInit(®, NullBox, 0);
|
|
|
|
RegionCopy(®, pOldRegion);
|
|
|
|
RegionCopy(®, pOldRegion);
|
|
|
|
g_pScreen->CopyWindow = g_rdpScreen.CopyWindow;
|
|
|
|
|
|
|
|
g_pScreen->CopyWindow(pWin, ptOldOrg, pOldRegion);
|
|
|
|
|
|
|
|
RegionInit(&clip, NullBox, 0);
|
|
|
|
RegionInit(&clip, NullBox, 0);
|
|
|
|
RegionCopy(&clip, &pWin->borderClip);
|
|
|
|
RegionCopy(&clip, &pWin->borderClip);
|
|
|
|
dx = pWin->drawable.x - ptOldOrg.x;
|
|
|
|
dx = pWin->drawable.x - ptOldOrg.x;
|
|
|
@ -1041,11 +1045,8 @@ rdpCopyWindow(WindowPtr pWin, DDXPointRec ptOldOrg, RegionPtr pOldRegion)
|
|
|
|
|
|
|
|
|
|
|
|
if (g_do_dirty_ons)
|
|
|
|
if (g_do_dirty_ons)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
LLOGLN(0, ("rdpCopyWindow: gettig dirty TODO"));
|
|
|
|
rdpup_check_dirty_screen(&g_screenPriv);
|
|
|
|
//draw_item_add_srcblt_region
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
rdpup_begin_update();
|
|
|
|
rdpup_begin_update();
|
|
|
|
num_clip_rects = REGION_NUM_RECTS(&clip);
|
|
|
|
num_clip_rects = REGION_NUM_RECTS(&clip);
|
|
|
|
num_reg_rects = REGION_NUM_RECTS(®);
|
|
|
|
num_reg_rects = REGION_NUM_RECTS(®);
|
|
|
@ -1109,10 +1110,11 @@ rdpCopyWindow(WindowPtr pWin, DDXPointRec ptOldOrg, RegionPtr pOldRegion)
|
|
|
|
|
|
|
|
|
|
|
|
rdpup_reset_clip();
|
|
|
|
rdpup_reset_clip();
|
|
|
|
rdpup_end_update();
|
|
|
|
rdpup_end_update();
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
RegionUninit(®);
|
|
|
|
RegionUninit(®);
|
|
|
|
RegionUninit(&clip);
|
|
|
|
RegionUninit(&clip);
|
|
|
|
|
|
|
|
g_pScreen->CopyWindow = g_rdpScreen.CopyWindow;
|
|
|
|
|
|
|
|
g_pScreen->CopyWindow(pWin, ptOldOrg, pOldRegion);
|
|
|
|
g_pScreen->CopyWindow = rdpCopyWindow;
|
|
|
|
g_pScreen->CopyWindow = rdpCopyWindow;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -1351,7 +1353,7 @@ rdpComposite(CARD8 op, PicturePtr pSrc, PicturePtr pMask, PicturePtr pDst,
|
|
|
|
|
|
|
|
|
|
|
|
if (g_do_dirty_ons)
|
|
|
|
if (g_do_dirty_ons)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
LLOGLN(0, ("rdpComposite: gettig dirty"));
|
|
|
|
LLOGLN(10, ("rdpComposite: gettig 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;
|
|
|
|