Ignore:
Timestamp:
Mar 5, 2006, 7:43:13 PM (15 years ago)
Author:
Sam Hocevar
Message:

A new low-level text management library (canvas for ultrafast compositing

of unicode letters) is now separated from the higher level rendering and I/O
(that is, libcaca). This commit totally breaks the API, but once everything
is polished I will think about source-level backward compatibility. Most
drivers are broken, but X11 still sorta works.

The new design is much more object-oriented and allows having several

active renderers at the same time, changing renderers on the fly, and more
important, having no renderer at all (useful for converters, or when you
want to do your own renderer).

And in case you are still wondering, the libcucul acronym has "Unicode"

because I want to support at least a subset of Unicode. There are awesome
glyphs in it, including the ones inherited from Codepage 437 such as
"gray 25%" that are used in DOS and Win32 ANSI art.

Location:
libcaca/trunk/examples
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • libcaca/trunk/examples

    • Property svn:ignore
      •  

        old new  
        33.libs
        44.deps
        5 cacademo
        6 cacademo.exe
        75caca-spritedit
        86caca-spritedit.exe
  • libcaca/trunk/examples/Makefile.am

    r475 r524  
    55EXTRA_DIST = caca.txt
    66
    7 bin_PROGRAMS = cacademo cacafire cacaball cacaplas cacaview cacamoir
    8 
    9 cacademo_SOURCES = demo.c
    10 cacademo_LDADD = ../src/libcaca.la @CACA_LIBS@ @MATH_LIBS@
    11 cacademo_CPPFLAGS = -I$(top_srcdir)/src -DDATADIR=\"$(pkgdatadir)\"
     7bin_PROGRAMS = cacafire cacaball cacaplas cacaview cacamoir
    128
    139cacafire_SOURCES = aafire.c
  • libcaca/trunk/examples/aafire.c

    r514 r524  
    3838#define MAXTABLE (256*5)
    3939#ifdef LIBCACA
     40static cucul_t *qq;
     41static caca_t *kk;
    4042static int XSIZ, YSIZ;
    41 static struct caca_bitmap *caca_bitmap;
     43static struct cucul_bitmap *cucul_bitmap;
    4244static char *bitmap;
    4345static int pause = 0;
     
    9799
    98100#ifdef LIBCACA
    99   if (caca_init())
     101  qq = cucul_init();
     102  if (!qq)
     103    {
     104      printf ("Failed to initialize libcucul\n");
     105      exit (1);
     106    }
     107  kk = caca_attach(qq);
     108  if (!kk)
    100109    {
    101110      printf ("Failed to initialize libcaca\n");
    102111      exit (1);
    103112    }
    104   caca_set_delay(10000);
    105   XSIZ = caca_get_width() * 2;
    106   YSIZ = caca_get_height() * 2 - 4;
     113  caca_set_delay(kk, 10000);
     114  XSIZ = cucul_get_width(qq) * 2;
     115  YSIZ = cucul_get_height(qq) * 2 - 4;
    107116#else
    108117  context = aa_autoinit (&aa_defparams);
     
    130139
    131140#ifdef LIBCACA
    132   caca_bitmap = caca_create_bitmap(8, XSIZ, YSIZ - 2, XSIZ, 0, 0, 0, 0);
    133   caca_set_bitmap_palette(caca_bitmap, r, g, b, a);
    134   bitmap = malloc(4 * caca_get_width() * caca_get_height() * sizeof(char));
    135   memset(bitmap, 0, 4 * caca_get_width() * caca_get_height());
     141  cucul_bitmap = cucul_create_bitmap(qq, 8, XSIZ, YSIZ - 2, XSIZ, 0, 0, 0, 0);
     142  cucul_set_bitmap_palette(qq, cucul_bitmap, r, g, b, a);
     143  bitmap = malloc(4 * cucul_get_width(qq) * cucul_get_height(qq) * sizeof(char));
     144  memset(bitmap, 0, 4 * cucul_get_width(qq) * cucul_get_height(qq));
    136145#else
    137146  aa_hidecursor (context);
     
    142151{
    143152#ifdef LIBCACA
    144   caca_end();
     153  caca_detach(kk);
     154  cucul_end(qq);
    145155#else
    146156  aa_close (context);
     
    224234#ifdef LIBCACA
    225235paused:
    226   caca_draw_bitmap(0, 0, caca_get_width() - 1, caca_get_height() - 1,
    227                    caca_bitmap, bitmap);
    228   caca_refresh();
     236  cucul_draw_bitmap(qq, 0, 0,
     237                    cucul_get_width(qq) - 1, cucul_get_height(qq) - 1,
     238                    cucul_bitmap, bitmap);
     239  caca_refresh(kk);
    229240  /*XSIZ = caca_get_width() * 2;
    230241  YSIZ = caca_get_height() * 2 - 4;*/
     
    249260    {
    250261#ifdef LIBCACA
    251       switch (caca_get_event(CACA_EVENT_KEY_PRESS))
     262      switch (caca_get_event(kk, CACA_EVENT_KEY_PRESS))
    252263        {
    253264          case CACA_EVENT_KEY_PRESS | CACA_KEY_ESCAPE: return;
  • libcaca/trunk/examples/cacaball.c

    r522 r524  
    2323#endif
    2424
     25#include "cucul.h"
    2526#include "caca.h"
    2627
     
    4344int main(int argc, char **argv)
    4445{
     46    cucul_t *qq; caca_t *kk;
    4547    unsigned int r[256], g[256], b[256], a[256];
    4648    float d[METABALLS], di[METABALLS], dj[METABALLS], dk[METABALLS];
    4749    unsigned int x[METABALLS], y[METABALLS];
    48     struct caca_bitmap *caca_bitmap;
     50    struct cucul_bitmap *cucul_bitmap;
    4951    float i = 10.0, j = 17.0, k = 11.0;
    5052    int p, frame = 0, pause = 0;
    5153
    52     if(caca_init())
     54    qq = cucul_init();
     55    if(!qq)
    5356        return 1;
    54 
    55     caca_set_delay(20000);
     57    kk = caca_attach(qq);
     58    if(!kk)
     59        return 1;
     60
     61    caca_set_delay(kk, 20000);
    5662
    5763    /* Make the palette eatable by libcaca */
     
    6066    r[255] = g[255] = b[255] = 0xfff;
    6167
    62     /* Create a libcaca bitmap smaller than our pixel buffer, so that we
     68    /* Create a libcucul bitmap smaller than our pixel buffer, so that we
    6369     * display only the interesting part of it */
    64     caca_bitmap = caca_create_bitmap(8, XSIZ - METASIZE, YSIZ - METASIZE,
    65                                      XSIZ, 0, 0, 0, 0);
     70    cucul_bitmap = cucul_create_bitmap(qq, 8, XSIZ - METASIZE, YSIZ - METASIZE,
     71                                       XSIZ, 0, 0, 0, 0);
    6672
    6773    /* Generate ball sprite */
     
    7076    for(p = 0; p < METABALLS; p++)
    7177    {
    72         d[p] = caca_rand(0, 100);
    73         di[p] = (float)caca_rand(500, 4000) / 6000.0;
    74         dj[p] = (float)caca_rand(500, 4000) / 6000.0;
    75         dk[p] = (float)caca_rand(500, 4000) / 6000.0;
     78        d[p] = cucul_rand(0, 100);
     79        di[p] = (float)cucul_rand(500, 4000) / 6000.0;
     80        dj[p] = (float)cucul_rand(500, 4000) / 6000.0;
     81        dk[p] = (float)cucul_rand(500, 4000) / 6000.0;
    7682    }
    7783
     
    7985    for(;;)
    8086    {
    81         switch(caca_get_event(CACA_EVENT_KEY_PRESS))
     87        switch(caca_get_event(kk, CACA_EVENT_KEY_PRESS))
    8288        {
    8389            case CACA_EVENT_KEY_PRESS | CACA_KEY_ESCAPE: goto end;
     
    110116
    111117        /* Set the palette */
    112         caca_set_bitmap_palette(caca_bitmap, r, g, b, a);
     118        cucul_set_bitmap_palette(qq, cucul_bitmap, r, g, b, a);
    113119
    114120        /* Silly paths for our balls */
     
    135141
    136142paused:
    137         /* Draw our virtual buffer to screen, letting libcaca resize it */
    138         caca_draw_bitmap(0, 0, caca_get_width() - 1, caca_get_height() - 1,
    139                          caca_bitmap, pixels + (METASIZE / 2) * (1 + XSIZ));
    140         caca_refresh();
     143        /* Draw our virtual buffer to screen, letting libcucul resize it */
     144        cucul_draw_bitmap(qq, 0, 0,
     145                          cucul_get_width(qq) - 1, cucul_get_height(qq) - 1,
     146                          cucul_bitmap, pixels + (METASIZE / 2) * (1 + XSIZ));
     147        caca_refresh(kk);
    141148    }
    142149
    143150    /* End, bye folks */
    144151end:
    145     caca_free_bitmap(caca_bitmap);
    146     caca_end();
     152    cucul_free_bitmap(qq, cucul_bitmap);
     153    caca_detach(kk);
     154    cucul_end(qq);
    147155
    148156    return 0;
  • libcaca/trunk/examples/cacamoir.c

    r522 r524  
    1717#include <string.h>
    1818
     19#include "cucul.h"
    1920#include "caca.h"
    2021
     
    3536int main (int argc, char **argv)
    3637{
     38    cucul_t *qq; caca_t *kk;
    3739    unsigned int red[256], green[256], blue[256], alpha[256];
    38     struct caca_bitmap *bitmap;
     40    struct cucul_bitmap *bitmap;
    3941    int i, x, y, frame = 0, pause = 0;
    4042
    41     if(caca_init() < 0)
     43    qq = cucul_init();
     44    if(!qq)
     45        return 1;
     46    kk = caca_attach(qq);
     47    if(!kk)
    4248        return 1;
    4349
    44     caca_set_delay(20000);
     50    caca_set_delay(kk, 20000);
    4551
    4652    /* Fill various tables */
     
    5561        draw_disc(i, (i / DISCTHICKNESS) % 2);
    5662
    57     /* Create a libcaca bitmap */
    58     bitmap = caca_create_bitmap(8, XSIZ, YSIZ, XSIZ, 0, 0, 0, 0);
     63    /* Create a libcucul bitmap */
     64    bitmap = cucul_create_bitmap(qq, 8, XSIZ, YSIZ, XSIZ, 0, 0, 0, 0);
    5965
    6066    /* Main loop */
    6167    for(;;)
    6268    {
    63         switch(caca_get_event(CACA_EVENT_KEY_PRESS))
     69        switch(caca_get_event(kk, CACA_EVENT_KEY_PRESS))
    6470        {
    6571            case CACA_EVENT_KEY_PRESS | CACA_KEY_ESCAPE: goto end;
     
    8187        blue[1] = 0.5 * (1 + cos(0.05 * frame + 5.0)) * 0xfff;
    8288
    83         caca_set_bitmap_palette(bitmap, red, green, blue, alpha);
     89        cucul_set_bitmap_palette(qq, bitmap, red, green, blue, alpha);
    8490
    8591        /* Draw circles */
     
    95101
    96102paused:
    97         caca_draw_bitmap(0, 0, caca_get_width() - 1, caca_get_height() - 1,
    98                          bitmap, screen);
    99         caca_refresh();
     103        cucul_draw_bitmap(qq, 0, 0,
     104                          cucul_get_width(qq) - 1, cucul_get_height(qq) - 1,
     105                          bitmap, screen);
     106        caca_refresh(kk);
    100107    }
    101108
    102109end:
    103     caca_free_bitmap(bitmap);
    104     caca_end();
     110    cucul_free_bitmap(qq, bitmap);
     111    caca_detach(kk);
     112    cucul_end(qq);
    105113
    106114    return 0;
  • libcaca/trunk/examples/cacaplas.c

    r522 r524  
    2121#endif
    2222
     23#include "cucul.h"
    2324#include "caca.h"
    2425
     
    3839int main (int argc, char **argv)
    3940{
     41    cucul_t *qq; caca_t *kk;
    4042    unsigned int red[256], green[256], blue[256], alpha[256];
    4143    double r[3], R[6];
    42     struct caca_bitmap *bitmap;
     44    struct cucul_bitmap *bitmap;
    4345    int i, x, y, frame = 0, pause = 0;
    4446
    45     if(caca_init() < 0)
     47    qq = cucul_init();
     48    if(!qq)
     49        return 1;
     50    kk = caca_attach(qq);
     51    if(!kk)
    4652        return 1;
    4753
    48     caca_set_delay(20000);
     54    caca_set_delay(kk, 20000);
    4955
    5056    /* Fill various tables */
     
    5359
    5460    for(i = 0; i < 3; i++)
    55         r[i] = (double)(caca_rand(1, 1000)) / 60000 * M_PI;
     61        r[i] = (double)(cucul_rand(1, 1000)) / 60000 * M_PI;
    5662
    5763    for(i = 0; i < 6; i++)
    58         R[i] = (double)(caca_rand(1, 1000)) / 10000;
     64        R[i] = (double)(cucul_rand(1, 1000)) / 10000;
    5965
    6066    for(y = 0 ; y < TABLEY ; y++)
     
    6874    }
    6975
    70     /* Create a libcaca bitmap */
    71     bitmap = caca_create_bitmap(8, XSIZ, YSIZ, XSIZ, 0, 0, 0, 0);
     76    /* Create a libcucul bitmap */
     77    bitmap = cucul_create_bitmap(qq, 8, XSIZ, YSIZ, XSIZ, 0, 0, 0, 0);
    7278
    7379    /* Main loop */
    7480    for(;;)
    7581    {
    76         switch(caca_get_event(CACA_EVENT_KEY_PRESS))
     82        switch(caca_get_event(kk, CACA_EVENT_KEY_PRESS))
    7783        {
    7884            case CACA_EVENT_KEY_PRESS | CACA_KEY_ESCAPE: goto end;
     
    9399
    94100        /* Set the palette */
    95         caca_set_bitmap_palette(bitmap, red, green, blue, alpha);
     101        cucul_set_bitmap_palette(qq, bitmap, red, green, blue, alpha);
    96102
    97103        do_plasma(screen,
     
    105111
    106112paused:
    107         caca_draw_bitmap(0, 0, caca_get_width() - 1, caca_get_height() - 1,
    108                          bitmap, screen);
    109         caca_refresh();
     113        cucul_draw_bitmap(qq, 0, 0,
     114                          cucul_get_width(qq) - 1, cucul_get_height(qq) - 1,
     115                          bitmap, screen);
     116        caca_refresh(kk);
    110117    }
    111118
    112119end:
    113     caca_free_bitmap(bitmap);
    114     caca_end();
     120    cucul_free_bitmap(qq, bitmap);
     121    caca_detach(kk);
     122    cucul_end(qq);
    115123
    116124    return 0;
  • libcaca/trunk/examples/cacaview.c

    r522 r524  
    2828#endif
    2929
     30#include "cucul.h"
    3031#include "caca.h"
    3132
     
    4142#define ZOOM_MAX 50
    4243#define PAD_STEP 0.15
     44
     45/* libcucul/libcaca contexts */
     46cucul_t *qq; caca_t *kk;
    4347
    4448/* Local functions */
     
    6064#endif
    6165char *pixels = NULL;
    62 struct caca_bitmap *bitmap = NULL;
     66struct cucul_bitmap *bitmap = NULL;
    6367unsigned int w, h, depth, bpp, rmask, gmask, bmask, amask;
    6468#if !defined(HAVE_IMLIB2_H)
     
    7983    int i;
    8084
    81     /* Initialise libcaca */
    82     if(caca_init())
     85    /* Initialise libcucul */
     86    qq = cucul_init();
     87    if(!qq)
     88    {
     89        fprintf(stderr, "%s: unable to initialise libcucul\n", argv[0]);
     90        return 1;
     91    }
     92
     93    kk = caca_attach(qq);
     94    if(!kk)
    8395    {
    8496        fprintf(stderr, "%s: unable to initialise libcaca\n", argv[0]);
     
    8799
    88100    /* Set the window title */
    89     caca_set_window_title("cacaview");
    90 
    91     ww = caca_get_width();
    92     wh = caca_get_height();
     101    caca_set_window_title(kk, "cacaview");
     102
     103    ww = cucul_get_width(qq);
     104    wh = cucul_get_height(qq);
    93105
    94106    /* Fill the zoom table */
     
    128140
    129141        if(update)
    130             event = caca_get_event(event_mask);
     142            event = caca_get_event(kk, event_mask);
    131143        else
    132             event = caca_wait_event(event_mask);
     144            event = caca_wait_event(kk, event_mask);
    133145
    134146        while(event)
     
    166178                break;
    167179            case 'b':
    168                 i = 1 + caca_get_feature(CACA_BACKGROUND);
    169                 if(i > CACA_BACKGROUND_MAX) i = CACA_BACKGROUND_MIN;
    170                 caca_set_feature(i);
     180                i = 1 + cucul_get_feature(qq, CUCUL_BACKGROUND);
     181                if(i > CUCUL_BACKGROUND_MAX) i = CUCUL_BACKGROUND_MIN;
     182                cucul_set_feature(qq, i);
    171183                new_status = STATUS_BACKGROUND;
    172184                update = 1;
    173185                break;
    174186            case 'B':
    175                 i = -1 + caca_get_feature(CACA_BACKGROUND);
    176                 if(i < CACA_BACKGROUND_MIN) i = CACA_BACKGROUND_MAX;
    177                 caca_set_feature(i);
     187                i = -1 + cucul_get_feature(qq, CUCUL_BACKGROUND);
     188                if(i < CUCUL_BACKGROUND_MIN) i = CUCUL_BACKGROUND_MAX;
     189                cucul_set_feature(qq, i);
    178190                new_status = STATUS_BACKGROUND;
    179191                update = 1;
    180192                break;
    181193            case 'a':
    182                 i = 1 + caca_get_feature(CACA_ANTIALIASING);
    183                 if(i > CACA_ANTIALIASING_MAX) i = CACA_ANTIALIASING_MIN;
    184                 caca_set_feature(i);
     194                i = 1 + cucul_get_feature(qq, CUCUL_ANTIALIASING);
     195                if(i > CUCUL_ANTIALIASING_MAX) i = CUCUL_ANTIALIASING_MIN;
     196                cucul_set_feature(qq, i);
    185197                new_status = STATUS_ANTIALIASING;
    186198                update = 1;
    187199                break;
    188200            case 'A':
    189                 i = -1 + caca_get_feature(CACA_ANTIALIASING);
    190                 if(i < CACA_ANTIALIASING_MIN) i = CACA_ANTIALIASING_MAX;
    191                 caca_set_feature(i);
     201                i = -1 + cucul_get_feature(qq, CUCUL_ANTIALIASING);
     202                if(i < CUCUL_ANTIALIASING_MIN) i = CUCUL_ANTIALIASING_MAX;
     203                cucul_set_feature(qq, i);
    192204                new_status = STATUS_ANTIALIASING;
    193205                update = 1;
    194206                break;
    195207            case 'd':
    196                 i = 1 + caca_get_feature(CACA_DITHERING);
    197                 if(i > CACA_DITHERING_MAX) i = CACA_DITHERING_MIN;
    198                 caca_set_feature(i);
     208                i = 1 + cucul_get_feature(qq, CUCUL_DITHERING);
     209                if(i > CUCUL_DITHERING_MAX) i = CUCUL_DITHERING_MIN;
     210                cucul_set_feature(qq, i);
    199211                new_status = STATUS_DITHERING;
    200212                update = 1;
    201213                break;
    202214            case 'D':
    203                 i = -1 + caca_get_feature(CACA_DITHERING);
    204                 if(i < CACA_DITHERING_MIN) i = CACA_DITHERING_MAX;
    205                 caca_set_feature(i);
     215                i = -1 + cucul_get_feature(qq, CUCUL_DITHERING);
     216                if(i < CUCUL_DITHERING_MIN) i = CUCUL_DITHERING_MAX;
     217                cucul_set_feature(qq, i);
    206218                new_status = STATUS_DITHERING;
    207219                update = 1;
     
    259271            else if(event == CACA_EVENT_RESIZE)
    260272            {
    261                 caca_refresh();
    262                 ww = caca_get_width();
    263                 wh = caca_get_height();
     273                caca_refresh(kk);
     274                ww = cucul_get_width(qq);
     275                wh = cucul_get_height(qq);
    264276                update = 1;
    265277                set_zoom(zoom);
     
    272284                help = new_help;
    273285
    274             event = caca_get_event(CACA_EVENT_KEY_PRESS);
     286            event = caca_get_event(kk, CACA_EVENT_KEY_PRESS);
    275287        }
    276288
     
    287299            sprintf(buffer, " Loading `%s'... ", list[current]);
    288300            buffer[ww] = '\0';
    289             caca_set_color(CACA_COLOR_WHITE, CACA_COLOR_BLUE);
    290             caca_putstr((ww - strlen(buffer)) / 2, wh / 2, buffer);
    291             caca_refresh();
    292             ww = caca_get_width();
    293             wh = caca_get_height();
     301            cucul_set_color(qq, CUCUL_COLOR_WHITE, CUCUL_COLOR_BLUE);
     302            cucul_putstr(qq, (ww - strlen(buffer)) / 2, wh / 2, buffer);
     303            caca_refresh(kk);
     304            ww = cucul_get_width(qq);
     305            wh = cucul_get_height(qq);
    294306
    295307            unload_image();
     
    305317        }
    306318
    307         caca_clear();
     319        cucul_clear(qq);
    308320
    309321        if(!items)
    310322        {
    311             caca_set_color(CACA_COLOR_WHITE, CACA_COLOR_BLUE);
    312             caca_printf(ww / 2 - 5, wh / 2, " No image. ");
     323            cucul_set_color(qq, CUCUL_COLOR_WHITE, CUCUL_COLOR_BLUE);
     324            cucul_printf(qq, ww / 2 - 5, wh / 2, " No image. ");
    313325        }
    314326        else if(!pixels)
     
    329341            sprintf(buffer, ERROR_STRING, list[current]);
    330342            buffer[ww] = '\0';
    331             caca_set_color(CACA_COLOR_WHITE, CACA_COLOR_BLUE);
    332             caca_putstr((ww - strlen(buffer)) / 2, wh / 2, buffer);
     343            cucul_set_color(qq, CUCUL_COLOR_WHITE, CUCUL_COLOR_BLUE);
     344            cucul_putstr(qq, (ww - strlen(buffer)) / 2, wh / 2, buffer);
    333345            free(buffer);
    334346        }
     
    349361                          y + height * (1.0 + yfactor) / 2);
    350362
    351             caca_draw_bitmap(ww * (1.0 - xfactor) * xdelta,
    352                              y + height * (1.0 - yfactor) * ydelta,
    353                              ww * (xdelta + (1.0 - xdelta) * xfactor),
    354                              y + height * (ydelta + (1.0 - ydelta) * yfactor),
    355                              bitmap, pixels);
     363            cucul_draw_bitmap(qq, ww * (1.0 - xfactor) * xdelta,
     364                              y + height * (1.0 - yfactor) * ydelta,
     365                              ww * (xdelta + (1.0 - xdelta) * xfactor),
     366                              y + height * (ydelta + (1.0 - ydelta) * yfactor),
     367                              bitmap, pixels);
    356368        }
    357369
     
    360372            print_status();
    361373
    362             caca_set_color(CACA_COLOR_LIGHTGRAY, CACA_COLOR_BLACK);
     374            cucul_set_color(qq, CUCUL_COLOR_LIGHTGRAY, CUCUL_COLOR_BLACK);
    363375            switch(status)
    364376            {
    365377                case STATUS_ANTIALIASING:
    366                     caca_printf(0, wh - 1, "Antialiasing: %s",
    367                   caca_get_feature_name(caca_get_feature(CACA_ANTIALIASING)));
     378                    cucul_printf(qq, 0, wh - 1, "Antialiasing: %s",
     379                  cucul_get_feature_name(cucul_get_feature(qq, CUCUL_ANTIALIASING)));
    368380                    break;
    369381                case STATUS_DITHERING:
    370                     caca_printf(0, wh - 1, "Dithering: %s",
    371                   caca_get_feature_name(caca_get_feature(CACA_DITHERING)));
     382                    cucul_printf(qq, 0, wh - 1, "Dithering: %s",
     383                  cucul_get_feature_name(cucul_get_feature(qq, CUCUL_DITHERING)));
    372384                    break;
    373385                case STATUS_BACKGROUND:
    374                     caca_printf(0, wh - 1, "Background: %s",
    375                   caca_get_feature_name(caca_get_feature(CACA_BACKGROUND)));
     386                    cucul_printf(qq, 0, wh - 1, "Background: %s",
     387                  cucul_get_feature_name(cucul_get_feature(qq, CUCUL_BACKGROUND)));
    376388                    break;
    377389            }
     
    383395        }
    384396
    385         caca_refresh();
     397        caca_refresh(kk);
    386398        update = 0;
    387399    }
     
    389401    /* Clean up */
    390402    unload_image();
    391     caca_end();
     403    caca_detach(kk);
     404    cucul_end(qq);
    392405
    393406    return 0;
     
    396409static void print_status(void)
    397410{
    398     caca_set_color(CACA_COLOR_WHITE, CACA_COLOR_BLUE);
    399     caca_draw_line(0, 0, ww - 1, 0, ' ');
    400     caca_draw_line(0, wh - 2, ww - 1, wh - 2, '-');
    401     caca_putstr(0, 0, "q:Quit  np:Next/Prev  +-x:Zoom  "
    402                       "hjkl:Move  d:Dithering  a:Antialias");
    403     caca_putstr(ww - strlen("?:Help"), 0, "?:Help");
    404     caca_printf(3, wh - 2, "cacaview %s", VERSION);
    405     caca_printf(ww - 14, wh - 2, "(zoom: %s%i)", zoom > 0 ? "+" : "", zoom);
    406 
    407     caca_set_color(CACA_COLOR_LIGHTGRAY, CACA_COLOR_BLACK);
    408     caca_draw_line(0, wh - 1, ww - 1, wh - 1, ' ');
     411    cucul_set_color(qq, CUCUL_COLOR_WHITE, CUCUL_COLOR_BLUE);
     412    cucul_draw_line(qq, 0, 0, ww - 1, 0, ' ');
     413    cucul_draw_line(qq, 0, wh - 2, ww - 1, wh - 2, '-');
     414    cucul_putstr(qq, 0, 0, "q:Quit  np:Next/Prev  +-x:Zoom  "
     415                           "hjkl:Move  d:Dithering  a:Antialias");
     416    cucul_putstr(qq, ww - strlen("?:Help"), 0, "?:Help");
     417    cucul_printf(qq, 3, wh - 2, "cacaview %s", VERSION);
     418    cucul_printf(qq, ww - 14, wh - 2, "(zoom: %s%i)", zoom > 0 ? "+" : "", zoom);
     419
     420    cucul_set_color(qq, CUCUL_COLOR_LIGHTGRAY, CUCUL_COLOR_BLACK);
     421    cucul_draw_line(qq, 0, wh - 1, ww - 1, wh - 1, ' ');
    409422}
    410423
     
    431444    int i;
    432445
    433     caca_set_color(CACA_COLOR_WHITE, CACA_COLOR_BLUE);
     446    cucul_set_color(qq, CUCUL_COLOR_WHITE, CUCUL_COLOR_BLUE);
    434447
    435448    for(i = 0; help[i]; i++)
    436         caca_putstr(x, y + i, help[i]);
     449        cucul_putstr(qq, x, y + i, help[i]);
    437450}
    438451
     
    446459    if(zoom < -ZOOM_MAX) zoom = -ZOOM_MAX;
    447460
    448     ww = caca_get_width();
     461    ww = cucul_get_width(qq);
    449462    height = fullscreen ? wh : wh - 3;
    450463
    451464    xfactor = (zoom < 0) ? 1.0 / zoomtab[-zoom] : zoomtab[zoom];
    452465    yfactor = xfactor * ww / height * h / w
    453                * caca_get_height() / caca_get_width()
    454                * caca_get_window_width() / caca_get_window_height();
     466               * cucul_get_height(qq) / cucul_get_width(qq)
     467               * caca_get_window_width(kk) / caca_get_window_height(kk);
    455468
    456469    if(yfactor > xfactor)
     
    475488#endif
    476489    if(bitmap)
    477         caca_free_bitmap(bitmap);
     490        cucul_free_bitmap(qq, bitmap);
    478491    bitmap = NULL;
    479492}
     
    499512    depth = 4;
    500513
    501     /* Create the libcaca bitmap */
    502     bitmap = caca_create_bitmap(bpp, w, h, depth * w,
    503                                 rmask, gmask, bmask, amask);
     514    /* Create the libcucul bitmap */
     515    bitmap = cucul_create_bitmap(qq, bpp, w, h, depth * w,
     516                                 rmask, gmask, bmask, amask);
    504517    if(!bitmap)
    505518    {
     
    686699    int xn, yn;
    687700
    688     if(x2 + 1 > (int)caca_get_width()) x2 = caca_get_width() - 1;
    689     if(y2 + 1 > (int)caca_get_height()) y2 = caca_get_height() - 1;
     701    if(x2 + 1 > (int)cucul_get_width(qq)) x2 = cucul_get_width(qq) - 1;
     702    if(y2 + 1 > (int)cucul_get_height(qq)) y2 = cucul_get_height(qq) - 1;
    690703
    691704    for(yn = y1 > 0 ? y1 : 0; yn <= y2; yn++)
     
    693706    {
    694707        if((((xn - x1) / 5) ^ ((yn - y1) / 3)) & 1)
    695             caca_set_color(CACA_COLOR_LIGHTGRAY, CACA_COLOR_DARKGRAY);
     708            cucul_set_color(qq, CUCUL_COLOR_LIGHTGRAY, CUCUL_COLOR_DARKGRAY);
    696709        else
    697             caca_set_color(CACA_COLOR_DARKGRAY, CACA_COLOR_LIGHTGRAY);
    698         caca_putchar(xn, yn, ' ');
     710            cucul_set_color(qq, CUCUL_COLOR_DARKGRAY, CUCUL_COLOR_LIGHTGRAY);
     711        cucul_putchar(qq, xn, yn, ' ');
    699712    }
    700713}
Note: See TracChangeset for help on using the changeset viewer.