[Contents] [Index] [Help] [Retrace] [Browse <] [Browse >]


   NAME
        ObtainBestPenA --- Search for the closest color match, or allocate a
                           new one. (V39)
        ObtainBestPen  --- varargs stub for ObtainBestPenA

   SYNOPSIS
        color | -1 =ObtainBestPenA(  cm,  R,   G,    B,    taglist)
                                     a0   d1   d2    d3       a1

        long obtainbestpena( struct colormap *, ulong, ulong,
                        ULONG, struct tagitem *);

        color = ObtainBestPen(cm,r,g,b,tags....);

   INPUTS
        cm = colormap
        R = red level   (32 bit left justified fraction)
        G = green level (32 bit left justified fraction)
        B = blue level  (32 bit left justified fraction)
        taglist = a pointer to a standard tag list specifying the color
                  matching settings desired:

                OBP_Precision - specifies the desired precision for the
                        match. Should be PRECISION_GUI, PRECISION_ICON, or
                        PRECISION_IMAGE or PRECISION_EXACT.
                        Defaults to PRECISION_IMAGE.

                OBP_FailIfBad - specifies that you want ObtainBestPen to return
                        a failure value if there is not a color within the
                        given tolerance, instead of returning the closest color.
                        With OBP_FailIfBad==FALSE, ObtainBestPen will only fail
                        if the viewport contains no sharable colors.
                        Defaults to FALSE.


   FUNCTION
        This function can be used by applications to figure out
        what pen to use to represent a given color.

        The system will attempt to find the color in your viewport closest
        to the specified color. If there is no color within your tolerance,
        then a new one will be allocated, if available. If none is available,
        then the closest one found will be returned.

   RESULT
        The correct pen value, or -1 if no sharable palette entries are available.


   BUGS

   NOTES
        If this call succceeds, then you must call releasepen() when you are
        done with the color.

        The error metric used for ObtainBestPen() is based on the magnitude
        squared between the two RGB values, scaled by the percentage of free
        entries.

   SEE ALSO
        getcolormap() obtainpen() releasepen()