open-src/app/xlock/sun-src/hsbramp.c
author Mahmood Ali <Mahmood.Ali@Sun.COM>
Sun, 21 Sep 2008 18:53:48 -0700
changeset 546 f3f84c886c69
child 907 3c35d611cdaa
permissions -rw-r--r--
6741687 Port xlock to open src tree
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
546
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
     1
/*
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
     2
 * Copyright (c) 1988-91 by Patrick J. Naughton.
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
     3
 *
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
     4
 * Permission to use, copy, modify, and distribute this software and its
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
     5
 * documentation for any purpose and without fee is hereby granted,
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
     6
 * provided that the above copyright notice appear in all copies and that
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
     7
 * both that copyright notice and this permission notice appear in
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
     8
 * supporting documentation.
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
     9
 *
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    10
 * This file is provided AS IS with no warranties of any kind.  The author
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    11
 * shall have no liability with respect to the infringement of copyrights,
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    12
 * trade secrets or any patents by this file or any part thereof.  In no
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    13
 * event will the author be liable for any lost revenue or profits or
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    14
 * other special, indirect and consequential damages.
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    15
 */
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    16
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    17
/*
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    18
 * Copyright 1994 Sun Microsystems, Inc.  All rights reserved.
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    19
 * Use is subject to license terms.
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    20
 *
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    21
 * Permission is hereby granted, free of charge, to any person obtaining a
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    22
 * copy of this software and associated documentation files (the
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    23
 * "Software"), to deal in the Software without restriction, including
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    24
 * without limitation the rights to use, copy, modify, merge, publish,
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    25
 * distribute, and/or sell copies of the Software, and to permit persons
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    26
 * to whom the Software is furnished to do so, provided that the above
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    27
 * copyright notice(s) and this permission notice appear in all copies of
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    28
 * the Software and that both the above copyright notice(s) and this
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    29
 * permission notice appear in supporting documentation.
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    30
 *
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    31
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    32
 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    33
 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    34
 * OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    35
 * HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    36
 * INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    37
 * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    38
 * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    39
 * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    40
 *
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    41
 * Except as contained in this notice, the name of a copyright holder
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    42
 * shall not be used in advertising or otherwise to promote the sale, use
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    43
 * or other dealings in this Software without prior written authorization
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    44
 * of the copyright holder.
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    45
 */
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    46
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    47
#ifndef lint
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    48
static char sccsid[] = "@(#)hsbramp.c	35.3 08/09/18 XLOCK";
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    49
#endif
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    50
/*-
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    51
 * hsbramp.c - Create an HSB ramp.
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    52
 *
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    53
 * Copyright (c) 1991 by Patrick J. Naughton.
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    54
 *
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    55
 * See xlock.c for copying information.
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    56
 *
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    57
 * Revision History:
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    58
 * 29-Jul-90: renamed hsbramp.c from HSBmap.c
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    59
 *	      minor optimizations.
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    60
 * 01-Sep-88: Written.
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    61
 */
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    62
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    63
#include <sys/types.h>
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    64
#include <math.h>
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    65
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    66
void
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    67
hsb2rgb(H, S, B, r, g, b)
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    68
    double      H,
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    69
                S,
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    70
                B;
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    71
    u_char     *r,
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    72
               *g,
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    73
               *b;
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    74
{
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    75
    int         i;
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    76
    double      f;
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    77
    double      bb;
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    78
    u_char      p;
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    79
    u_char      q;
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    80
    u_char      t;
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    81
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    82
    H -= floor(H);		/* remove anything over 1 */
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    83
    H *= 6.0;
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    84
    i = floor(H);		/* 0..5 */
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    85
    f = H - (float) i;		/* f = fractional part of H */
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    86
    bb = 255.0 * B;
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    87
    p = (u_char) (bb * (1.0 - S));
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    88
    q = (u_char) (bb * (1.0 - (S * f)));
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    89
    t = (u_char) (bb * (1.0 - (S * (1.0 - f))));
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    90
    switch (i) {
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    91
    case 0:
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    92
	*r = (u_char) bb;
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    93
	*g = t;
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    94
	*b = p;
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    95
	break;
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    96
    case 1:
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    97
	*r = q;
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    98
	*g = (u_char) bb;
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
    99
	*b = p;
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
   100
	break;
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
   101
    case 2:
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
   102
	*r = p;
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
   103
	*g = (u_char) bb;
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
   104
	*b = t;
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
   105
	break;
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
   106
    case 3:
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
   107
	*r = p;
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
   108
	*g = q;
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
   109
	*b = (u_char) bb;
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
   110
	break;
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
   111
    case 4:
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
   112
	*r = t;
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
   113
	*g = p;
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
   114
	*b = (u_char) bb;
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
   115
	break;
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
   116
    case 5:
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
   117
	*r = (u_char) bb;
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
   118
	*g = p;
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
   119
	*b = q;
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
   120
	break;
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
   121
    }
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
   122
}
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
   123
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
   124
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
   125
/*
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
   126
 * Input is two points in HSB color space and a count
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
   127
 * of how many discreet rgb space values the caller wants.
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
   128
 *
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
   129
 * Output is that many rgb triples which describe a linear
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
   130
 * interpolate ramp between the two input colors.
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
   131
 */
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
   132
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
   133
void
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
   134
hsbramp(h1, s1, b1, h2, s2, b2, count, red, green, blue)
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
   135
    double      h1,
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
   136
                s1,
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
   137
                b1,
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
   138
                h2,
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
   139
                s2,
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
   140
                b2;
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
   141
    int         count;
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
   142
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
   143
    u_char     *red,
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
   144
               *green,
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
   145
               *blue;
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
   146
{
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
   147
    double      dh;
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
   148
    double      ds;
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
   149
    double      db;
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
   150
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
   151
    dh = (h2 - h1) / count;
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
   152
    ds = (s2 - s1) / count;
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
   153
    db = (b2 - b1) / count;
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
   154
    while (count--) {
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
   155
	hsb2rgb(h1, s1, b1, red++, green++, blue++);
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
   156
	h1 += dh;
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
   157
	s1 += ds;
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
   158
	b1 += db;
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
   159
    }
f3f84c886c69 6741687 Port xlock to open src tree
Mahmood Ali <Mahmood.Ali@Sun.COM>
parents:
diff changeset
   160
}