Ignore:
Timestamp:
Apr 18, 2006, 5:11:25 PM (15 years ago)
Author:
Sam Hocevar
Message:
  • Renamed caca_t into caca_display_t.
  • Renamed canvas handle variables from "c" to "cv". Eh ouais mon gros.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • libcaca/trunk/caca/driver_slang.c

    r810 r811  
    107107#if defined(HAVE_SIGNAL)
    108108static RETSIGTYPE sigwinch_handler(int);
    109 static caca_t *sigwinch_kk; /* FIXME: we ought to get rid of this */
     109static caca_display_t *sigwinch_d; /* FIXME: we ought to get rid of this */
    110110#endif
    111111#if defined(HAVE_GETENV) && defined(HAVE_PUTENV)
     
    113113#endif
    114114
    115 static int slang_init_graphics(caca_t *kk)
     115static int slang_init_graphics(caca_display_t *dp)
    116116{
    117117#if defined(HAVE_GETENV) && defined(HAVE_PUTENV)
     
    120120
    121121#if defined(HAVE_SIGNAL)
    122     sigwinch_kk = kk;
     122    sigwinch_d = dp;
    123123    signal(SIGWINCH, sigwinch_handler);
    124124#endif
     
    165165#endif
    166166
    167     _cucul_set_size(kk->c, SLtt_Screen_Cols, SLtt_Screen_Rows);
     167    _cucul_set_size(dp->cv, SLtt_Screen_Cols, SLtt_Screen_Rows);
    168168
    169169    return 0;
    170170}
    171171
    172 static int slang_end_graphics(caca_t *kk)
     172static int slang_end_graphics(caca_display_t *dp)
    173173{
    174174    SLtt_set_mouse_mode(0, 0);
     
    180180}
    181181
    182 static int slang_set_window_title(caca_t *kk, char const *title)
     182static int slang_set_window_title(caca_display_t *dp, char const *title)
    183183{
    184184    /* FIXME */
     
    186186}
    187187
    188 static unsigned int slang_get_window_width(caca_t *kk)
     188static unsigned int slang_get_window_width(caca_display_t *dp)
    189189{
    190190    /* Fallback to a 6x10 font */
    191     return kk->c->width * 6;
    192 }
    193 
    194 static unsigned int slang_get_window_height(caca_t *kk)
     191    return dp->cv->width * 6;
     192}
     193
     194static unsigned int slang_get_window_height(caca_display_t *dp)
    195195{
    196196    /* Fallback to a 6x10 font */
    197     return kk->c->height * 10;
    198 }
    199 
    200 static void slang_display(caca_t *kk)
     197    return dp->cv->height * 10;
     198}
     199
     200static void slang_display(caca_display_t *dp)
    201201{
    202202    int x, y;
    203     uint32_t *attr = kk->c->attr;
    204     uint32_t *chars = kk->c->chars;
    205     for(y = 0; y < (int)kk->c->height; y++)
     203    uint32_t *attr = dp->cv->attr;
     204    uint32_t *chars = dp->cv->chars;
     205    for(y = 0; y < (int)dp->cv->height; y++)
    206206    {
    207207        SLsmg_gotorc(y, 0);
    208         for(x = kk->c->width; x--; )
     208        for(x = dp->cv->width; x--; )
    209209        {
    210             uint32_t c = *chars++;
     210            uint32_t ch = *chars++;
    211211
    212212#if defined(OPTIMISE_SLANG_PALETTE)
     
    219219            {
    220220                SLsmg_set_color(slang_assoc[_cucul_argb32_to_ansi8(*attr++)]);
    221                 slang_write_utf32(c);
     221                slang_write_utf32(ch);
    222222            }
    223223            else
     
    236236#else
    237237            SLsmg_set_color(_cucul_argb32_to_ansi8(*attr++));
    238             slang_write_utf32(c);
     238            slang_write_utf32(ch);
    239239#endif
    240240        }
     
    243243}
    244244
    245 static void slang_handle_resize(caca_t *kk)
     245static void slang_handle_resize(caca_display_t *dp)
    246246{
    247247    SLtt_get_screen_size();
    248     kk->resize.w = SLtt_Screen_Cols;
    249     kk->resize.h = SLtt_Screen_Rows;
    250 
    251     if(kk->resize.w != kk->c->width || kk->resize.h != kk->c->height)
     248    dp->resize.w = SLtt_Screen_Cols;
     249    dp->resize.h = SLtt_Screen_Rows;
     250
     251    if(dp->resize.w != dp->cv->width || dp->resize.h != dp->cv->height)
    252252        SLsmg_reinit_smg();
    253253}
    254254
    255 static int slang_get_event(caca_t *kk, caca_event_t *ev)
     255static int slang_get_event(caca_display_t *dp, caca_event_t *ev)
    256256{
    257257    int intkey;
     
    290290        ev->data.mouse.button = button;
    291291        ev->type = CACA_EVENT_MOUSE_PRESS;
    292         _push_event(kk, ev);
     292        _push_event(dp, ev);
    293293        ev->type = CACA_EVENT_MOUSE_RELEASE;
    294         _push_event(kk, ev);
    295 
    296         if(kk->mouse.x == x && kk->mouse.y == y)
    297             return _pop_event(kk, ev);
    298 
    299         kk->mouse.x = x;
    300         kk->mouse.y = y;
     294        _push_event(dp, ev);
     295
     296        if(dp->mouse.x == x && dp->mouse.y == y)
     297            return _pop_event(dp, ev);
     298
     299        dp->mouse.x = x;
     300        dp->mouse.y = y;
    301301
    302302        ev->type = CACA_EVENT_MOUSE_MOTION;
    303         ev->data.mouse.x = kk->mouse.x;
    304         ev->data.mouse.y = kk->mouse.y;
     303        ev->data.mouse.x = dp->mouse.x;
     304        ev->data.mouse.y = dp->mouse.y;
    305305        return 1;
    306306    }
     
    389389}
    390390
    391 static void slang_write_utf32(uint32_t c)
     391static void slang_write_utf32(uint32_t ch)
    392392{
    393393#ifdef HAVE_SLSMG_UTF8_ENABLE
     
    401401#endif
    402402
    403     if(c < 0x80)
    404     {
    405         SLsmg_write_char(c);
     403    if(ch < 0x80)
     404    {
     405        SLsmg_write_char(ch);
    406406        return;
    407407    }
    408408
    409409#ifdef HAVE_SLSMG_UTF8_ENABLE
    410     bytes = (c < 0x800) ? 2 : (c < 0x10000) ? 3 : 4;
     410    bytes = (ch < 0x800) ? 2 : (ch < 0x10000) ? 3 : 4;
    411411    buf[bytes] = '\0';
    412412    parser = buf + bytes;
     
    414414    switch(bytes)
    415415    {
    416         case 4: *--parser = (c | 0x80) & 0xbf; c >>= 6;
    417         case 3: *--parser = (c | 0x80) & 0xbf; c >>= 6;
    418         case 2: *--parser = (c | 0x80) & 0xbf; c >>= 6;
    419     }
    420     *--parser = c | mark[bytes];
     416        case 4: *--parser = (ch | 0x80) & 0xbf; ch >>= 6;
     417        case 3: *--parser = (ch | 0x80) & 0xbf; ch >>= 6;
     418        case 2: *--parser = (ch | 0x80) & 0xbf; ch >>= 6;
     419    }
     420    *--parser = ch | mark[bytes];
    421421
    422422    SLsmg_write_string(buf);
     
    429429static RETSIGTYPE sigwinch_handler(int sig)
    430430{
    431     sigwinch_kk->resize.resized = 1;
     431    sigwinch_d->resize.resized = 1;
    432432
    433433    signal(SIGWINCH, sigwinch_handler);
     
    467467 */
    468468
    469 int slang_install(caca_t *kk)
    470 {
    471     kk->drv.driver = CACA_DRIVER_SLANG;
    472 
    473     kk->drv.init_graphics = slang_init_graphics;
    474     kk->drv.end_graphics = slang_end_graphics;
    475     kk->drv.set_window_title = slang_set_window_title;
    476     kk->drv.get_window_width = slang_get_window_width;
    477     kk->drv.get_window_height = slang_get_window_height;
    478     kk->drv.display = slang_display;
    479     kk->drv.handle_resize = slang_handle_resize;
    480     kk->drv.get_event = slang_get_event;
    481     kk->drv.set_mouse = NULL;
     469int slang_install(caca_display_t *dp)
     470{
     471    dp->drv.driver = CACA_DRIVER_SLANG;
     472
     473    dp->drv.init_graphics = slang_init_graphics;
     474    dp->drv.end_graphics = slang_end_graphics;
     475    dp->drv.set_window_title = slang_set_window_title;
     476    dp->drv.get_window_width = slang_get_window_width;
     477    dp->drv.get_window_height = slang_get_window_height;
     478    dp->drv.display = slang_display;
     479    dp->drv.handle_resize = slang_handle_resize;
     480    dp->drv.get_event = slang_get_event;
     481    dp->drv.set_mouse = NULL;
    482482
    483483    return 0;
Note: See TracChangeset for help on using the changeset viewer.