ftp://netsw.org/x11/tools/desktop/xscreensaver-4.07.tar.gz
[xscreensaver] / utils / visual.c
index 57b73151c53f6a4cd7a7c3611c08f389520bb573..2e3b9a9619007a5605cc23b3649560b75b4dbfd2 100644 (file)
@@ -1,4 +1,4 @@
-/* xscreensaver, Copyright (c) 1993, 1994, 1995, 1996, 1997, 1998, 1999
+/* xscreensaver, Copyright (c) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000
  *  by Jamie Zawinski <jwz@jwz.org>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
@@ -19,6 +19,7 @@
 #include "resources.h"  /* for get_string_resource() */
 #include "visual.h"
 
+#include <string.h>
 #include <X11/Xutil.h>
 
 extern char *progname;
@@ -36,8 +37,6 @@ static Visual *pick_best_visual (Screen *, Bool, Bool);
 static Visual *pick_mono_visual (Screen *);
 static Visual *pick_best_visual_of_class (Screen *, int);
 static Visual *pick_best_gl_visual (Screen *);
-static Visual *id_to_visual (Screen *, int);
-static Visual *id_to_visual (Screen *screen, int id);
 
 
 #define DEFAULT_VISUAL -1
@@ -338,7 +337,7 @@ pick_best_gl_visual (Screen *screen)
 }
 
 
-static Visual *
+Visual *
 id_to_visual (Screen *screen, int id)
 {
   Display *dpy = DisplayOfScreen (screen);
@@ -430,13 +429,12 @@ has_writable_cells (Screen *screen, Visual *visual)
     {
     case GrayScale:    /* Mappable grays. */
     case PseudoColor:  /* Mappable colors. */
+    case DirectColor:  /* Like TrueColor, but with three colormaps:
+                           one each for red, green, and blue. */
       return True;
     case StaticGray:   /* Fixed grays. */
     case TrueColor:    /* Fixed colors. */
-    case StaticColor:  /* (What's the difference again?) */
-    case DirectColor:  /* DirectColor visuals are like TrueColor, but have
-                          three colormaps - one for each component of RGB.
-                          Screw it. */
+    case StaticColor:  /* Like PseudoColor with an unmodifiable colormap. */
       return False;
     default:
       abort();