In memblt when index is 255 get from offscreen.

See http://msdn.microsoft.com/en-us/library/cc241608(v=prot.10).aspx
This commit is contained in:
Nicolas Graziano 2011-10-12 02:21:35 +02:00
parent d08e82c171
commit 2f06da5dae
2 changed files with 11 additions and 2 deletions

View File

@ -617,7 +617,12 @@ void xf_gdi_memblt(rdpUpdate* update, MEMBLT_ORDER* memblt)
xfInfo* xfi = GET_XFI(update); xfInfo* xfi = GET_XFI(update);
xf_set_rop3(xfi, gdi_rop3_code(memblt->bRop)); xf_set_rop3(xfi, gdi_rop3_code(memblt->bRop));
bitmap_v2_get(xfi->cache->bitmap_v2, memblt->cacheId, memblt->cacheIndex, (void**) &extra);
if(memblt->cacheId == 255)
extra = offscreen_get(xfi->cache->offscreen, memblt->cacheIndex);
else
bitmap_v2_get(xfi->cache->bitmap_v2, memblt->cacheId, memblt->cacheIndex, (void**) &extra);
bitmap = (Pixmap) extra; bitmap = (Pixmap) extra;
if (extra == NULL) if (extra == NULL)

View File

@ -651,7 +651,11 @@ void gdi_memblt(rdpUpdate* update, MEMBLT_ORDER* memblt)
GDI_IMAGE* gdi_bmp; GDI_IMAGE* gdi_bmp;
GDI* gdi = GET_GDI(update); GDI* gdi = GET_GDI(update);
bitmap_v2_get(gdi->cache->bitmap_v2, memblt->cacheId, memblt->cacheIndex, (void**) &extra); if(memblt->cacheId == 255)
extra = offscreen_get(gdi->cache->offscreen, memblt->cacheIndex);
else
bitmap_v2_get(gdi->cache->bitmap_v2, memblt->cacheId, memblt->cacheIndex, (void**) &extra);
gdi_bmp = (GDI_IMAGE*) extra; gdi_bmp = (GDI_IMAGE*) extra;
if (extra == NULL) if (extra == NULL)