Repository: incubator-guacamole-server Updated Branches: refs/heads/master 69caa9936 -> 008ba4659
GUACAMOLE-282: Correct common surface transfer functions to copy/ignore alpha channel as required. Project: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-server/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-server/commit/691a3ab8 Tree: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-server/tree/691a3ab8 Diff: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-server/diff/691a3ab8 Branch: refs/heads/master Commit: 691a3ab840038c703fa7123224b8face369cf7d1 Parents: 69caa99 Author: Michael Jumper <[email protected]> Authored: Mon Apr 24 11:57:12 2017 -0700 Committer: Michael Jumper <[email protected]> Committed: Mon Apr 24 11:57:12 2017 -0700 ---------------------------------------------------------------------- src/common/surface.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-guacamole-server/blob/691a3ab8/src/common/surface.c ---------------------------------------------------------------------- diff --git a/src/common/surface.c b/src/common/surface.c index 712a1e5..8c690b7 100644 --- a/src/common/surface.c +++ b/src/common/surface.c @@ -724,51 +724,51 @@ static int __guac_common_surface_transfer_int(guac_transfer_function op, uint32_ break; case GUAC_TRANSFER_BINARY_NSRC: - *dst = ~(*src); + *dst = *src ^ 0x00FFFFFF; break; case GUAC_TRANSFER_BINARY_NDEST: - *dst = ~(*dst); + *dst = *dst ^ 0x00FFFFFF; break; case GUAC_TRANSFER_BINARY_AND: - *dst = (*dst) & (*src); + *dst = ((*dst) & (0xFF000000 | *src)); break; case GUAC_TRANSFER_BINARY_NAND: - *dst = ~((*dst) & (*src)); + *dst = ((*dst) & (0xFF000000 | *src)) ^ 0x00FFFFFF; break; case GUAC_TRANSFER_BINARY_OR: - *dst = (*dst) | (*src); + *dst = ((*dst) | (0x00FFFFFF & *src)); break; case GUAC_TRANSFER_BINARY_NOR: - *dst = ~((*dst) | (*src)); + *dst = ((*dst) | (0x00FFFFFF & *src)) ^ 0x00FFFFFF; break; case GUAC_TRANSFER_BINARY_XOR: - *dst = (*dst) ^ (*src); + *dst = ((*dst) ^ (0x00FFFFFF & *src)); break; case GUAC_TRANSFER_BINARY_XNOR: - *dst = ~((*dst) ^ (*src)); + *dst = ((*dst) ^ (0x00FFFFFF & *src)) ^ 0x00FFFFFF; break; case GUAC_TRANSFER_BINARY_NSRC_AND: - *dst = (*dst) & ~(*src); + *dst = ((*dst) & (0xFF000000 | (*src ^ 0x00FFFFFF))); break; case GUAC_TRANSFER_BINARY_NSRC_NAND: - *dst = ~((*dst) & ~(*src)); + *dst = ((*dst) & (0xFF000000 | (*src ^ 0x00FFFFFF))) ^ 0x00FFFFFF; break; case GUAC_TRANSFER_BINARY_NSRC_OR: - *dst = (*dst) | ~(*src); + *dst = ((*dst) | (0x00FFFFFF & (*src ^ 0x00FFFFFF))); break; case GUAC_TRANSFER_BINARY_NSRC_NOR: - *dst = ~((*dst) | ~(*src)); + *dst = ((*dst) | (0x00FFFFFF & (*src ^ 0x00FFFFFF))) ^ 0x00FFFFFF; break; }
