winex11: Check format in XRender_GetSrcAreaStretch instead of depth.
This commit is contained in:
parent
00bbab491b
commit
f8786eacb7
|
@ -2103,6 +2103,7 @@ BOOL X11DRV_XRender_GetSrcAreaStretch(X11DRV_PDEVICE *physDevSrc, X11DRV_PDEVICE
|
||||||
int height = visRectDst->bottom - visRectDst->top;
|
int height = visRectDst->bottom - visRectDst->top;
|
||||||
int x_src = physDevSrc->dc_rect.left + visRectSrc->left;
|
int x_src = physDevSrc->dc_rect.left + visRectSrc->left;
|
||||||
int y_src = physDevSrc->dc_rect.top + visRectSrc->top;
|
int y_src = physDevSrc->dc_rect.top + visRectSrc->top;
|
||||||
|
struct xrender_info *src_info = get_xrender_info(physDevSrc);
|
||||||
const WineXRenderFormat *dst_format = get_xrender_format_from_color_shifts(physDevDst->depth, physDevDst->color_shifts);
|
const WineXRenderFormat *dst_format = get_xrender_format_from_color_shifts(physDevDst->depth, physDevDst->color_shifts);
|
||||||
Picture src_pict=0, dst_pict=0, mask_pict=0;
|
Picture src_pict=0, dst_pict=0, mask_pict=0;
|
||||||
|
|
||||||
|
@ -2130,8 +2131,8 @@ BOOL X11DRV_XRender_GetSrcAreaStretch(X11DRV_PDEVICE *physDevSrc, X11DRV_PDEVICE
|
||||||
if((physDevDst->depth == 1) && (physDevSrc->depth > 1))
|
if((physDevDst->depth == 1) && (physDevSrc->depth > 1))
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
/* Just use traditional X copy when the depths match and we don't need stretching */
|
/* Just use traditional X copy when the formats match and we don't need stretching */
|
||||||
if((physDevSrc->depth == physDevDst->depth) && !stretch)
|
if((src_info->format->format == dst_format->format) && !stretch)
|
||||||
{
|
{
|
||||||
TRACE("Source and destination depth match and no stretching needed falling back to XCopyArea\n");
|
TRACE("Source and destination depth match and no stretching needed falling back to XCopyArea\n");
|
||||||
wine_tsx11_lock();
|
wine_tsx11_lock();
|
||||||
|
|
Loading…
Reference in New Issue