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.64 by root, Mon Apr 24 08:11:31 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
619 PUSHs (sv_2mortal (newSViv (b / y))); 641 PUSHs (sv_2mortal (newSViv (b / y)));
620 PUSHs (sv_2mortal (newSViv (a / y))); 642 PUSHs (sv_2mortal (newSViv (a / y)));
621} 643}
622 644
623void 645void
646error (char *message)
647 CODE:
648#ifdef _WIN32
649 MessageBox (0, message, "Crossfire+ Error", MB_OK | MB_ICONERROR | MB_SETFOREGROUND);
650#else
651 fprintf (stderr, "ERROR: %s\n", message);
652#endif
653
654void
624fatal (char *message) 655fatal (char *message)
625 CODE: 656 CODE:
626#ifdef _WIN32 657#ifdef _WIN32
627 MessageBox (0, message, "Crossfire+ Fatal Error", MB_OK | MB_ICONERROR | MB_SETFOREGROUND); 658 MessageBox (0, message, "Crossfire+ Fatal Error", MB_OK | MB_ICONERROR | MB_SETFOREGROUND);
628#else 659#else
631 exit (1); 662 exit (1);
632 663
633MODULE = CFClient PACKAGE = CFClient::Font 664MODULE = CFClient PACKAGE = CFClient::Font
634 665
635CFClient::Font 666CFClient::Font
636new_from_file (SV *class, char *path) 667new_from_file (SV *class, char *path, int id = 0)
637 CODE: 668 CODE:
638{ 669{
639 int count; 670 int count;
640 FcPattern *pattern = FcFreeTypeQuery ((const FcChar8 *)path, 0, 0, &count); 671 FcPattern *pattern = FcFreeTypeQuery ((const FcChar8 *)path, id, 0, &count);
641 RETVAL = pango_fc_font_description_from_pattern (pattern, 0); 672 RETVAL = pango_fc_font_description_from_pattern (pattern, 0);
642 FcPatternDestroy (pattern); 673 FcPatternDestroy (pattern);
643} 674}
644 OUTPUT: 675 OUTPUT:
645 RETVAL 676 RETVAL
1339 } *civ, const_iv[] = { 1370 } *civ, const_iv[] = {
1340# define const_iv(name) { # name, (IV)name } 1371# define const_iv(name) { # name, (IV)name }
1341 const_iv (GL_COLOR_MATERIAL), 1372 const_iv (GL_COLOR_MATERIAL),
1342 const_iv (GL_SMOOTH), 1373 const_iv (GL_SMOOTH),
1343 const_iv (GL_FLAT), 1374 const_iv (GL_FLAT),
1375 const_iv (GL_DITHER),
1344 const_iv (GL_BLEND), 1376 const_iv (GL_BLEND),
1377 const_iv (GL_SCISSOR_TEST),
1345 const_iv (GL_AND), 1378 const_iv (GL_AND),
1379 const_iv (GL_ONE),
1380 const_iv (GL_ZERO),
1346 const_iv (GL_SRC_ALPHA), 1381 const_iv (GL_SRC_ALPHA),
1382 const_iv (GL_SRC_ALPHA_SATURATE),
1347 const_iv (GL_ONE_MINUS_SRC_ALPHA), 1383 const_iv (GL_ONE_MINUS_SRC_ALPHA),
1384 const_iv (GL_ONE_MINUS_DST_ALPHA),
1348 const_iv (GL_RGB), 1385 const_iv (GL_RGB),
1349 const_iv (GL_RGBA), 1386 const_iv (GL_RGBA),
1350 const_iv (GL_UNSIGNED_BYTE), 1387 const_iv (GL_UNSIGNED_BYTE),
1351 const_iv (GL_ALPHA4),
1352 const_iv (GL_ALPHA), 1388 const_iv (GL_ALPHA),
1353 const_iv (GL_FLOAT), 1389 const_iv (GL_FLOAT),
1354 const_iv (GL_UNSIGNED_INT_8_8_8_8_REV), 1390 const_iv (GL_UNSIGNED_INT_8_8_8_8_REV),
1355 const_iv (GL_COMPILE), 1391 const_iv (GL_COMPILE),
1356 const_iv (GL_TEXTURE_1D), 1392 const_iv (GL_TEXTURE_1D),
1368 const_iv (GL_NEAREST_MIPMAP_NEAREST), 1404 const_iv (GL_NEAREST_MIPMAP_NEAREST),
1369 const_iv (GL_LINEAR_MIPMAP_NEAREST), 1405 const_iv (GL_LINEAR_MIPMAP_NEAREST),
1370 const_iv (GL_NEAREST_MIPMAP_LINEAR), 1406 const_iv (GL_NEAREST_MIPMAP_LINEAR),
1371 const_iv (GL_LINEAR_MIPMAP_LINEAR), 1407 const_iv (GL_LINEAR_MIPMAP_LINEAR),
1372 const_iv (GL_GENERATE_MIPMAP), 1408 const_iv (GL_GENERATE_MIPMAP),
1373 const_iv (GL_LINEAR),
1374 const_iv (GL_MODULATE), 1409 const_iv (GL_MODULATE),
1410 const_iv (GL_DECAL),
1375 const_iv (GL_REPLACE), 1411 const_iv (GL_REPLACE),
1376 const_iv (GL_COLOR_BUFFER_BIT), 1412 const_iv (GL_COLOR_BUFFER_BIT),
1377 const_iv (GL_PROJECTION), 1413 const_iv (GL_PROJECTION),
1378 const_iv (GL_MODELVIEW), 1414 const_iv (GL_MODELVIEW),
1379 const_iv (GL_COLOR_LOGIC_OP), 1415 const_iv (GL_COLOR_LOGIC_OP),
1416 const_iv (GL_SEPARABLE_2D),
1380 const_iv (GL_CONVOLUTION_2D), 1417 const_iv (GL_CONVOLUTION_2D),
1381 const_iv (GL_CONVOLUTION_BORDER_MODE), 1418 const_iv (GL_CONVOLUTION_BORDER_MODE),
1382 const_iv (GL_CONSTANT_BORDER), 1419 const_iv (GL_CONSTANT_BORDER),
1383 const_iv (GL_LINES), 1420 const_iv (GL_LINES),
1384 const_iv (GL_QUADS), 1421 const_iv (GL_QUADS),
1409 1446
1410void glBlendFunc (int sfactor, int dfactor) 1447void glBlendFunc (int sfactor, int dfactor)
1411 1448
1412void glLogicOp (int opcode) 1449void glLogicOp (int opcode)
1413 1450
1451void glColorMask (int red, int green, int blue, int alpha)
1452
1414void glMatrixMode (int mode) 1453void glMatrixMode (int mode)
1415 1454
1416void glPushMatrix () 1455void glPushMatrix ()
1417 1456
1418void glPopMatrix () 1457void glPopMatrix ()
1421 1460
1422# near and far are due to microsofts buggy c compiler 1461# near and far are due to microsofts buggy c compiler
1423void glOrtho (double left, double right, double bottom, double top, double near_, double far_) 1462void glOrtho (double left, double right, double bottom, double top, double near_, double far_)
1424 1463
1425void glViewport (int x, int y, int width, int height) 1464void glViewport (int x, int y, int width, int height)
1465
1466void glScissor (int x, int y, int width, int height)
1426 1467
1427void glTranslate (float x, float y, float z = 0.) 1468void glTranslate (float x, float y, float z = 0.)
1428 CODE: 1469 CODE:
1429 glTranslatef (x, y, z); 1470 glTranslatef (x, y, z);
1430 1471
1441void glEnd () 1482void glEnd ()
1442 1483
1443void glColor (float r, float g, float b, float a = 1.0) 1484void glColor (float r, float g, float b, float a = 1.0)
1444 PROTOTYPE: @ 1485 PROTOTYPE: @
1445 CODE: 1486 CODE:
1446 glColor4f (r, g, b, a); 1487 glColor4ub (r * 255., g * 255., b * 255., a * 255.);
1447 1488
1448void glVertex (float x, float y, float z = 0.) 1489void glVertex (float x, float y, float z = 0.)
1449 CODE: 1490 CODE:
1450 glVertex3f (x, y, z); 1491 glVertex3f (x, y, z);
1451 1492
1470void glConvolutionFilter2D (int target, int internalformat, int width, int height, int format, int type, char *data) 1511void glConvolutionFilter2D (int target, int internalformat, int width, int height, int format, int type, char *data)
1471 CODE: 1512 CODE:
1472 GL_CALL (PFNGLCONVOLUTIONFILTER2DEXTPROC, glConvolutionFilter2D, 1513 GL_CALL (PFNGLCONVOLUTIONFILTER2DEXTPROC, glConvolutionFilter2D,
1473 (target, internalformat, width, height, format, type, data)); 1514 (target, internalformat, width, height, format, type, data));
1474 1515
1516void glSeparableFilter2D (int target, int internalformat, int width, int height, int format, int type, char *row, char *column)
1517 CODE:
1518 GL_CALL (PFNGLSEPARABLEFILTER2DEXTPROC, glSeparableFilter2D,
1519 (target, internalformat, width, height, format, type, row, column));
1520
1475void glTexImage2D (int target, int level, int internalformat, int width, int height, int border, int format, int type, char *data) 1521void glTexImage2D (int target, int level, int internalformat, int width, int height, int border, int format, int type, char *data)
1476 1522
1477void glCopyTexImage2D (int target, int level, int internalformat, int x, int y, int width, int height, int border) 1523void glCopyTexImage2D (int target, int level, int internalformat, int x, int y, int width, int height, int border)
1524
1525void glRasterPos (int x, int y)
1526 CODE:
1527 glRasterPos2i (x, y);
1528
1529void glCopyPixels (int x, int y, int width, int height, int type = GL_COLOR)
1478 1530
1479int glGenTexture () 1531int glGenTexture ()
1480 CODE: 1532 CODE:
1481{ 1533{
1482 GLuint name; 1534 GLuint name;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines