diff options
author | marha <marha@users.sourceforge.net> | 2012-03-05 09:59:38 +0100 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2012-03-05 09:59:38 +0100 |
commit | ffe218bbb0ffa6d2a7f7cbf6b1f81797e667183a (patch) | |
tree | 233b818e67de2073647e46e91ac688c6b43d5917 /mesalib/src/gallium/auxiliary/util/u_blit.c | |
parent | 15a500d3edb03668b43cc6898fafcda024d0f006 (diff) | |
download | vcxsrv-ffe218bbb0ffa6d2a7f7cbf6b1f81797e667183a.tar.gz vcxsrv-ffe218bbb0ffa6d2a7f7cbf6b1f81797e667183a.tar.bz2 vcxsrv-ffe218bbb0ffa6d2a7f7cbf6b1f81797e667183a.zip |
libfontenc xserver pixman mesa git update 5 Mar 2012
font-util-1.3.0
xclock-1.0.6
libXfont-1.4.5
inputproto-2.2
Diffstat (limited to 'mesalib/src/gallium/auxiliary/util/u_blit.c')
-rw-r--r-- | mesalib/src/gallium/auxiliary/util/u_blit.c | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/mesalib/src/gallium/auxiliary/util/u_blit.c b/mesalib/src/gallium/auxiliary/util/u_blit.c index a10fd17cb..127973388 100644 --- a/mesalib/src/gallium/auxiliary/util/u_blit.c +++ b/mesalib/src/gallium/auxiliary/util/u_blit.c @@ -321,6 +321,26 @@ regions_overlap(int srcX0, int srcY0, /** + * Can we blit from src format to dest format with a simple copy? + */ +static boolean +formats_compatible(enum pipe_format src_format, + enum pipe_format dst_format) +{ + if (src_format == dst_format) { + return TRUE; + } + else { + const struct util_format_description *src_desc = + util_format_description(src_format); + const struct util_format_description *dst_desc = + util_format_description(dst_format); + return util_is_format_compatible(src_desc, dst_desc); + } +} + + +/** * Copy pixel block from src surface to dst surface. * Overlapping regions are acceptable. * Flipping and stretching are supported. @@ -377,7 +397,7 @@ util_blit_pixels_writemask(struct blit_state *ctx, * no overlapping. * Filter mode should not matter since there's no stretching. */ - if (dst_format == src_format && + if (formats_compatible(src_format, dst_format) && srcX0 < srcX1 && dstX0 < dstX1 && srcY0 < srcY1 && |