Changeset 1877 for libcaca


Ignore:
Timestamp:
Nov 4, 2007, 11:41:07 AM (13 years ago)
Author:
Sam Hocevar
Message:
  • Implemented cucul_get_dither_antialias() and cucul_get_dither_color().
Location:
libcaca/trunk/cucul
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • libcaca/trunk/cucul/cucul.h

    r1870 r1877  
    216216int cucul_set_dither_antialias(cucul_dither_t *, char const *);
    217217char const * const * cucul_get_dither_antialias_list(cucul_dither_t const *);
     218char const * cucul_get_dither_antialias(cucul_dither_t const *);
    218219int cucul_set_dither_color(cucul_dither_t *, char const *);
    219220char const * const * cucul_get_dither_color_list(cucul_dither_t const *);
     221char const * cucul_get_dither_color(cucul_dither_t const *);
    220222int cucul_set_dither_charset(cucul_dither_t *, char const *);
    221223char const * const * cucul_get_dither_charset_list(cucul_dither_t const *);
  • libcaca/trunk/cucul/dither.c

    r1876 r1877  
    132132
    133133    /* Bitmap features */
    134     int invert, antialias;
    135 
    136     /* Colour mode used for rendering */
    137     enum color_mode color_mode;
     134    struct
     135    {
     136        char const *name;
     137        int value;
     138    }
     139    antialias, color;
     140    int invert;
    138141
    139142    /* Glyphs used for rendering */
     
    337340
    338341    /* Default features */
     342    d->antialias.name = "prefilter";
     343    d->antialias.value = 1;
     344    d->color.name = "full16";
     345    d->color.value = COLOR_MODE_FULL16;
    339346    d->invert = 0;
    340     d->antialias = 1;
    341 
    342     /* Default colour mode */
    343     d->color_mode = COLOR_MODE_FULL16;
    344347
    345348    /* Default character set */
     
    546549{
    547550    if(!strcasecmp(str, "none"))
    548         d->antialias = 0;
     551    {
     552        d->antialias.name = "none";
     553        d->antialias.value = 0;
     554    }
    549555    else if(!strcasecmp(str, "prefilter") || !strcasecmp(str, "default"))
    550         d->antialias = 1;
     556    {
     557        d->antialias.name = "prefilter";
     558        d->antialias.value = 1;
     559    }
    551560    else
    552561    {
     
    582591
    583592    return list;
     593}
     594
     595/** \brief Get current antialiasing method
     596 *
     597 *  Return the given dither's current antialiasing method.
     598 *
     599 *  This function never fails.
     600 *
     601 *  \param d Dither object.
     602 *  \return A static string.
     603 */
     604char const * cucul_get_dither_antialias(cucul_dither_t const *d)
     605{
     606    return d->antialias.name;
    584607}
    585608
     
    610633{
    611634    if(!strcasecmp(str, "mono"))
    612         d->color_mode = COLOR_MODE_MONO;
     635    {
     636        d->color.name = "mono";
     637        d->color.value = COLOR_MODE_MONO;
     638    }
    613639    else if(!strcasecmp(str, "gray"))
    614         d->color_mode = COLOR_MODE_GRAY;
     640    {
     641        d->color.name = "gray";
     642        d->color.value = COLOR_MODE_GRAY;
     643    }
    615644    else if(!strcasecmp(str, "8"))
    616         d->color_mode = COLOR_MODE_8;
     645    {
     646        d->color.name = "8";
     647        d->color.value = COLOR_MODE_8;
     648    }
    617649    else if(!strcasecmp(str, "16"))
    618         d->color_mode = COLOR_MODE_16;
     650    {
     651        d->color.name = "16";
     652        d->color.value = COLOR_MODE_16;
     653    }
    619654    else if(!strcasecmp(str, "fullgray"))
    620         d->color_mode = COLOR_MODE_FULLGRAY;
     655    {
     656        d->color.name = "fullgray";
     657        d->color.value = COLOR_MODE_FULLGRAY;
     658    }
    621659    else if(!strcasecmp(str, "full8"))
    622         d->color_mode = COLOR_MODE_FULL8;
     660    {
     661        d->color.name = "full8";
     662        d->color.value = COLOR_MODE_FULL8;
     663    }
    623664    else if(!strcasecmp(str, "full16") || !strcasecmp(str, "default"))
    624         d->color_mode = COLOR_MODE_FULL16;
     665    {
     666        d->color.name = "full16";
     667        d->color.value = COLOR_MODE_FULL16;
     668    }
    625669    else
    626670    {
     
    663707}
    664708
     709/** \brief Get current colour mode
     710 *
     711 *  Return the given dither's current colour mode.
     712 *
     713 *  This function never fails.
     714 *
     715 *  \param d Dither object.
     716 *  \return A static string.
     717 */
     718char const * cucul_get_dither_color(cucul_dither_t const *d)
     719{
     720    return d->color.name;
     721}
     722
    665723/** \brief Choose characters used for dithering
    666724 *
     
    901959
    902960        /* First get RGB */
    903         if(d->antialias)
     961        if(d->antialias.value)
    904962        {
    905963            fromx = (x - x1) * w / deltax;
     
    9841042
    9851043        /* FIXME: we currently only honour "full16" */
    986         if(d->color_mode == COLOR_MODE_FULL16)
     1044        if(d->color.value == COLOR_MODE_FULL16)
    9871045        {
    9881046            distmin = INT_MAX;
Note: See TracChangeset for help on using the changeset viewer.