diff options
author | marha <marha@users.sourceforge.net> | 2014-11-29 12:40:08 +0100 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2014-11-29 12:40:08 +0100 |
commit | a1011d63ffb5cc4f41bf0f4622ee3f1493d419d9 (patch) | |
tree | 3875aa5d80808dfe3c52035a4148384d7090fb8a /xorg-server/fb/fbtile.c | |
parent | d6d5581d5fba846c8476ad4d593da662306765d7 (diff) | |
download | vcxsrv-a1011d63ffb5cc4f41bf0f4622ee3f1493d419d9.tar.gz vcxsrv-a1011d63ffb5cc4f41bf0f4622ee3f1493d419d9.tar.bz2 vcxsrv-a1011d63ffb5cc4f41bf0f4622ee3f1493d419d9.zip |
fontconfig libX11 libxcb libxcb/xcb-proto mesa xserver xkbcomp xkeyboard-config git update 29 Nov 2014
xserver commit c52a2b1ebad56820af932dfbc871701a8b04fd9c
libxcb commit bbca7b82f803fa13fd30a2891ec06f2a213a28c2
libxcb/xcb-proto commit 691d2b97e5989d6d7006304d81bd8fa128477ca1
xkeyboard-config commit b664d7fb8aab9b0f834dd9c81d273c7809561b34
libX11 commit f3831dde6972e4da9e018c6a5f4013d8756a5e78
xkbcomp commit 1e8ee9d0aad072f04186df84752f5636340574e0
fontconfig commit b732bf057f4b3ec3bac539803005e9c42d056b2a
mesa commit 67c498086d0858a94d53ebb6921cfda847250368
Diffstat (limited to 'xorg-server/fb/fbtile.c')
-rw-r--r-- | xorg-server/fb/fbtile.c | 163 |
1 files changed, 0 insertions, 163 deletions
diff --git a/xorg-server/fb/fbtile.c b/xorg-server/fb/fbtile.c deleted file mode 100644 index 785c5f0e4..000000000 --- a/xorg-server/fb/fbtile.c +++ /dev/null @@ -1,163 +0,0 @@ -/* - * Copyright © 1998 Keith Packard - * - * Permission to use, copy, modify, distribute, and sell this software and its - * documentation for any purpose is hereby granted without fee, provided that - * the above copyright notice appear in all copies and that both that - * copyright notice and this permission notice appear in supporting - * documentation, and that the name of Keith Packard not be used in - * advertising or publicity pertaining to distribution of the software without - * specific, written prior permission. Keith Packard makes no - * representations about the suitability of this software for any purpose. It - * is provided "as is" without express or implied warranty. - * - * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, - * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO - * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR - * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, - * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER - * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR - * PERFORMANCE OF THIS SOFTWARE. - */ - -#ifdef HAVE_DIX_CONFIG_H -#include <dix-config.h> -#endif - -#include "fb.h" - -/* - * Accelerated tile fill -- tile width is a power of two not greater - * than FB_UNIT - */ - -void -fbEvenTile(FbBits * dst, - FbStride dstStride, - int dstX, - int width, - int height, - FbBits * tile, - FbStride tileStride, - int tileHeight, int alu, FbBits pm, int xRot, int yRot) -{ - FbBits *t, *tileEnd, bits; - FbBits startmask, endmask; - FbBits and, xor; - int n, nmiddle; - int tileX, tileY; - int rot; - int startbyte, endbyte; - - dst += dstX >> FB_SHIFT; - dstX &= FB_MASK; - FbMaskBitsBytes(dstX, width, FbDestInvarientRop(alu, pm), - startmask, startbyte, nmiddle, endmask, endbyte); - if (startmask) - dstStride--; - dstStride -= nmiddle; - - /* - * Compute tile start scanline and rotation parameters - */ - tileEnd = tile + tileHeight * tileStride; - modulus(-yRot, tileHeight, tileY); - t = tile + tileY * tileStride; - modulus(-xRot, FB_UNIT, tileX); - rot = tileX; - - while (height--) { - - /* - * Pick up bits for this scanline - */ - bits = READ(t); - t += tileStride; - if (t >= tileEnd) - t = tile; - bits = FbRotLeft(bits, rot); - and = fbAnd(alu, bits, pm); - xor = fbXor(alu, bits, pm); - - if (startmask) { - FbDoLeftMaskByteRRop(dst, startbyte, startmask, and, xor); - dst++; - } - n = nmiddle; - if (!and) - while (n--) - WRITE(dst++, xor); - else - while (n--) { - WRITE(dst, FbDoRRop(READ(dst), and, xor)); - dst++; - } - if (endmask) - FbDoRightMaskByteRRop(dst, endbyte, endmask, and, xor); - dst += dstStride; - } -} - -void -fbOddTile(FbBits * dst, - FbStride dstStride, - int dstX, - int width, - int height, - FbBits * tile, - FbStride tileStride, - int tileWidth, - int tileHeight, int alu, FbBits pm, int bpp, int xRot, int yRot) -{ - int tileX, tileY; - int widthTmp; - int h, w; - int x, y; - - modulus(-yRot, tileHeight, tileY); - y = 0; - while (height) { - h = tileHeight - tileY; - if (h > height) - h = height; - height -= h; - widthTmp = width; - x = dstX; - modulus(dstX - xRot, tileWidth, tileX); - while (widthTmp) { - w = tileWidth - tileX; - if (w > widthTmp) - w = widthTmp; - widthTmp -= w; - fbBlt(tile + tileY * tileStride, - tileStride, - tileX, - dst + y * dstStride, - dstStride, x, w, h, alu, pm, bpp, FALSE, FALSE); - x += w; - tileX = 0; - } - y += h; - tileY = 0; - } -} - -void -fbTile(FbBits * dst, - FbStride dstStride, - int dstX, - int width, - int height, - FbBits * tile, - FbStride tileStride, - int tileWidth, - int tileHeight, int alu, FbBits pm, int bpp, int xRot, int yRot) -{ - if (FbEvenTile(tileWidth)) - fbEvenTile(dst, dstStride, dstX, width, height, - tile, tileStride, tileHeight, alu, pm, xRot, yRot); - else - fbOddTile(dst, dstStride, dstX, width, height, - tile, tileStride, tileWidth, tileHeight, - alu, pm, bpp, xRot, yRot); -} |