Ignore:
Timestamp:
Dec 12, 2003, 3:49:41 PM (16 years ago)
Author:
Sam Hocevar
Message:
  • src/bitmap.c: + Added antialiasing support. + Dithering, antialiasing and background mode can now be selected at

runtime.

  • src/caca.c src/caca.h: + Renamed caca_dithering into caca_feature and extended the type to

express background colour and antialiasing mode.

  • examples/demo.c: + Fixed a bug that disabled the sprite demo. + Draw solid flares.
  • examples/view.c: + Select antialiasing and background mode at runtime.
Location:
libcaca/trunk/examples
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • libcaca/trunk/examples/aafire.c

    r246 r249  
    134134  caca_set_bitmap_palette(caca_bitmap, r, g, b, a);
    135135  bitmap = malloc(XSIZ * YSIZ * sizeof(char));
    136   caca_set_dithering(CACA_DITHERING_ORDERED8);
    137136#else
    138137  aa_hidecursor (context);
  • libcaca/trunk/examples/demo.c

    r246 r249  
    132132                if(sprite)
    133133                    demo = demo_sprites;
     134                break;
    134135            case 'r':
    135136            case 'R':
     
    502503    int buffer[256*256];
    503504    int *dest;
    504     int x, y, z, t, xo, yo;
     505    int x, y, z, xo, yo;
    505506    static int i = 0;
    506507
     
    511512        for(y = 0; y < 256; y++)
    512513    {
    513         *dest++ = 0;
     514        *dest++ = 0xff000000;
    514515    }
    515516
     
    517518    xo = 128 + 48 * sin(0.02 * i);
    518519    yo = 128 + 48 * cos(0.03 * i);
    519     t = 256 * (2.0 + sin(4 + 0.017 * i)) / 3;
    520520    for(z = 0; z < 240; z++)
    521         draw_circle(buffer, xo, yo, z, 0x00ff0000,
    522                     ((255 - z) * t / 256) << 16);
     521        draw_circle(buffer, xo, yo, z, 0x00ff0000, 200 << 16);
    523522
    524523    /* green */
    525524    xo = 128 + 48 * sin(2 + 0.06 * i);
    526525    yo = 128 + 48 * cos(2 + 0.05 * i);
    527     t = 256 * (2.0 + sin(8 + 0.021 * i)) / 3;
    528526    for(z = 0; z < 240; z++)
    529         draw_circle(buffer, xo, yo, z, 0x0000ff00,
    530                     ((255 - z) * t / 256) << 8);
     527        draw_circle(buffer, xo, yo, z, 0x0000ff00, 200 << 8);
    531528
    532529    /* blue */
    533530    xo = 128 + 48 * sin(1 + 0.04 * i);
    534531    yo = 128 + 48 * cos(1 + 0.03 * i);
    535     t = 256 * (2.0 + sin(3 + 0.033 * i)) / 3;
    536532    for(z = 0; z < 240; z++)
    537         draw_circle(buffer, xo, yo, z, 0x000000ff, (255 - z) * t / 256);
     533        draw_circle(buffer, xo, yo, z, 0x000000ff, 200);
    538534
    539535    bitmap = caca_create_bitmap(32, 256, 256, 4 * 256, 0x00ff0000, 0x0000ff00, 0x000000ff, 0xff000000);
     
    548544
    549545#define POINT(X,Y) \
    550     buffer[(X) + 256 * (Y)] = (buffer[(X) + 256 * (Y)] & ~mask) | val;
     546    buffer[(X) + 256 * (Y)] = 0xff000000 | (buffer[(X) + 256 * (Y)] & ~mask) | val;
    551547
    552548    for(t = 0, dx = 0, dy = r; dx <= dy; dx++)
  • libcaca/trunk/examples/view.c

    r246 r249  
    4747{
    4848    int quit = 0, update = 1, help = 0, reload = 0, fullscreen = 0, zoom = 0;
    49     int dithering = CACA_DITHERING_ORDERED4;
    5049
    5150    char **list = NULL;
     
    109108                update = 1;
    110109                break;
     110            case CACA_EVENT_KEY_PRESS | 'b':
     111                i = 1 + caca_get_feature(CACA_BACKGROUND);
     112                if(i > CACA_BACKGROUND_MAX) i = CACA_BACKGROUND_MIN;
     113                caca_set_feature(i);
     114                update = 1;
     115                break;
     116            case CACA_EVENT_KEY_PRESS | 'B':
     117                i = -1 + caca_get_feature(CACA_BACKGROUND);
     118                if(i < CACA_BACKGROUND_MIN) i = CACA_BACKGROUND_MAX;
     119                caca_set_feature(i);
     120                update = 1;
     121                break;
     122            case CACA_EVENT_KEY_PRESS | 'a':
     123                i = 1 + caca_get_feature(CACA_ANTIALIASING);
     124                if(i > CACA_ANTIALIASING_MAX) i = CACA_ANTIALIASING_MIN;
     125                caca_set_feature(i);
     126                update = 1;
     127                break;
     128            case CACA_EVENT_KEY_PRESS | 'A':
     129                i = -1 + caca_get_feature(CACA_ANTIALIASING);
     130                if(i < CACA_ANTIALIASING_MIN) i = CACA_ANTIALIASING_MAX;
     131                caca_set_feature(i);
     132                update = 1;
     133                break;
    111134            case CACA_EVENT_KEY_PRESS | 'd':
    112                 dithering = (dithering + 1) % 5;
     135                i = 1 + caca_get_feature(CACA_DITHERING);
     136                if(i > CACA_DITHERING_MAX) i = CACA_DITHERING_MIN;
     137                caca_set_feature(i);
    113138                update = 1;
    114139                break;
    115140            case CACA_EVENT_KEY_PRESS | 'D':
    116                 dithering = (dithering + 4) % 5;
     141                i = -1 + caca_get_feature(CACA_DITHERING);
     142                if(i < CACA_DITHERING_MIN) i = CACA_DITHERING_MAX;
     143                caca_set_feature(i);
    117144                update = 1;
    118145                break;
     
    192219
    193220        caca_clear();
    194         caca_set_dithering(dithering);
    195221        caca_set_color(CACA_COLOR_WHITE, CACA_COLOR_BLUE);
    196222
     
    250276            caca_draw_line(0, 0, ww - 1, 0, ' ');
    251277            caca_draw_line(0, wh - 1, ww - 1, wh - 1, '-');
    252             caca_putstr(0, 0, "q:Quit  n/p:Next/Prev  +/-/x:Zoom  "
    253                               "h/j/k/l: Move  d:Dithering");
     278            caca_putstr(0, 0, "q:Quit  np:Next/Prev  +-x:Zoom  "
     279                              "hjkl:Move  d:Dithering  a:Antialias");
    254280            caca_putstr(ww - strlen("?:Help"), 0, "?:Help");
    255             caca_printf(3, wh - 1, "cacaview %s", VERSION);
    256             caca_printf(ww / 2 - 5, wh - 1, "(%s dithering)",
    257                         caca_get_dithering_name(dithering));
     281            caca_printf(3, wh - 1, "cacaview %s (%s, %s)", VERSION,
     282                caca_get_feature_name(caca_get_feature(CACA_DITHERING)),
     283                caca_get_feature_name(caca_get_feature(CACA_ANTIALIASING)));
    258284            caca_printf(ww - 14, wh - 1,
    259285                        "(zoom: %s%i)", zoom > 0 ? "+" : "", zoom);
     
    262288        if(help)
    263289        {
    264             caca_putstr(ww - 22, 2,  " +: zoom in          ");
    265             caca_putstr(ww - 22, 3,  " -: zoom out         ");
    266             caca_putstr(ww - 22, 4,  " x: reset zoom       ");
    267             caca_putstr(ww - 22, 5,  " ------------------- ");
    268             caca_putstr(ww - 22, 6,  " hjkl: move view     ");
    269             caca_putstr(ww - 22, 7,  " arrows: move view   ");
    270             caca_putstr(ww - 22, 8,  " ------------------- ");
    271             caca_putstr(ww - 22, 9,  " d: dithering method ");
    272             caca_putstr(ww - 22, 10, " ------------------- ");
    273             caca_putstr(ww - 22, 11, " ?: help             ");
    274             caca_putstr(ww - 22, 12, " q: quit             ");
     290            caca_putstr(ww - 22, 2,  " +: zoom in             ");
     291            caca_putstr(ww - 22, 3,  " -: zoom out            ");
     292            caca_putstr(ww - 22, 4,  " x: reset zoom          ");
     293            caca_putstr(ww - 22, 5,  " ---------------------- ");
     294            caca_putstr(ww - 22, 6,  " hjkl: move view        ");
     295            caca_putstr(ww - 22, 7,  " arrows: move view      ");
     296            caca_putstr(ww - 22, 8,  " ---------------------- ");
     297            caca_putstr(ww - 22, 9,  " a: antialiasing method ");
     298            caca_putstr(ww - 22, 9,  " d: dithering method    ");
     299            caca_putstr(ww - 22, 10, " ---------------------- ");
     300            caca_putstr(ww - 22, 11, " ?: help                ");
     301            caca_putstr(ww - 22, 12, " q: quit                ");
    275302
    276303            help = 0;
Note: See TracChangeset for help on using the changeset viewer.