Changeset 681 for libcaca/trunk/caca/driver_gl.c
- Timestamp:
- Mar 23, 2006, 7:36:59 PM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
libcaca/trunk/caca/driver_gl.c
r672 r681 309 309 } 310 310 311 static unsigned int gl_get_event(caca_t *kk) 312 { 313 unsigned int event = 0; 314 311 static int gl_get_event(caca_t *kk, struct caca_event *ev) 312 { 315 313 glutMainLoopEvent(); 316 314 317 315 if(kk->resize.resized) 318 return CACA_EVENT_RESIZE; 316 { 317 ev->type = CACA_EVENT_RESIZE; 318 ev->data.resize.w = kk->qq->width; 319 ev->data.resize.h = kk->qq->height; 320 return 1; 321 } 319 322 320 323 if(kk->drv.p->mouse_changed) 321 324 { 325 ev->type = CACA_EVENT_MOUSE_MOTION; 326 ev->data.mouse.x = kk->mouse.x; 327 ev->data.mouse.y = kk->mouse.y; 328 kk->drv.p->mouse_changed = 0; 329 322 330 if(kk->drv.p->mouse_clicked) 323 331 { 324 event |= CACA_EVENT_MOUSE_PRESS | kk->drv.p->mouse_button; 332 _push_event(kk, ev); 333 ev->type = CACA_EVENT_MOUSE_PRESS; 334 ev->data.mouse.button = kk->drv.p->mouse_button; 325 335 kk->drv.p->mouse_clicked = 0; 326 336 } 327 kk->mouse.x = kk->drv.p->mouse_x; 328 kk->mouse.y = kk->drv.p->mouse_y; 329 event |= CACA_EVENT_MOUSE_MOTION | (kk->mouse.x << 12) | kk->mouse.y; 330 kk->drv.p->mouse_changed = 0; 337 338 return 1; 331 339 } 332 340 333 341 if(kk->drv.p->key != 0) 334 342 { 335 event |= CACA_EVENT_KEY_PRESS; 336 event |= kk->drv.p->key; 343 ev->type = CACA_EVENT_KEY_PRESS; 344 ev->data.key.c = kk->drv.p->key; 345 ev->data.key.ucs4 = (uint32_t)kk->drv.p->key; 346 ev->data.key.utf8[0] = kk->drv.p->key; 347 ev->data.key.utf8[1] = '\0'; 337 348 kk->drv.p->key = 0; 338 return event;349 return 1; 339 350 } 340 351 341 352 if(kk->drv.p->special_key != 0) 342 353 { 343 event |= CACA_EVENT_KEY_PRESS;344 345 354 switch(kk->drv.p->special_key) 346 355 { 347 case GLUT_KEY_F1 : kk->drv.p->special_key = 0; return event | CACA_KEY_F1;348 case GLUT_KEY_F2 : kk->drv.p->special_key = 0; return event | CACA_KEY_F2;349 case GLUT_KEY_F3 : kk->drv.p->special_key = 0; return event | CACA_KEY_F3;350 case GLUT_KEY_F4 : kk->drv.p->special_key = 0; return event | CACA_KEY_F4;351 case GLUT_KEY_F5 : kk->drv.p->special_key = 0; return event | CACA_KEY_F5;352 case GLUT_KEY_F6 : kk->drv.p->special_key = 0; return event | CACA_KEY_F6;353 case GLUT_KEY_F7 : kk->drv.p->special_key = 0; return event | CACA_KEY_F7;354 case GLUT_KEY_F8 : kk->drv.p->special_key = 0; return event | CACA_KEY_F8;355 case GLUT_KEY_F9 : kk->drv.p->special_key = 0; return event | CACA_KEY_F9;356 case GLUT_KEY_F10: kk->drv.p->special_key = 0; return event | CACA_KEY_F10;357 case GLUT_KEY_F11: kk->drv.p->special_key = 0; return event | CACA_KEY_F11;358 case GLUT_KEY_F12: kk->drv.p->special_key = 0; return event | CACA_KEY_F12;359 case GLUT_KEY_LEFT : kk->drv.p->special_key = 0; return event | CACA_KEY_LEFT;360 case GLUT_KEY_RIGHT: kk->drv.p->special_key = 0; return event | CACA_KEY_RIGHT;361 case GLUT_KEY_UP : kk->drv.p->special_key = 0; return event | CACA_KEY_UP;362 case GLUT_KEY_DOWN : kk->drv.p->special_key = 0; return event | CACA_KEY_DOWN;363 default: return CACA_EVENT_NONE;356 case GLUT_KEY_F1 : ev->data.key.c = CACA_KEY_F1; break; 357 case GLUT_KEY_F2 : ev->data.key.c = CACA_KEY_F2; break; 358 case GLUT_KEY_F3 : ev->data.key.c = CACA_KEY_F3; break; 359 case GLUT_KEY_F4 : ev->data.key.c = CACA_KEY_F4; break; 360 case GLUT_KEY_F5 : ev->data.key.c = CACA_KEY_F5; break; 361 case GLUT_KEY_F6 : ev->data.key.c = CACA_KEY_F6; break; 362 case GLUT_KEY_F7 : ev->data.key.c = CACA_KEY_F7; break; 363 case GLUT_KEY_F8 : ev->data.key.c = CACA_KEY_F8; break; 364 case GLUT_KEY_F9 : ev->data.key.c = CACA_KEY_F9; break; 365 case GLUT_KEY_F10: ev->data.key.c = CACA_KEY_F10; break; 366 case GLUT_KEY_F11: ev->data.key.c = CACA_KEY_F11; break; 367 case GLUT_KEY_F12: ev->data.key.c = CACA_KEY_F12; break; 368 case GLUT_KEY_LEFT : ev->data.key.c = CACA_KEY_LEFT; break; 369 case GLUT_KEY_RIGHT: ev->data.key.c = CACA_KEY_RIGHT; break; 370 case GLUT_KEY_UP : ev->data.key.c = CACA_KEY_UP; break; 371 case GLUT_KEY_DOWN : ev->data.key.c = CACA_KEY_DOWN; break; 372 default: ev->type = CACA_EVENT_NONE; return 0; 364 373 } 365 } 366 return CACA_EVENT_NONE; 374 375 ev->type = CACA_EVENT_KEY_PRESS; 376 ev->data.key.ucs4 = 0; 377 ev->data.key.utf8[0] = '\0'; 378 379 kk->drv.p->special_key = 0; 380 return 1; 381 } 382 383 ev->type = CACA_EVENT_NONE; 384 return 0; 367 385 } 368 386
Note: See TracChangeset
for help on using the changeset viewer.