X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=utils%2Fvisual.c;h=7c89f5a0c7a55bcdcbc3b70aed3d56c9afab2aab;hb=c494fd2e6b3b25582375d62e40f4f5cc984ca424;hp=4e88bea5a36a378ade0b23bff3635f181c50e4f4;hpb=14627f4038ada5d11456f3770090f3c39740d70f;p=xscreensaver diff --git a/utils/visual.c b/utils/visual.c index 4e88bea5..7c89f5a0 100644 --- a/utils/visual.c +++ b/utils/visual.c @@ -1,4 +1,6 @@ -/* xscreensaver, Copyright (c) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000 +/* xscreensaver, Copyright (c) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2003, 2006 + * + * * by Jamie Zawinski * * Permission to use, copy, modify, distribute, and sell this software and its @@ -19,6 +21,7 @@ #include "resources.h" /* for get_string_resource() */ #include "visual.h" +#include #include extern char *progname; @@ -76,7 +79,7 @@ get_visual (Screen *screen, const char *string, Bool prefer_writable_cells, else if (!strcmp (v, "greyscale")) vclass = GrayScale; else if (!strcmp (v, "pseudocolor")) vclass = PseudoColor; else if (!strcmp (v, "directcolor")) vclass = DirectColor; - else if (1 == sscanf (v, " %ld %c", &id, &c)) vclass = SPECIFIC_VISUAL; + else if (1 == sscanf (v, " %lu %c", &id, &c)) vclass = SPECIFIC_VISUAL; else if (1 == sscanf (v, " 0x%lx %c", &id, &c)) vclass = SPECIFIC_VISUAL; else { @@ -159,7 +162,7 @@ Visual * get_visual_resource (Screen *screen, char *name, char *class, Bool prefer_writable_cells) { - char *string = get_string_resource (name, class); + char *string = get_string_resource (DisplayOfScreen (screen), name, class); Visual *v = get_visual (screen, string, prefer_writable_cells, True); if (string) free(string); @@ -428,13 +431,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();