ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/Deliantra-Client/Client.xs
(Generate patch)

Comparing deliantra/Deliantra-Client/Client.xs (file contents):
Revision 1.69 by root, Sun Apr 30 08:09:44 2006 UTC vs.
Revision 1.73 by root, Fri May 5 19:30:14 2006 UTC

265 SDL_UserEvent ev; 265 SDL_UserEvent ev;
266 266
267 ev.type = SDL_USEREVENT; 267 ev.type = SDL_USEREVENT;
268 ev.code = 0; 268 ev.code = 0;
269 ev.data1 = 0; 269 ev.data1 = 0;
270 ev.data2 = 0;
271
272 SDL_PushEvent ((SDL_Event *)&ev);
273}
274
275static void
276channel_finished (int channel)
277{
278 SDL_UserEvent ev;
279
280 ev.type = SDL_USEREVENT;
281 ev.code = 1;
282 ev.data1 = (void *)channel;
270 ev.data2 = 0; 283 ev.data2 = 0;
271 284
272 SDL_PushEvent ((SDL_Event *)&ev); 285 SDL_PushEvent ((SDL_Event *)&ev);
273} 286}
274 287
457 470
458 while (SDL_PollEvent (&ev)) 471 while (SDL_PollEvent (&ev))
459 { 472 {
460 HV *hv = newHV (); 473 HV *hv = newHV ();
461 hv_store (hv, "type", 4, newSViv (ev.type), 0); 474 hv_store (hv, "type", 4, newSViv (ev.type), 0);
475
462 switch (ev.type) 476 switch (ev.type)
463 { 477 {
464 case SDL_KEYDOWN: 478 case SDL_KEYDOWN:
465 case SDL_KEYUP: 479 case SDL_KEYUP:
466 hv_store (hv, "state", 5, newSViv (ev.key.state), 0); 480 hv_store (hv, "state", 5, newSViv (ev.key.state), 0);
486 case SDL_MOUSEBUTTONUP: 500 case SDL_MOUSEBUTTONUP:
487 hv_store (hv, "button", 6, newSViv (ev.button.button), 0); 501 hv_store (hv, "button", 6, newSViv (ev.button.button), 0);
488 hv_store (hv, "state", 5, newSViv (ev.button.state), 0); 502 hv_store (hv, "state", 5, newSViv (ev.button.state), 0);
489 hv_store (hv, "x", 1, newSViv (ev.button.x), 0); 503 hv_store (hv, "x", 1, newSViv (ev.button.x), 0);
490 hv_store (hv, "y", 1, newSViv (ev.button.y), 0); 504 hv_store (hv, "y", 1, newSViv (ev.button.y), 0);
505 break;
506
507 case SDL_USEREVENT:
508 hv_store (hv, "code", 4, newSViv (ev.user.code), 0);
509 hv_store (hv, "data1", 5, newSViv ((IV)ev.user.data1), 0);
510 hv_store (hv, "data2", 5, newSViv ((IV)ev.user.data2), 0);
511 break;
491 } 512 }
492 513
493 XPUSHs (sv_2mortal (newRV_noinc ((SV *)hv))); 514 XPUSHs (sv_2mortal (newRV_noinc ((SV *)hv)));
494 } 515 }
495} 516}
496 517
497int 518int
498Mix_OpenAudio (int frequency = 22050, int format = MIX_DEFAULT_FORMAT, int channels = 1, int chunksize = 512) 519Mix_OpenAudio (int frequency = 48000, int format = MIX_DEFAULT_FORMAT, int channels = 1, int chunksize = 2048)
499 POSTCALL: 520 POSTCALL:
500 Mix_HookMusicFinished (music_finished); 521 Mix_HookMusicFinished (music_finished);
522 Mix_ChannelFinished (channel_finished);
501 523
502void 524void
503Mix_CloseAudio () 525Mix_CloseAudio ()
504 526
505int 527int
640 exit (1); 662 exit (1);
641 663
642MODULE = CFClient PACKAGE = CFClient::Font 664MODULE = CFClient PACKAGE = CFClient::Font
643 665
644CFClient::Font 666CFClient::Font
645new_from_file (SV *class, char *path) 667new_from_file (SV *class, char *path, int id = 0)
646 CODE: 668 CODE:
647{ 669{
648 int count; 670 int count;
649 FcPattern *pattern = FcFreeTypeQuery ((const FcChar8 *)path, 0, 0, &count); 671 FcPattern *pattern = FcFreeTypeQuery ((const FcChar8 *)path, id, 0, &count);
650 RETVAL = pango_fc_font_description_from_pattern (pattern, 0); 672 RETVAL = pango_fc_font_description_from_pattern (pattern, 0);
651 FcPatternDestroy (pattern); 673 FcPatternDestroy (pattern);
652} 674}
653 OUTPUT: 675 OUTPUT:
654 RETVAL 676 RETVAL
1460void glEnd () 1482void glEnd ()
1461 1483
1462void glColor (float r, float g, float b, float a = 1.0) 1484void glColor (float r, float g, float b, float a = 1.0)
1463 PROTOTYPE: @ 1485 PROTOTYPE: @
1464 CODE: 1486 CODE:
1465 glColor4f (r, g, b, a); 1487 glColor4ub (r * 255., g * 255., b * 255., a * 255.);
1466 1488
1467void glVertex (float x, float y, float z = 0.) 1489void glVertex (float x, float y, float z = 0.)
1468 CODE: 1490 CODE:
1469 glVertex3f (x, y, z); 1491 glVertex3f (x, y, z);
1470 1492

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines