Ignore:
Timestamp:
Sep 27, 2008, 3:12:46 PM (11 years ago)
Author:
Sam Hocevar
Message:

Starting refactoring to get rid of libcucul. The initial reason for the
split is rendered moot by the plugin system: when enabled, binaries do
not link directly with libX11 or libGL. I hope this is a step towards
more consisteny and clarity.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • libcaca/trunk/src/cacaview.c

    r2299 r2821  
    2525#endif
    2626
    27 #include "cucul.h"
    2827#include "caca.h"
    2928
     
    4544#define PAD_STEP 0.15
    4645
    47 /* libcucul/libcaca contexts */
    48 cucul_canvas_t *cv; caca_display_t *dp;
     46/* libcaca/libcaca contexts */
     47caca_canvas_t *cv; caca_display_t *dp;
    4948
    5049/* Local functions */
     
    6564int main(int argc, char **argv)
    6665{
    67     char const * const * algos = cucul_get_dither_algorithm_list(NULL);
     66    char const * const * algos = caca_get_dither_algorithm_list(NULL);
    6867    int dither_algorithm = 0;
    6968
     
    7574    int i;
    7675
    77     /* Initialise libcucul */
    78     cv = cucul_create_canvas(0, 0);
     76    /* Initialise libcaca */
     77    cv = caca_create_canvas(0, 0);
    7978    if(!cv)
    80     {
    81         fprintf(stderr, "%s: unable to initialise libcucul\n", argv[0]);
    82         return 1;
    83     }
    84 
    85     dp = caca_create_display(cv);
    86     if(!dp)
    8779    {
    8880        fprintf(stderr, "%s: unable to initialise libcaca\n", argv[0]);
     
    9082    }
    9183
     84    dp = caca_create_display(cv);
     85    if(!dp)
     86    {
     87        fprintf(stderr, "%s: unable to initialise libcaca\n", argv[0]);
     88        return 1;
     89    }
     90
    9291    /* Set the window title */
    9392    caca_set_display_title(dp, "cacaview");
    9493
    95     ww = cucul_get_canvas_width(cv);
    96     wh = cucul_get_canvas_height(cv);
     94    ww = caca_get_canvas_width(cv);
     95    wh = caca_get_canvas_height(cv);
    9796
    9897    /* Fill the zoom table */
     
    181180#if 0 /* FIXME */
    182181            case 'b':
    183                 i = 1 + cucul_get_feature(cv, CUCUL_BACKGROUND);
    184                 if(i > CUCUL_BACKGROUND_MAX) i = CUCUL_BACKGROUND_MIN;
    185                 cucul_set_feature(cv, i);
     182                i = 1 + caca_get_feature(cv, CACA_BACKGROUND);
     183                if(i > CACA_BACKGROUND_MAX) i = CACA_BACKGROUND_MIN;
     184                caca_set_feature(cv, i);
    186185                new_status = STATUS_BACKGROUND;
    187186                update = 1;
    188187                break;
    189188            case 'B':
    190                 i = -1 + cucul_get_feature(cv, CUCUL_BACKGROUND);
    191                 if(i < CUCUL_BACKGROUND_MIN) i = CUCUL_BACKGROUND_MAX;
    192                 cucul_set_feature(cv, i);
     189                i = -1 + caca_get_feature(cv, CACA_BACKGROUND);
     190                if(i < CACA_BACKGROUND_MIN) i = CACA_BACKGROUND_MAX;
     191                caca_set_feature(cv, i);
    193192                new_status = STATUS_BACKGROUND;
    194193                update = 1;
    195194                break;
    196195            case 'a':
    197                 i = 1 + cucul_get_feature(cv, CUCUL_ANTIALIASING);
    198                 if(i > CUCUL_ANTIALIASING_MAX) i = CUCUL_ANTIALIASING_MIN;
    199                 cucul_set_feature(cv, i);
     196                i = 1 + caca_get_feature(cv, CACA_ANTIALIASING);
     197                if(i > CACA_ANTIALIASING_MAX) i = CACA_ANTIALIASING_MIN;
     198                caca_set_feature(cv, i);
    200199                new_status = STATUS_ANTIALIASING;
    201200                update = 1;
    202201                break;
    203202            case 'A':
    204                 i = -1 + cucul_get_feature(cv, CUCUL_ANTIALIASING);
    205                 if(i < CUCUL_ANTIALIASING_MIN) i = CUCUL_ANTIALIASING_MAX;
    206                 cucul_set_feature(cv, i);
     203                i = -1 + caca_get_feature(cv, CACA_ANTIALIASING);
     204                if(i < CACA_ANTIALIASING_MIN) i = CACA_ANTIALIASING_MAX;
     205                caca_set_feature(cv, i);
    207206                new_status = STATUS_ANTIALIASING;
    208207                update = 1;
     
    213212                if(algos[dither_algorithm * 2] == NULL)
    214213                    dither_algorithm = 0;
    215                 cucul_set_dither_algorithm(im->dither,
     214                caca_set_dither_algorithm(im->dither,
    216215                                           algos[dither_algorithm * 2]);
    217216                new_status = STATUS_DITHERING;
     
    223222                    while(algos[dither_algorithm * 2 + 2] != NULL)
    224223                        dither_algorithm++;
    225                 cucul_set_dither_algorithm(im->dither,
     224                caca_set_dither_algorithm(im->dither,
    226225                                           algos[dither_algorithm * 2]);
    227226                new_status = STATUS_DITHERING;
     
    320319            sprintf(buffer, " Loading `%s'... ", list[current]);
    321320            buffer[ww] = '\0';
    322             cucul_set_color_ansi(cv, CUCUL_WHITE, CUCUL_BLUE);
    323             cucul_put_str(cv, (ww - strlen(buffer)) / 2, wh / 2, buffer);
     321            caca_set_color_ansi(cv, CACA_WHITE, CACA_BLUE);
     322            caca_put_str(cv, (ww - strlen(buffer)) / 2, wh / 2, buffer);
    324323            caca_refresh_display(dp);
    325             ww = cucul_get_canvas_width(cv);
    326             wh = cucul_get_canvas_height(cv);
     324            ww = caca_get_canvas_width(cv);
     325            wh = caca_get_canvas_height(cv);
    327326
    328327            if(im)
     
    340339        }
    341340
    342         cucul_set_color_ansi(cv, CUCUL_WHITE, CUCUL_BLACK);
    343         cucul_clear_canvas(cv);
     341        caca_set_color_ansi(cv, CACA_WHITE, CACA_BLACK);
     342        caca_clear_canvas(cv);
    344343
    345344        if(!items)
    346345        {
    347             cucul_set_color_ansi(cv, CUCUL_WHITE, CUCUL_BLUE);
    348             cucul_printf(cv, ww / 2 - 5, wh / 2, " No image. ");
     346            caca_set_color_ansi(cv, CACA_WHITE, CACA_BLUE);
     347            caca_printf(cv, ww / 2 - 5, wh / 2, " No image. ");
    349348        }
    350349        else if(!im)
     
    365364            sprintf(buffer, ERROR_STRING, list[current]);
    366365            buffer[ww] = '\0';
    367             cucul_set_color_ansi(cv, CUCUL_WHITE, CUCUL_BLUE);
    368             cucul_put_str(cv, (ww - strlen(buffer)) / 2, wh / 2, buffer);
     366            caca_set_color_ansi(cv, CACA_WHITE, CACA_BLUE);
     367            caca_put_str(cv, (ww - strlen(buffer)) / 2, wh / 2, buffer);
    369368            free(buffer);
    370369        }
     
    384383                          ww * xfactor, height * yfactor);
    385384
    386             cucul_dither_bitmap(cv, ww * (1.0 - xfactor) * xdelta,
     385            caca_dither_bitmap(cv, ww * (1.0 - xfactor) * xdelta,
    387386                            y + height * (1.0 - yfactor) * ydelta,
    388387                            ww * xfactor + 1, height * yfactor + 1,
     
    394393            print_status();
    395394
    396             cucul_set_color_ansi(cv, CUCUL_LIGHTGRAY, CUCUL_BLACK);
     395            caca_set_color_ansi(cv, CACA_LIGHTGRAY, CACA_BLACK);
    397396            switch(status)
    398397            {
    399398                case STATUS_DITHERING:
    400                     cucul_printf(cv, 0, wh - 1, "Dithering: %s",
    401                                  cucul_get_dither_algorithm(im->dither));
     399                    caca_printf(cv, 0, wh - 1, "Dithering: %s",
     400                                 caca_get_dither_algorithm(im->dither));
    402401                    break;
    403402#if 0 /* FIXME */
    404403                case STATUS_ANTIALIASING:
    405                     cucul_printf(cv, 0, wh - 1, "Antialiasing: %s",
    406                   cucul_get_feature_name(cucul_get_feature(cv, CUCUL_ANTIALIASING)));
     404                    caca_printf(cv, 0, wh - 1, "Antialiasing: %s",
     405                  caca_get_feature_name(caca_get_feature(cv, CACA_ANTIALIASING)));
    407406                    break;
    408407                case STATUS_BACKGROUND:
    409                     cucul_printf(cv, 0, wh - 1, "Background: %s",
    410                   cucul_get_feature_name(cucul_get_feature(cv, CUCUL_BACKGROUND)));
     408                    caca_printf(cv, 0, wh - 1, "Background: %s",
     409                  caca_get_feature_name(caca_get_feature(cv, CACA_BACKGROUND)));
    411410                    break;
    412411#endif
     
    427426        unload_image(im);
    428427    caca_free_display(dp);
    429     cucul_free_canvas(cv);
     428    caca_free_canvas(cv);
    430429
    431430    return 0;
     
    434433static void print_status(void)
    435434{
    436     cucul_set_color_ansi(cv, CUCUL_WHITE, CUCUL_BLUE);
    437     cucul_draw_line(cv, 0, 0, ww - 1, 0, ' ');
    438     cucul_draw_line(cv, 0, wh - 2, ww - 1, wh - 2, '-');
    439     cucul_put_str(cv, 0, 0, "q:Quit  np:Next/Prev  +-x:Zoom  gG:Gamma  "
     435    caca_set_color_ansi(cv, CACA_WHITE, CACA_BLUE);
     436    caca_draw_line(cv, 0, 0, ww - 1, 0, ' ');
     437    caca_draw_line(cv, 0, wh - 2, ww - 1, wh - 2, '-');
     438    caca_put_str(cv, 0, 0, "q:Quit  np:Next/Prev  +-x:Zoom  gG:Gamma  "
    440439                            "hjkl:Move  d:Dither  a:Antialias");
    441     cucul_put_str(cv, ww - strlen("?:Help"), 0, "?:Help");
    442     cucul_printf(cv, 3, wh - 2, "cacaview %s", VERSION);
    443     cucul_printf(cv, ww - 30, wh - 2, "(gamma: %#.3g)", GAMMA(g));
    444     cucul_printf(cv, ww - 14, wh - 2, "(zoom: %s%i)", zoom > 0 ? "+" : "", zoom);
    445 
    446     cucul_set_color_ansi(cv, CUCUL_LIGHTGRAY, CUCUL_BLACK);
    447     cucul_draw_line(cv, 0, wh - 1, ww - 1, wh - 1, ' ');
     440    caca_put_str(cv, ww - strlen("?:Help"), 0, "?:Help");
     441    caca_printf(cv, 3, wh - 2, "cacaview %s", VERSION);
     442    caca_printf(cv, ww - 30, wh - 2, "(gamma: %#.3g)", GAMMA(g));
     443    caca_printf(cv, ww - 14, wh - 2, "(zoom: %s%i)", zoom > 0 ? "+" : "", zoom);
     444
     445    caca_set_color_ansi(cv, CACA_LIGHTGRAY, CACA_BLACK);
     446    caca_draw_line(cv, 0, wh - 1, ww - 1, wh - 1, ' ');
    448447}
    449448
     
    472471    int i;
    473472
    474     cucul_set_color_ansi(cv, CUCUL_WHITE, CUCUL_BLUE);
     473    caca_set_color_ansi(cv, CACA_WHITE, CACA_BLUE);
    475474
    476475    for(i = 0; help[i]; i++)
    477         cucul_put_str(cv, x, y + i, help[i]);
     476        caca_put_str(cv, x, y + i, help[i]);
    478477}
    479478
     
    490489    if(zoom < -ZOOM_MAX) zoom = -ZOOM_MAX;
    491490
    492     ww = cucul_get_canvas_width(cv);
     491    ww = caca_get_canvas_width(cv);
    493492    height = fullscreen ? wh : wh - 3;
    494493
    495494    xfactor = (zoom < 0) ? 1.0 / zoomtab[-zoom] : zoomtab[zoom];
    496495    yfactor = xfactor * ww / height * im->h / im->w
    497                * cucul_get_canvas_height(cv) / cucul_get_canvas_width(cv)
     496               * caca_get_canvas_height(cv) / caca_get_canvas_width(cv)
    498497               * caca_get_display_width(dp) / caca_get_display_height(dp);
    499498
     
    516515    if(g < -GAMMA_MAX) g = -GAMMA_MAX;
    517516
    518     cucul_set_dither_gamma(im->dither,
     517    caca_set_dither_gamma(im->dither,
    519518                           (g < 0) ? 1.0 / gammatab[-g] : gammatab[g]);
    520519}
     
    524523    int xn, yn;
    525524
    526     if(x + w > (int)cucul_get_canvas_width(cv))
    527         w = cucul_get_canvas_width(cv) - x;
    528     if(y + h > (int)cucul_get_canvas_height(cv))
    529         h = cucul_get_canvas_height(cv) - y;
     525    if(x + w > (int)caca_get_canvas_width(cv))
     526        w = caca_get_canvas_width(cv) - x;
     527    if(y + h > (int)caca_get_canvas_height(cv))
     528        h = caca_get_canvas_height(cv) - y;
    530529
    531530    for(yn = y > 0 ? y : 0; yn < y + h; yn++)
     
    533532    {
    534533        if((((xn - x) / 5) ^ ((yn - y) / 3)) & 1)
    535             cucul_set_color_ansi(cv, CUCUL_LIGHTGRAY, CUCUL_DARKGRAY);
     534            caca_set_color_ansi(cv, CACA_LIGHTGRAY, CACA_DARKGRAY);
    536535        else
    537             cucul_set_color_ansi(cv, CUCUL_DARKGRAY, CUCUL_LIGHTGRAY);
    538         cucul_put_char(cv, xn, yn, ' ');
     536            caca_set_color_ansi(cv, CACA_DARKGRAY, CACA_LIGHTGRAY);
     537        caca_put_char(cv, xn, yn, ' ');
    539538    }
    540539}
Note: See TracChangeset for help on using the changeset viewer.