[PATCH v2] dix: delete logo hack screen saver

Alan Coopersmith alan.coopersmith at oracle.com
Wed Oct 20 18:29:33 PDT 2010


Tiago Vignatti wrote:
> Protocol doesn't mention about screen saver with logo being required and
> people are already using more intelligent ways to draw screen saver themes. So
> consider -logo as deprecated option, deleting its code.
> 
> Signed-off-by: Tiago Vignatti <tiago.vignatti at nokia.com>
> Reviewed-by: Mikhail Gusarov <dottedmag at dottedmag.net>
> ---
> since v1: 
> - fixed with alanc comments, to delete man page entries.
> 
>  dix/globals.c       |    4 -
>  dix/window.c        |  200 ---------------------------------------------------
>  doc/Xserver.man.pre |    8 --
>  include/opaque.h    |    3 -
>  include/site.h      |    3 -
>  os/utils.c          |   14 ----
>  6 files changed, 0 insertions(+), 232 deletions(-)
> 
> diff --git a/dix/globals.c b/dix/globals.c
> index b128569..0a6b170 100644
> --- a/dix/globals.c
> +++ b/dix/globals.c
> @@ -106,10 +106,6 @@ CARD32 defaultScreenSaverTime = DEFAULT_SCREEN_SAVER_TIME;
>  CARD32 defaultScreenSaverInterval = DEFAULT_SCREEN_SAVER_INTERVAL;
>  int  defaultScreenSaverBlanking = DEFAULT_SCREEN_SAVER_BLANKING;
>  int  defaultScreenSaverAllowExposures = DEFAULT_SCREEN_SAVER_EXPOSURES;
> -#ifndef NOLOGOHACK
> -int  logoScreenSaver = DEFAULT_LOGO_SCREEN_SAVER;
> -#endif
> -
>  #ifdef SCREENSAVER
>  Bool screenSaverSuspended = FALSE;
>  #endif
> diff --git a/dix/window.c b/dix/window.c
> index 4a47dd5..8ea6117 100644
> --- a/dix/window.c
> +++ b/dix/window.c
> @@ -3085,13 +3085,6 @@ SendVisibilityNotify(WindowPtr pWin)
>  }
>  
>  #define RANDOM_WIDTH 32
> -
> -#ifndef NOLOGOHACK
> -static void DrawLogo(
> -    WindowPtr pWin
> -);
> -#endif
> -
>  int
>  dixSaveScreens(ClientPtr client, int on, int mode)
>  {
> @@ -3153,18 +3146,10 @@ dixSaveScreens(ClientPtr client, int on, int mode)
>  		 * for the root window, so miPaintWindow works
>  		 */
>  		screenIsSaved = SCREEN_SAVER_OFF;
> -#ifndef NOLOGOHACK
> -		if (logoScreenSaver)
> -		    (*pWin->drawable.pScreen->ClearToBackground)(pWin, 0, 0, 0, 0, FALSE);
> -#endif
>  		(*pWin->drawable.pScreen->MoveWindow)(pWin,
>  			   (short)(-(rand() % RANDOM_WIDTH)),
>  			   (short)(-(rand() % RANDOM_WIDTH)),
>  			   pWin->nextSib, VTMove);
> -#ifndef NOLOGOHACK
> -		if (logoScreenSaver)
> -		    DrawLogo(pWin);
> -#endif
>  		screenIsSaved = SCREEN_SAVER_ON;
>  	    }
>  	    /*
> @@ -3322,10 +3307,6 @@ TileScreenSaver(ScreenPtr pScreen, int kind)
>  	(*pWin->drawable.pScreen->ChangeWindowAttributes)(pWin, CWBackPixmap);
>      }
>      MapWindow(pWin, serverClient);
> -#ifndef NOLOGOHACK
> -    if (kind == SCREEN_IS_TILED && logoScreenSaver)
> -	DrawLogo(pWin);
> -#endif
>      return TRUE;
>  }
>  
> @@ -3671,184 +3652,3 @@ WindowParentHasDeviceCursor(WindowPtr pWin,
>      }
>      return FALSE;
>  }
> -
> -#ifndef NOLOGOHACK
> -static void
> -DrawLogo(WindowPtr pWin)
> -{
> -    DrawablePtr pDraw;
> -    ScreenPtr pScreen;
> -    int x, y;
> -    unsigned int width, height, size;
> -    GC *pGC;
> -    int rc, thin, gap, d31;
> -    DDXPointRec poly[4];
> -    ChangeGCVal fore[2], back[2];
> -    xrgb rgb[2];
> -    BITS32 fmask, bmask;
> -    ColormapPtr cmap;
> -
> -    pDraw = (DrawablePtr)pWin;
> -    pScreen = pDraw->pScreen;
> -    x = -pWin->origin.x;
> -    y = -pWin->origin.y;
> -    width = pScreen->width;
> -    height = pScreen->height;
> -    pGC = GetScratchGC(pScreen->rootDepth, pScreen);
> -    if (!pGC)
> -	return;
> -
> -    if ((rand() % 100) <= 17) /* make the probability for white fairly low */
> -	fore[0].val = pScreen->whitePixel;
> -    else
> -	fore[0].val = pScreen->blackPixel;
> -    if (pWin->backgroundState == BackgroundPixel) {
> -	rc = dixLookupResourceByType((pointer *)&cmap, wColormap(pWin),
> -				     RT_COLORMAP, serverClient, DixReadAccess);
> -	if (rc == Success) {
> -	    Pixel querypixels[2];
> -
> -	    querypixels[0] = fore[0].val;
> -	    querypixels[1] = pWin->background.pixel;
> -	    QueryColors(cmap, 2, querypixels, rgb, serverClient);
> -	    if ((rgb[0].red == rgb[1].red) &&
> -		(rgb[0].green == rgb[1].green) &&
> -		(rgb[0].blue == rgb[1].blue)) {
> -		if (fore[0].val == pScreen->blackPixel)
> -		    fore[0].val = pScreen->whitePixel;
> -		else
> -		    fore[0].val = pScreen->blackPixel;
> -	    }
> -	}
> -    }
> -    fore[1].val = FillSolid;
> -    fmask = GCForeground|GCFillStyle;
> -    if (pWin->backgroundState == BackgroundPixel) {
> -	back[0].val = pWin->background.pixel;
> -	back[1].val = FillSolid;
> -	bmask = GCForeground|GCFillStyle;
> -    } else {
> -	back[0].val = 0;
> -	back[1].val = 0;
> -	ChangeGC(NullClient, pGC, GCTileStipXOrigin|GCTileStipYOrigin, back);
> -	back[0].val = FillTiled;
> -	back[1].ptr = pWin->background.pixmap;
> -	bmask = GCFillStyle|GCTile;
> -    }
> -
> -    /* should be the same as the reference function XmuDrawLogo() */
> -
> -    size = width;
> -    if (height < width)
> -	 size = height;
> -    size = RANDOM_WIDTH + rand() % (size - RANDOM_WIDTH);
> -    size &= ~1;
> -    x += rand() % (width - size);
> -    y += rand() % (height - size);
> -
> -/*
> - * Draw what will be the thin strokes.
> - *
> - *           -----
> - *          /    /
> - *         /    /
> - *        /    /
> - *       /    /
> - *      /____/
> - *           d
> - *
> - * Point d is 9/44 (~1/5) of the way across.
> - */
> -
> -    thin = (size / 11);
> -    if (thin < 1) thin = 1;
> -    gap = (thin+3) / 4;
> -    d31 = thin + thin + gap;
> -    poly[0].x = x + size;	       poly[0].y = y;
> -    poly[1].x = x + size-d31;	       poly[1].y = y;
> -    poly[2].x = x + 0;		       poly[2].y = y + size;
> -    poly[3].x = x + d31;	       poly[3].y = y + size;
> -    ChangeGC(NullClient, pGC, fmask, fore);
> -    ValidateGC(pDraw, pGC);
> -    (*pGC->ops->FillPolygon)(pDraw, pGC, Convex, CoordModeOrigin, 4, poly);
> -
> -/*
> - * Erase area not needed for lower thin stroke.
> - *
> - *           ------
> - *          /	  /
> - *         /  __ /
> - *        /  /	/
> - *       /  /  /
> - *      /__/__/
> - */
> -
> -    poly[0].x = x + d31/2;			 poly[0].y = y + size;
> -    poly[1].x = x + size / 2;			 poly[1].y = y + size/2;
> -    poly[2].x = x + (size/2)+(d31-(d31/2));	 poly[2].y = y + size/2;
> -    poly[3].x = x + d31;			 poly[3].y = y + size;
> -    ChangeGC(NullClient, pGC, bmask, back);
> -    ValidateGC(pDraw, pGC);
> -    (*pGC->ops->FillPolygon)(pDraw, pGC, Convex, CoordModeOrigin, 4, poly);
> -
> -/*
> - * Erase area not needed for upper thin stroke.
> - *
> - *	     ------
> - *	    /  /  /
> - *	   /--/	 /
> - *	  /	/
> - *	 /     /
> - *	/_____/
> - */
> -
> -    poly[0].x = x + size - d31/2;		 poly[0].y = y;
> -    poly[1].x = x + size / 2;			 poly[1].y = y + size/2;
> -    poly[2].x = x + (size/2)-(d31-(d31/2));	 poly[2].y = y + size/2;
> -    poly[3].x = x + size - d31;			 poly[3].y = y;
> -    ValidateGC(pDraw, pGC);
> -    (*pGC->ops->FillPolygon)(pDraw, pGC, Convex, CoordModeOrigin, 4, poly);
> -
> -/*
> - * Draw thick stroke.
> - * Point b is 1/4 of the way across.
> - *
> - *      b
> - * -----
> - * \	\
> - *  \	 \
> - *   \	  \
> - *    \	   \
> - *     \____\
> - */
> -
> -    poly[0].x = x;		       poly[0].y = y;
> -    poly[1].x = x + size/4;	       poly[1].y = y;
> -    poly[2].x = x + size;	       poly[2].y = y + size;
> -    poly[3].x = x + size - size/4;     poly[3].y = y + size;
> -    ChangeGC(NullClient, pGC, fmask, fore);
> -    ValidateGC(pDraw, pGC);
> -    (*pGC->ops->FillPolygon)(pDraw, pGC, Convex, CoordModeOrigin, 4, poly);
> -
> -/*
> - * Erase to create gap.
> - *
> - *	    /
> - *	   /
> - *	  /
> - *	 /
> - *	/
> - */
> -
> -    poly[0].x = x + size- thin;	      poly[0].y = y;
> -    poly[1].x = x + size-( thin+gap);  poly[1].y = y;
> -    poly[2].x = x + thin;	      poly[2].y = y + size;
> -    poly[3].x = x + thin + gap;	      poly[3].y = y + size;
> -    ChangeGC(NullClient, pGC, bmask, back);
> -    ValidateGC(pDraw, pGC);
> -    (*pGC->ops->FillPolygon)(pDraw, pGC, Convex, CoordModeOrigin, 4, poly);
> -
> -    FreeScratchGC(pGC);
> -}
> -
> -#endif
> diff --git a/doc/Xserver.man.pre b/doc/Xserver.man.pre
> index ce3b3a1..240f05c 100644
> --- a/doc/Xserver.man.pre
> +++ b/doc/Xserver.man.pre
> @@ -285,14 +285,6 @@ sets the stack space limit of the server to the specified number of kilobytes.
>  A value of zero makes the stack size as large as possible.  The default value
>  of \-1 leaves the stack space limit unchanged.
>  .TP 8
> -.B \-logo
> -turns on the X Window System logo display in the screen-saver.
> -There is currently no way to change this from a client.
> -.TP 8
> -.B nologo
> -turns off the X Window System logo display in the screen-saver.
> -There is currently no way to change this from a client.
> -.TP 8
>  .B \-render 
>  .BR default | mono | gray | color
>  sets the color allocation policy that will be used by the render extension.
> diff --git a/include/opaque.h b/include/opaque.h
> index f8c0000..3d1ffc1 100644
> --- a/include/opaque.h
> +++ b/include/opaque.h
> @@ -56,9 +56,6 @@ extern _X_EXPORT Bool disableBackingStore;
>  extern _X_EXPORT Bool enableBackingStore;
>  extern _X_EXPORT Bool PartialNetwork;
>  extern _X_EXPORT Bool RunFromUpstart;
> -#ifndef NOLOGOHACK
> -extern _X_EXPORT int logoScreenSaver;
> -#endif
>  #ifdef RLIMIT_DATA
>  extern _X_EXPORT int limitDataSpace;
>  #endif
> diff --git a/include/site.h b/include/site.h
> index b134212..9c2836f 100644
> --- a/include/site.h
> +++ b/include/site.h
> @@ -112,9 +112,6 @@ SOFTWARE.
>  #define DEFAULT_SCREEN_SAVER_INTERVAL (10 * (60 * 1000))
>  #define DEFAULT_SCREEN_SAVER_BLANKING PreferBlanking
>  #define DEFAULT_SCREEN_SAVER_EXPOSURES AllowExposures
> -#ifndef NOLOGOHACK
> -#define DEFAULT_LOGO_SCREEN_SAVER 1
> -#endif
>  #ifndef DEFAULT_ACCESS_CONTROL
>  #define DEFAULT_ACCESS_CONTROL TRUE
>  #endif
> diff --git a/os/utils.c b/os/utils.c
> index f176af4..ed3f9f9 100644
> --- a/os/utils.c
> +++ b/os/utils.c
> @@ -496,10 +496,6 @@ void UseMsg(void)
>      ErrorF("-ls int                limit stack space to N Kb\n");
>  #endif
>      ErrorF("-nolock                disable the locking mechanism\n");
> -#ifndef NOLOGOHACK
> -    ErrorF("-logo                  enable logo in screen saver\n");
> -    ErrorF("nologo                 disable logo in screen saver\n");
> -#endif
>      ErrorF("-nolisten string       don't listen on protocol\n");
>      ErrorF("-noreset               don't reset after last client exists\n");
>      ErrorF("-reset                 reset after last client exists\n");
> @@ -755,16 +751,6 @@ ProcessCommandLine(int argc, char *argv[])
>  #endif
>  	    nolock = TRUE;
>  	}
> -#ifndef NOLOGOHACK
> -	else if ( strcmp( argv[i], "-logo") == 0)
> -	{
> -	    logoScreenSaver = 1;
> -	}
> -	else if ( strcmp( argv[i], "nologo") == 0)
> -	{
> -	    logoScreenSaver = 0;
> -	}
> -#endif
>  	else if ( strcmp( argv[i], "-nolisten") == 0)
>  	{
>              if(++i < argc) {

Reviewed-by: Alan Coopersmith <alan.coopersmith at oracle.com>

-- 
	-Alan Coopersmith-        alan.coopersmith at oracle.com
	 Oracle Solaris Platform Engineering: X Window System



More information about the xorg-devel mailing list