Ignore:
Timestamp:
Mar 8, 2006, 10:28:41 AM (14 years ago)
Author:
Sam Hocevar
Message:
  • Split event.c into the appropriate driver_*.c files.
File:
1 edited

Legend:

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

    r540 r548  
    293293}
    294294
     295static unsigned int gl_get_event(caca_t *kk)
     296{
     297    unsigned int event = 0;
     298
     299    glutMainLoopEvent();
     300
     301    if(kk->gl.resized && !kk->resize)
     302    {
     303        kk->resize = 1;
     304        kk->gl.resized = 0;
     305        return CACA_EVENT_RESIZE;
     306    }
     307
     308    if(kk->gl.mouse_changed)
     309    {
     310        if(kk->gl.mouse_clicked)
     311        {
     312            event |= CACA_EVENT_MOUSE_PRESS | kk->gl.mouse_button;
     313            kk->gl.mouse_clicked = 0;
     314        }
     315        kk->mouse_x = kk->gl.mouse_x;
     316        kk->mouse_y = kk->gl.mouse_y;
     317        event |= CACA_EVENT_MOUSE_MOTION | (kk->mouse_x << 12) | kk->mouse_y;
     318        kk->gl.mouse_changed = 0;
     319    }
     320
     321    if(kk->gl.key != 0)
     322    {
     323        event |= CACA_EVENT_KEY_PRESS;
     324        event |= kk->gl.key;
     325        kk->gl.key = 0;
     326        return event;
     327    }
     328
     329    if(kk->gl.special_key != 0)
     330    {
     331        event |= CACA_EVENT_KEY_PRESS;
     332
     333        switch(kk->gl.special_key)
     334        {
     335            case GLUT_KEY_F1 : kk->gl.special_key = 0; return event | CACA_KEY_F1;
     336            case GLUT_KEY_F2 : kk->gl.special_key = 0; return event | CACA_KEY_F2;
     337            case GLUT_KEY_F3 : kk->gl.special_key = 0; return event | CACA_KEY_F3;
     338            case GLUT_KEY_F4 : kk->gl.special_key = 0; return event | CACA_KEY_F4;
     339            case GLUT_KEY_F5 : kk->gl.special_key = 0; return event | CACA_KEY_F5;
     340            case GLUT_KEY_F6 : kk->gl.special_key = 0; return event | CACA_KEY_F6;
     341            case GLUT_KEY_F7 : kk->gl.special_key = 0; return event | CACA_KEY_F7;
     342            case GLUT_KEY_F8 : kk->gl.special_key = 0; return event | CACA_KEY_F8;
     343            case GLUT_KEY_F9 : kk->gl.special_key = 0; return event | CACA_KEY_F9;
     344            case GLUT_KEY_F10: kk->gl.special_key = 0; return event | CACA_KEY_F10;
     345            case GLUT_KEY_F11: kk->gl.special_key = 0; return event | CACA_KEY_F11;
     346            case GLUT_KEY_F12: kk->gl.special_key = 0; return event | CACA_KEY_F12;
     347            case GLUT_KEY_LEFT : kk->gl.special_key = 0; return event | CACA_KEY_LEFT;
     348            case GLUT_KEY_RIGHT: kk->gl.special_key = 0; return event | CACA_KEY_RIGHT;
     349            case GLUT_KEY_UP   : kk->gl.special_key = 0; return event | CACA_KEY_UP;
     350            case GLUT_KEY_DOWN : kk->gl.special_key = 0; return event | CACA_KEY_DOWN;
     351            default: return CACA_EVENT_NONE;
     352        }
     353    }
     354    return CACA_EVENT_NONE;
     355}
     356
    295357/*
    296358 * XXX: following functions are local
     
    362424    kk->driver.display = gl_display;
    363425    kk->driver.handle_resize = gl_handle_resize;
     426    kk->driver.get_event = gl_get_event;
    364427}
    365428
Note: See TracChangeset for help on using the changeset viewer.