aboutsummaryrefslogtreecommitdiff
path: root/xorg-server/hw/xfree86/xaa/xaaNonTEGlyph.c
diff options
context:
space:
mode:
Diffstat (limited to 'xorg-server/hw/xfree86/xaa/xaaNonTEGlyph.c')
-rw-r--r--xorg-server/hw/xfree86/xaa/xaaNonTEGlyph.c192
1 files changed, 0 insertions, 192 deletions
diff --git a/xorg-server/hw/xfree86/xaa/xaaNonTEGlyph.c b/xorg-server/hw/xfree86/xaa/xaaNonTEGlyph.c
deleted file mode 100644
index bfe7f9a09..000000000
--- a/xorg-server/hw/xfree86/xaa/xaaNonTEGlyph.c
+++ /dev/null
@@ -1,192 +0,0 @@
-
-#ifdef HAVE_XORG_CONFIG_H
-#include <xorg-config.h>
-#endif
-
-#include "xaa.h"
-#include "xaalocal.h"
-#include "xaacexp.h"
-#include "xf86.h"
-
-/* Not used anymore because the algorithm isn't correct. It doesn't
- handle overlapping characters properly */
-
-#ifdef TRIPLE_BITS
-#define NonTEGlyphFunc EXPNAME(XAANonTEGlyphScanlineFunc3)
-#else
-#define NonTEGlyphFunc EXPNAME(XAANonTEGlyphScanlineFunc)
-#endif
-
-/********************************************************************
-
- Here we have NonTEGlyphRenders for a bunch of different color
- expansion types. The driver may provide its own renderer, but
- this is the default one which renders using lower-level primitives
- exported by the chipset driver.
-
-********************************************************************/
-
-/* Since the dimensions of the text string and the backing rectangle
- do not always coincide, it is possible that wBack or wText
- may be 0! The NonTEGlyphRender must always check for this. */
-
-/* This gets built for MSBFIRST or LSBFIRST with FIXEDBASE or not,
- with TRIPLE_BITS or not. A total of 8 versions */
-
-/* if the backing rectangle and text are of the same dimensions
- then we can draw in one pass */
-
-void
-#ifdef TRIPLE_BITS
- EXPNAME(XAANonTEGlyphRenderer3) (
-#else
- EXPNAME(XAANonTEGlyphRenderer) (
-#endif
- ScrnInfoPtr pScrn,
- int xText, int wText,
- int y, int h, int skipleft, int startline,
- NonTEGlyphInfo * glyphp,
- int fg, int rop, unsigned int planemask) {
- XAAInfoRecPtr infoRec = GET_XAAINFORECPTR_FROM_SCRNINFOPTR(pScrn);
- CARD32 *base = (CARD32 *) infoRec->ColorExpandBase;
-
-#ifdef TRIPLE_BITS
- int dwords = ((3 * wText + 31) >> 5) * h;
-#else
- int dwords = ((wText + 31) >> 5) * h;
-#endif
-
- (*infoRec->SetupForCPUToScreenColorExpandFill) (pScrn, fg, -1, rop,
- planemask);
- (*infoRec->SubsequentCPUToScreenColorExpandFill) (pScrn, xText, y, wText, h,
- 0);
-
-#ifndef FIXEDBASE
-#ifdef TRIPLE_BITS
- if ((((3 * wText + 31) >> 5) * h) <= infoRec->ColorExpandRange)
-#else
- if ((((wText + 31) >> 5) * h) <= infoRec->ColorExpandRange)
-#endif
- while (h--)
- base = NonTEGlyphFunc(base, glyphp, startline++, wText, skipleft);
- else
-#endif
- while (h--)
- NonTEGlyphFunc(base, glyphp, startline++, wText, skipleft);
-
- if ((infoRec->CPUToScreenColorExpandFillFlags & CPU_TRANSFER_PAD_QWORD) &&
- (dwords & 1)) {
- base = (CARD32 *) infoRec->ColorExpandBase;
- base[0] = 0x00000000;
- }
-
- if (infoRec->CPUToScreenColorExpandFillFlags & SYNC_AFTER_COLOR_EXPAND)
- (*infoRec->Sync) (pScrn);
- else
- SET_SYNC_FLAG(infoRec);
-}
-
-#ifndef FIXEDBASE
-/* Scanline version of above gets built for LSBFIRST and MSBFIRST */
-
-void
-#ifdef TRIPLE_BITS
- EXPNAME(XAANonTEGlyphRendererScanline3) (
-#else
- EXPNAME(XAANonTEGlyphRendererScanline) (
-#endif
- ScrnInfoPtr pScrn,
- int xText, int wText,
- int y, int h, int skipleft,
- int startline,
- NonTEGlyphInfo * glyphp, int fg,
- int rop, unsigned int planemask) {
- XAAInfoRecPtr infoRec = GET_XAAINFORECPTR_FROM_SCRNINFOPTR(pScrn);
- int bufferNo = 0;
- CARD32 *base;
-
- (*infoRec->SetupForScanlineCPUToScreenColorExpandFill) (pScrn, fg, -1, rop,
- planemask);
- (*infoRec->SubsequentScanlineCPUToScreenColorExpandFill) (pScrn, xText, y,
- wText, h, 0);
-
- while (h--) {
- base = (CARD32 *) infoRec->ScanlineColorExpandBuffers[bufferNo];
- NonTEGlyphFunc(base, glyphp, startline++, wText, skipleft);
- (*infoRec->SubsequentColorExpandScanline) (pScrn, bufferNo++);
- if (bufferNo >= infoRec->NumScanlineColorExpandBuffers)
- bufferNo = 0;
- }
-
- SET_SYNC_FLAG(infoRec);
-}
-
-#endif
-
-/********************************************************************
-
- Generic NonTE scanline rendering code.
-
-********************************************************************/
-
-CARD32 *
-NonTEGlyphFunc(CARD32 *base,
- NonTEGlyphInfo * glyphp, int line, int TotalWidth, int skipleft)
-{
- CARD32 bits = 0;
- int shift = glyphp->width;
-
- if (skipleft) {
- if ((line >= glyphp->firstline) && (line <= glyphp->lastline))
- bits = SHIFT_R(glyphp->bitsp[line], skipleft);
- shift -= skipleft;
- }
- else if ((line >= glyphp->firstline) && (line <= glyphp->lastline))
- bits = glyphp->bitsp[line];
-
- while (TotalWidth > 32) {
- while (shift < 32) {
- glyphp++;
- if ((line >= glyphp->firstline) && (line <= glyphp->lastline))
- bits |= SHIFT_L(glyphp->bitsp[line], shift);
- shift += glyphp->width;
- }
-#ifdef TRIPLE_BITS
- WRITE_BITS3(bits);
-#else
- WRITE_BITS(bits);
-#endif
- shift &= 31;
- if (shift && (line >= glyphp->firstline) && (line <= glyphp->lastline))
- bits = SHIFT_R(glyphp->bitsp[line], glyphp->width - shift);
- else
- bits = 0;
- TotalWidth -= 32;
- }
-
- if (TotalWidth) {
- TotalWidth -= shift;
- while (TotalWidth > 0) {
- glyphp++;
- if ((line >= glyphp->firstline) && (line <= glyphp->lastline))
- bits |= SHIFT_L(glyphp->bitsp[line], shift);
- shift += glyphp->width;
- TotalWidth -= glyphp->width;
- }
-#ifdef TRIPLE_BITS
- if (shift >= 22) {
- WRITE_BITS3(bits);
- }
- else if (shift >= 11) {
- WRITE_BITS2(bits);
- }
- else {
- WRITE_BITS1(bits);
- }
-#else
- WRITE_BITS(bits);
-#endif
- }
-
- return base;
-}