[PATCH xserver 3/8] xf86cmap: Remove overscan machinery

Adam Jackson ajax at redhat.com
Wed Jan 31 15:53:59 UTC 2018


Only drivers using this are trident and xgixp.

Signed-off-by: Adam Jackson <ajax at redhat.com>
---
 hw/xfree86/common/xf86cmap.c | 169 -------------------------------------------
 1 file changed, 169 deletions(-)

diff --git a/hw/xfree86/common/xf86cmap.c b/hw/xfree86/common/xf86cmap.c
index 7c9e063ba..93c38a692 100644
--- a/hw/xfree86/common/xf86cmap.c
+++ b/hw/xfree86/common/xf86cmap.c
@@ -97,7 +97,6 @@ typedef struct {
 typedef struct {
     LOCO *colors;
     Bool recalculate;
-    int overscan;
 } CMapColormapRec, *CMapColormapPtr;
 
 static DevPrivateKeyRec CMapScreenKeyRec;
@@ -137,7 +136,6 @@ static int CMapChangeGamma(ScrnInfoPtr, Gamma);
 static void ComputeGamma(ScrnInfoPtr, CMapScreenPtr);
 static Bool CMapAllocateColormapPrivate(ColormapPtr);
 static void CMapRefreshColors(ColormapPtr, int, int *);
-static void CMapSetOverscan(ColormapPtr, int, int *);
 static void CMapReinstallMap(ColormapPtr);
 static void CMapUnwrapScreen(ScreenPtr pScreen);
 
@@ -298,7 +296,6 @@ CMapAllocateColormapPrivate(ColormapPtr pmap)
 
     pColPriv->colors = colors;
     pColPriv->recalculate = TRUE;
-    pColPriv->overscan = -1;
 
     /* add map to list */
     pLink = malloc(sizeof(CMapLink));
@@ -539,12 +536,6 @@ CMapReinstallMap(ColormapPtr pmap)
         CMapRefreshColors(pmap, n, indices);
     else {
         pScrn->LoadPalette(pScrn, n, indices, cmapPriv->colors, pmap->pVisual);
-        if (pScrn->SetOverscan) {
-#ifdef DEBUGOVERSCAN
-            ErrorF("SetOverscan() called from CMapReinstallMap\n");
-#endif
-            pScrn->SetOverscan(pScrn, cmapPriv->overscan);
-        }
     }
 
     cmapPriv->recalculate = FALSE;
@@ -658,166 +649,6 @@ CMapRefreshColors(ColormapPtr pmap, int defs, int *indices)
 
     if (LOAD_PALETTE(pmap))
         (*pScrn->LoadPalette) (pScrn, defs, indices, colors, pmap->pVisual);
-
-    if (pScrn->SetOverscan)
-        CMapSetOverscan(pmap, defs, indices);
-
-}
-
-static Bool
-CMapCompareColors(LOCO * color1, LOCO * color2)
-{
-    /* return TRUE if the color1 is "closer" to black than color2 */
-#ifdef DEBUGOVERSCAN
-    ErrorF("#%02x%02x%02x vs #%02x%02x%02x (%d vs %d)\n",
-           color1->red, color1->green, color1->blue,
-           color2->red, color2->green, color2->blue,
-           color1->red + color1->green + color1->blue,
-           color2->red + color2->green + color2->blue);
-#endif
-    return (color1->red + color1->green + color1->blue <
-            color2->red + color2->green + color2->blue);
-}
-
-static void
-CMapSetOverscan(ColormapPtr pmap, int defs, int *indices)
-{
-    CMapScreenPtr pScreenPriv = getCMapScreenPtr(pmap->pScreen);
-    CMapColormapPtr pColPriv = getCMapColormapPtr(pmap);
-    ScrnInfoPtr pScrn = xf86ScreenToScrn(pmap->pScreen);
-    VisualPtr pVisual = pmap->pVisual;
-    int i;
-    LOCO *colors;
-    int index;
-    Bool newOverscan = FALSE;
-    int overscan, tmpOverscan;
-
-    colors = pColPriv->colors;
-    overscan = pColPriv->overscan;
-
-    /*
-     * Search for a new overscan index in the following cases:
-     *
-     *   - The index hasn't yet been initialised.  In this case search
-     *     for an index that is black or a close match to black.
-     *
-     *   - The colour of the old index is changed.  In this case search
-     *     all indices for a black or close match to black.
-     *
-     *   - The colour of the old index wasn't black.  In this case only
-     *     search the indices that were changed for a better match to black.
-     */
-
-    switch (pVisual->class) {
-    case StaticGray:
-    case TrueColor:
-        /* Should only come here once.  Initialise the overscan index to 0 */
-        overscan = 0;
-        newOverscan = TRUE;
-        break;
-    case StaticColor:
-        /*
-         * Only come here once, but search for the overscan in the same way
-         * as for the other cases.
-         */
-    case DirectColor:
-    case PseudoColor:
-    case GrayScale:
-        if (overscan < 0 || overscan > pScreenPriv->maxColors - 1) {
-            /* Uninitialised */
-            newOverscan = TRUE;
-        }
-        else {
-            /* Check if the overscan was changed */
-            for (i = 0; i < defs; i++) {
-                index = indices[i];
-                if (index == overscan) {
-                    newOverscan = TRUE;
-                    break;
-                }
-            }
-        }
-        if (newOverscan) {
-            /* The overscan is either uninitialised or it has been changed */
-
-            if (overscan < 0 || overscan > pScreenPriv->maxColors - 1)
-                tmpOverscan = pScreenPriv->maxColors - 1;
-            else
-                tmpOverscan = overscan;
-
-            /* search all entries for a close match to black */
-            for (i = pScreenPriv->maxColors - 1; i >= 0; i--) {
-                if (colors[i].red == 0 && colors[i].green == 0 &&
-                    colors[i].blue == 0) {
-                    overscan = i;
-#ifdef DEBUGOVERSCAN
-                    ErrorF("Black found at index 0x%02x\n", i);
-#endif
-                    break;
-                }
-                else {
-#ifdef DEBUGOVERSCAN
-                    ErrorF("0x%02x: ", i);
-#endif
-                    if (CMapCompareColors(&colors[i], &colors[tmpOverscan])) {
-                        tmpOverscan = i;
-#ifdef DEBUGOVERSCAN
-                        ErrorF("possible \"Black\" at index 0x%02x\n", i);
-#endif
-                    }
-                }
-            }
-            if (i < 0)
-                overscan = tmpOverscan;
-        }
-        else {
-            /* Check of the old overscan wasn't black */
-            if (colors[overscan].red != 0 || colors[overscan].green != 0 ||
-                colors[overscan].blue != 0) {
-                int oldOverscan = tmpOverscan = overscan;
-
-                /* See of there is now a better match */
-                for (i = 0; i < defs; i++) {
-                    index = indices[i];
-                    if (colors[index].red == 0 && colors[index].green == 0 &&
-                        colors[index].blue == 0) {
-                        overscan = index;
-#ifdef DEBUGOVERSCAN
-                        ErrorF("Black found at index 0x%02x\n", index);
-#endif
-                        break;
-                    }
-                    else {
-#ifdef DEBUGOVERSCAN
-                        ErrorF("0x%02x: ", index);
-#endif
-                        if (CMapCompareColors(&colors[index],
-                                              &colors[tmpOverscan])) {
-                            tmpOverscan = index;
-#ifdef DEBUGOVERSCAN
-                            ErrorF("possible \"Black\" at index 0x%02x\n",
-                                   index);
-#endif
-                        }
-                    }
-                }
-                if (i == defs)
-                    overscan = tmpOverscan;
-                if (overscan != oldOverscan)
-                    newOverscan = TRUE;
-            }
-        }
-        break;
-    }
-    if (newOverscan) {
-        pColPriv->overscan = overscan;
-        if (LOAD_PALETTE(pmap)) {
-#ifdef DEBUGOVERSCAN
-            ErrorF("SetOverscan() called from CmapSetOverscan\n");
-#endif
-            pScrn->SetOverscan(pScrn, overscan);
-        }
-    }
 }
 
 static void
-- 
2.14.3



More information about the xorg-devel mailing list