diff options
author | marha <marha@users.sourceforge.net> | 2014-07-19 15:12:53 +0200 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2014-07-19 15:12:53 +0200 |
commit | 61c36feba19d918885022042ea62d068a698c83d (patch) | |
tree | fd351953eb2193fe548e7d0e2dca06b34b7c4f4d /xorg-server/glamor/glamor_transfer.c | |
parent | 3865d60ef607cbb00c819e905e40d3628b8eca29 (diff) | |
parent | d0c30e7945e76ac119f6d867e27137c8a76f7e15 (diff) | |
download | vcxsrv-61c36feba19d918885022042ea62d068a698c83d.tar.gz vcxsrv-61c36feba19d918885022042ea62d068a698c83d.tar.bz2 vcxsrv-61c36feba19d918885022042ea62d068a698c83d.zip |
Merge remote-tracking branch 'origin/released'
Conflicts:
mesalib/src/glsl/ir.cpp
xorg-server/config/config.c
xorg-server/include/callback.h
xorg-server/include/colormap.h
xorg-server/include/cursor.h
xorg-server/include/dix.h
xorg-server/include/dixfont.h
xorg-server/include/dixgrabs.h
xorg-server/include/gc.h
xorg-server/include/gcstruct.h
xorg-server/include/input.h
xorg-server/include/os.h
xorg-server/include/pixmap.h
xorg-server/include/property.h
xorg-server/include/resource.h
xorg-server/include/scrnintstr.h
xorg-server/include/window.h
xorg-server/include/xkbsrv.h
xorg-server/mi/mi.h
Diffstat (limited to 'xorg-server/glamor/glamor_transfer.c')
-rw-r--r-- | xorg-server/glamor/glamor_transfer.c | 48 |
1 files changed, 10 insertions, 38 deletions
diff --git a/xorg-server/glamor/glamor_transfer.c b/xorg-server/glamor/glamor_transfer.c index ad875c962..891415565 100644 --- a/xorg-server/glamor/glamor_transfer.c +++ b/xorg-server/glamor/glamor_transfer.c @@ -72,9 +72,6 @@ glamor_upload_boxes(PixmapPtr pixmap, BoxPtr in_boxes, int in_nbox, glamor_make_current(glamor_priv); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); - glPixelStorei(GL_UNPACK_ALIGNMENT, 4); glPixelStorei(GL_UNPACK_ROW_LENGTH, byte_stride / bytes_per_pixel); @@ -90,27 +87,14 @@ glamor_upload_boxes(PixmapPtr pixmap, BoxPtr in_boxes, int in_nbox, while (nbox--) { /* compute drawable coordinates */ - int x1 = boxes->x1 + dx_dst; - int x2 = boxes->x2 + dx_dst; - int y1 = boxes->y1 + dy_dst; - int y2 = boxes->y2 + dy_dst; + int x1 = MAX(boxes->x1 + dx_dst, box->x1); + int x2 = MIN(boxes->x2 + dx_dst, box->x2); + int y1 = MAX(boxes->y1 + dy_dst, box->y1); + int y2 = MIN(boxes->y2 + dy_dst, box->y2); boxes++; - if (x1 < box->x1) - x1 = box->x1; - if (box->x2 < x2) - x2 = box->x2; - - if (x2 <= x1) - continue; - - if (y1 < box->y1) - y1 = box->y1; - if (box->y2 < y2) - y2 = box->y2; - - if (y2 <= y1) + if (x2 <= x1 || y2 <= y1) continue; glPixelStorei(GL_UNPACK_SKIP_ROWS, y1 - dy_dst + dy_src); @@ -195,26 +179,14 @@ glamor_download_boxes(PixmapPtr pixmap, BoxPtr in_boxes, int in_nbox, while (nbox--) { /* compute drawable coordinates */ - int x1 = boxes->x1 + dx_src; - int x2 = boxes->x2 + dx_src; - int y1 = boxes->y1 + dy_src; - int y2 = boxes->y2 + dy_src; + int x1 = MAX(boxes->x1 + dx_src, box->x1); + int x2 = MIN(boxes->x2 + dx_src, box->x2); + int y1 = MAX(boxes->y1 + dy_src, box->y1); + int y2 = MIN(boxes->y2 + dy_src, box->y2); boxes++; - if (x1 < box->x1) - x1 = box->x1; - if (box->x2 < x2) - x2 = box->x2; - - if (y1 < box->y1) - y1 = box->y1; - if (box->y2 < y2) - y2 = box->y2; - - if (x2 <= x1) - continue; - if (y2 <= y1) + if (x2 <= x1 || y2 <= y1) continue; glPixelStorei(GL_PACK_SKIP_PIXELS, x1 - dx_src + dx_dst); |