open-src/app/xcolor/sun-src/XCrHsbCmap.c
author Alan Coopersmith <Alan.Coopersmith@Sun.COM>
Thu, 18 Feb 2010 16:03:08 -0800
changeset 907 3c35d611cdaa
parent 509 9469d4c6010a
child 919 425233ae7236
permissions -rw-r--r--
6927784 Remove SCCS ident tags from X gate
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
509
9469d4c6010a 6736024 Replace xcolor with open src version
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
     1
/*-
9469d4c6010a 6736024 Replace xcolor with open src version
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
     2
 * XCrHsbCmap.c - X11 library routine to create an HSB ramp colormaps.
9469d4c6010a 6736024 Replace xcolor with open src version
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
     3
 *
9469d4c6010a 6736024 Replace xcolor with open src version
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
     4
 * Copyright 1995 Sun Microsystems, Inc.  All rights reserved.
9469d4c6010a 6736024 Replace xcolor with open src version
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
     5
 *
9469d4c6010a 6736024 Replace xcolor with open src version
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
     6
 * Permission is hereby granted, free of charge, to any person obtaining a
9469d4c6010a 6736024 Replace xcolor with open src version
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
     7
 * copy of this software and associated documentation files (the
9469d4c6010a 6736024 Replace xcolor with open src version
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
     8
 * "Software"), to deal in the Software without restriction, including
9469d4c6010a 6736024 Replace xcolor with open src version
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
     9
 * without limitation the rights to use, copy, modify, merge, publish,
9469d4c6010a 6736024 Replace xcolor with open src version
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    10
 * distribute, and/or sell copies of the Software, and to permit persons
9469d4c6010a 6736024 Replace xcolor with open src version
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    11
 * to whom the Software is furnished to do so, provided that the above
9469d4c6010a 6736024 Replace xcolor with open src version
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    12
 * copyright notice(s) and this permission notice appear in all copies of
9469d4c6010a 6736024 Replace xcolor with open src version
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    13
 * the Software and that both the above copyright notice(s) and this
9469d4c6010a 6736024 Replace xcolor with open src version
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    14
 * permission notice appear in supporting documentation.
9469d4c6010a 6736024 Replace xcolor with open src version
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    15
 *
9469d4c6010a 6736024 Replace xcolor with open src version
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    16
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
9469d4c6010a 6736024 Replace xcolor with open src version
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    17
 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
9469d4c6010a 6736024 Replace xcolor with open src version
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    18
 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
9469d4c6010a 6736024 Replace xcolor with open src version
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    19
 * OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
9469d4c6010a 6736024 Replace xcolor with open src version
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    20
 * HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
9469d4c6010a 6736024 Replace xcolor with open src version
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    21
 * INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
9469d4c6010a 6736024 Replace xcolor with open src version
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    22
 * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
9469d4c6010a 6736024 Replace xcolor with open src version
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    23
 * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
9469d4c6010a 6736024 Replace xcolor with open src version
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    24
 * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
9469d4c6010a 6736024 Replace xcolor with open src version
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    25
 *
9469d4c6010a 6736024 Replace xcolor with open src version
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    26
 * Except as contained in this notice, the name of a copyright holder
9469d4c6010a 6736024 Replace xcolor with open src version
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    27
 * shall not be used in advertising or otherwise to promote the sale, use
9469d4c6010a 6736024 Replace xcolor with open src version
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    28
 * or other dealings in this Software without prior written authorization
9469d4c6010a 6736024 Replace xcolor with open src version
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    29
 * of the copyright holder.
9469d4c6010a 6736024 Replace xcolor with open src version
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    30
 *
9469d4c6010a 6736024 Replace xcolor with open src version
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    31
 * Author: Patrick J. Naughton
9469d4c6010a 6736024 Replace xcolor with open src version
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    32
 * [email protected]
9469d4c6010a 6736024 Replace xcolor with open src version
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    33
 */
9469d4c6010a 6736024 Replace xcolor with open src version
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    34
9469d4c6010a 6736024 Replace xcolor with open src version
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    35
#include <X11/X.h>
9469d4c6010a 6736024 Replace xcolor with open src version
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    36
#include <X11/Xos.h>
9469d4c6010a 6736024 Replace xcolor with open src version
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    37
#include <X11/Xlib.h>
9469d4c6010a 6736024 Replace xcolor with open src version
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    38
9469d4c6010a 6736024 Replace xcolor with open src version
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    39
extern void HSBmap();
9469d4c6010a 6736024 Replace xcolor with open src version
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    40
9469d4c6010a 6736024 Replace xcolor with open src version
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    41
Status
9469d4c6010a 6736024 Replace xcolor with open src version
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    42
XCreateHSBColormap(dsp, screen, cmap, count, h1, s1, b1, h2, s2, b2, bw, visual)
9469d4c6010a 6736024 Replace xcolor with open src version
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    43
    Display    *dsp;
9469d4c6010a 6736024 Replace xcolor with open src version
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    44
    int         screen;
9469d4c6010a 6736024 Replace xcolor with open src version
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    45
    Colormap   *cmap;		/* colormap return value */
9469d4c6010a 6736024 Replace xcolor with open src version
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    46
    int         count;		/* number of entrys to use */
9469d4c6010a 6736024 Replace xcolor with open src version
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    47
    double      h1,		/* starting hue */
9469d4c6010a 6736024 Replace xcolor with open src version
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    48
                s1,		/* starting saturation */
9469d4c6010a 6736024 Replace xcolor with open src version
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    49
                b1,		/* starting brightness */
9469d4c6010a 6736024 Replace xcolor with open src version
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    50
                h2,		/* ending hue */
9469d4c6010a 6736024 Replace xcolor with open src version
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    51
                s2,		/* ending saturation */
9469d4c6010a 6736024 Replace xcolor with open src version
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    52
                b2;		/* ending brightness */
9469d4c6010a 6736024 Replace xcolor with open src version
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    53
    int         bw;		/* Boolean: True = save black and white */
9469d4c6010a 6736024 Replace xcolor with open src version
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    54
    Visual    **visual;
9469d4c6010a 6736024 Replace xcolor with open src version
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    55
{
9469d4c6010a 6736024 Replace xcolor with open src version
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    56
    u_char      red[256];
9469d4c6010a 6736024 Replace xcolor with open src version
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    57
    u_char      green[256];
9469d4c6010a 6736024 Replace xcolor with open src version
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    58
    u_char      blue[256];
9469d4c6010a 6736024 Replace xcolor with open src version
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    59
    unsigned long pixel;
9469d4c6010a 6736024 Replace xcolor with open src version
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    60
    Status      status;
9469d4c6010a 6736024 Replace xcolor with open src version
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    61
    XColor      xcolors[256];
9469d4c6010a 6736024 Replace xcolor with open src version
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    62
9469d4c6010a 6736024 Replace xcolor with open src version
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    63
    if (count > 256)
9469d4c6010a 6736024 Replace xcolor with open src version
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    64
	return BadValue;
9469d4c6010a 6736024 Replace xcolor with open src version
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    65
9469d4c6010a 6736024 Replace xcolor with open src version
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    66
    HSBramp(h1, s1, b1, h2, s2, b2, 0, count - 1, red, green, blue);
9469d4c6010a 6736024 Replace xcolor with open src version
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    67
9469d4c6010a 6736024 Replace xcolor with open src version
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    68
    if (bw) {
9469d4c6010a 6736024 Replace xcolor with open src version
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    69
	pixel = WhitePixel(dsp, screen);
9469d4c6010a 6736024 Replace xcolor with open src version
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    70
	if (pixel < 256)
9469d4c6010a 6736024 Replace xcolor with open src version
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    71
	    red[pixel] = green[pixel] = blue[pixel] = 0xff;
9469d4c6010a 6736024 Replace xcolor with open src version
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    72
9469d4c6010a 6736024 Replace xcolor with open src version
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    73
	pixel = BlackPixel(dsp, screen);
9469d4c6010a 6736024 Replace xcolor with open src version
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    74
	if (pixel < 256)
9469d4c6010a 6736024 Replace xcolor with open src version
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    75
	    red[pixel] = green[pixel] = blue[pixel] = 0;
9469d4c6010a 6736024 Replace xcolor with open src version
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    76
    }
9469d4c6010a 6736024 Replace xcolor with open src version
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    77
    status = XCreateDynamicColormap(dsp, screen, cmap, visual, xcolors,
9469d4c6010a 6736024 Replace xcolor with open src version
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    78
				    count, red, green, blue);
9469d4c6010a 6736024 Replace xcolor with open src version
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    79
9469d4c6010a 6736024 Replace xcolor with open src version
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    80
    return status;
9469d4c6010a 6736024 Replace xcolor with open src version
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    81
}