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.65 by root, Mon Apr 24 08:22:21 2006 UTC vs.
Revision 1.71 by root, Fri May 5 19:05:47 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 = 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;
491 } 506 }
492 507
493 XPUSHs (sv_2mortal (newRV_noinc ((SV *)hv))); 508 XPUSHs (sv_2mortal (newRV_noinc ((SV *)hv)));
494 } 509 }
495} 510}
496 511
497int 512int
498Mix_OpenAudio (int frequency = 22050, int format = MIX_DEFAULT_FORMAT, int channels = 1, int chunksize = 512) 513Mix_OpenAudio (int frequency = 22050, int format = MIX_DEFAULT_FORMAT, int channels = 1, int chunksize = 512)
499 POSTCALL: 514 POSTCALL:
500 Mix_HookMusicFinished (music_finished); 515 Mix_HookMusicFinished (music_finished);
516 Mix_ChannelFinished (channel_finished);
501 517
502void 518void
503Mix_CloseAudio () 519Mix_CloseAudio ()
504 520
505int 521int
619 PUSHs (sv_2mortal (newSViv (b / y))); 635 PUSHs (sv_2mortal (newSViv (b / y)));
620 PUSHs (sv_2mortal (newSViv (a / y))); 636 PUSHs (sv_2mortal (newSViv (a / y)));
621} 637}
622 638
623void 639void
640error (char *message)
641 CODE:
642#ifdef _WIN32
643 MessageBox (0, message, "Crossfire+ Error", MB_OK | MB_ICONERROR | MB_SETFOREGROUND);
644#else
645 fprintf (stderr, "ERROR: %s\n", message);
646#endif
647
648void
624fatal (char *message) 649fatal (char *message)
625 CODE: 650 CODE:
626#ifdef _WIN32 651#ifdef _WIN32
627 MessageBox (0, message, "Crossfire+ Fatal Error", MB_OK | MB_ICONERROR | MB_SETFOREGROUND); 652 MessageBox (0, message, "Crossfire+ Fatal Error", MB_OK | MB_ICONERROR | MB_SETFOREGROUND);
628#else 653#else
631 exit (1); 656 exit (1);
632 657
633MODULE = CFClient PACKAGE = CFClient::Font 658MODULE = CFClient PACKAGE = CFClient::Font
634 659
635CFClient::Font 660CFClient::Font
636new_from_file (SV *class, char *path) 661new_from_file (SV *class, char *path, int id = 0)
637 CODE: 662 CODE:
638{ 663{
639 int count; 664 int count;
640 FcPattern *pattern = FcFreeTypeQuery ((const FcChar8 *)path, 0, 0, &count); 665 FcPattern *pattern = FcFreeTypeQuery ((const FcChar8 *)path, id, 0, &count);
641 RETVAL = pango_fc_font_description_from_pattern (pattern, 0); 666 RETVAL = pango_fc_font_description_from_pattern (pattern, 0);
642 FcPatternDestroy (pattern); 667 FcPatternDestroy (pattern);
643} 668}
644 OUTPUT: 669 OUTPUT:
645 RETVAL 670 RETVAL
1339 } *civ, const_iv[] = { 1364 } *civ, const_iv[] = {
1340# define const_iv(name) { # name, (IV)name } 1365# define const_iv(name) { # name, (IV)name }
1341 const_iv (GL_COLOR_MATERIAL), 1366 const_iv (GL_COLOR_MATERIAL),
1342 const_iv (GL_SMOOTH), 1367 const_iv (GL_SMOOTH),
1343 const_iv (GL_FLAT), 1368 const_iv (GL_FLAT),
1369 const_iv (GL_DITHER),
1344 const_iv (GL_BLEND), 1370 const_iv (GL_BLEND),
1371 const_iv (GL_SCISSOR_TEST),
1345 const_iv (GL_AND), 1372 const_iv (GL_AND),
1373 const_iv (GL_ONE),
1374 const_iv (GL_ZERO),
1346 const_iv (GL_SRC_ALPHA), 1375 const_iv (GL_SRC_ALPHA),
1376 const_iv (GL_SRC_ALPHA_SATURATE),
1347 const_iv (GL_ONE_MINUS_SRC_ALPHA), 1377 const_iv (GL_ONE_MINUS_SRC_ALPHA),
1378 const_iv (GL_ONE_MINUS_DST_ALPHA),
1348 const_iv (GL_RGB), 1379 const_iv (GL_RGB),
1349 const_iv (GL_RGBA), 1380 const_iv (GL_RGBA),
1350 const_iv (GL_UNSIGNED_BYTE), 1381 const_iv (GL_UNSIGNED_BYTE),
1351 const_iv (GL_ALPHA), 1382 const_iv (GL_ALPHA),
1352 const_iv (GL_FLOAT), 1383 const_iv (GL_FLOAT),
1367 const_iv (GL_NEAREST_MIPMAP_NEAREST), 1398 const_iv (GL_NEAREST_MIPMAP_NEAREST),
1368 const_iv (GL_LINEAR_MIPMAP_NEAREST), 1399 const_iv (GL_LINEAR_MIPMAP_NEAREST),
1369 const_iv (GL_NEAREST_MIPMAP_LINEAR), 1400 const_iv (GL_NEAREST_MIPMAP_LINEAR),
1370 const_iv (GL_LINEAR_MIPMAP_LINEAR), 1401 const_iv (GL_LINEAR_MIPMAP_LINEAR),
1371 const_iv (GL_GENERATE_MIPMAP), 1402 const_iv (GL_GENERATE_MIPMAP),
1372 const_iv (GL_LINEAR),
1373 const_iv (GL_MODULATE), 1403 const_iv (GL_MODULATE),
1404 const_iv (GL_DECAL),
1374 const_iv (GL_REPLACE), 1405 const_iv (GL_REPLACE),
1375 const_iv (GL_COLOR_BUFFER_BIT), 1406 const_iv (GL_COLOR_BUFFER_BIT),
1376 const_iv (GL_PROJECTION), 1407 const_iv (GL_PROJECTION),
1377 const_iv (GL_MODELVIEW), 1408 const_iv (GL_MODELVIEW),
1378 const_iv (GL_COLOR_LOGIC_OP), 1409 const_iv (GL_COLOR_LOGIC_OP),
1410 const_iv (GL_SEPARABLE_2D),
1379 const_iv (GL_CONVOLUTION_2D), 1411 const_iv (GL_CONVOLUTION_2D),
1380 const_iv (GL_CONVOLUTION_BORDER_MODE), 1412 const_iv (GL_CONVOLUTION_BORDER_MODE),
1381 const_iv (GL_CONSTANT_BORDER), 1413 const_iv (GL_CONSTANT_BORDER),
1382 const_iv (GL_LINES), 1414 const_iv (GL_LINES),
1383 const_iv (GL_QUADS), 1415 const_iv (GL_QUADS),
1408 1440
1409void glBlendFunc (int sfactor, int dfactor) 1441void glBlendFunc (int sfactor, int dfactor)
1410 1442
1411void glLogicOp (int opcode) 1443void glLogicOp (int opcode)
1412 1444
1445void glColorMask (int red, int green, int blue, int alpha)
1446
1413void glMatrixMode (int mode) 1447void glMatrixMode (int mode)
1414 1448
1415void glPushMatrix () 1449void glPushMatrix ()
1416 1450
1417void glPopMatrix () 1451void glPopMatrix ()
1420 1454
1421# near and far are due to microsofts buggy c compiler 1455# near and far are due to microsofts buggy c compiler
1422void glOrtho (double left, double right, double bottom, double top, double near_, double far_) 1456void glOrtho (double left, double right, double bottom, double top, double near_, double far_)
1423 1457
1424void glViewport (int x, int y, int width, int height) 1458void glViewport (int x, int y, int width, int height)
1459
1460void glScissor (int x, int y, int width, int height)
1425 1461
1426void glTranslate (float x, float y, float z = 0.) 1462void glTranslate (float x, float y, float z = 0.)
1427 CODE: 1463 CODE:
1428 glTranslatef (x, y, z); 1464 glTranslatef (x, y, z);
1429 1465
1440void glEnd () 1476void glEnd ()
1441 1477
1442void glColor (float r, float g, float b, float a = 1.0) 1478void glColor (float r, float g, float b, float a = 1.0)
1443 PROTOTYPE: @ 1479 PROTOTYPE: @
1444 CODE: 1480 CODE:
1445 glColor4f (r, g, b, a); 1481 glColor4ub (r * 255., g * 255., b * 255., a * 255.);
1446 1482
1447void glVertex (float x, float y, float z = 0.) 1483void glVertex (float x, float y, float z = 0.)
1448 CODE: 1484 CODE:
1449 glVertex3f (x, y, z); 1485 glVertex3f (x, y, z);
1450 1486
1469void glConvolutionFilter2D (int target, int internalformat, int width, int height, int format, int type, char *data) 1505void glConvolutionFilter2D (int target, int internalformat, int width, int height, int format, int type, char *data)
1470 CODE: 1506 CODE:
1471 GL_CALL (PFNGLCONVOLUTIONFILTER2DEXTPROC, glConvolutionFilter2D, 1507 GL_CALL (PFNGLCONVOLUTIONFILTER2DEXTPROC, glConvolutionFilter2D,
1472 (target, internalformat, width, height, format, type, data)); 1508 (target, internalformat, width, height, format, type, data));
1473 1509
1510void glSeparableFilter2D (int target, int internalformat, int width, int height, int format, int type, char *row, char *column)
1511 CODE:
1512 GL_CALL (PFNGLSEPARABLEFILTER2DEXTPROC, glSeparableFilter2D,
1513 (target, internalformat, width, height, format, type, row, column));
1514
1474void glTexImage2D (int target, int level, int internalformat, int width, int height, int border, int format, int type, char *data) 1515void glTexImage2D (int target, int level, int internalformat, int width, int height, int border, int format, int type, char *data)
1475 1516
1476void glCopyTexImage2D (int target, int level, int internalformat, int x, int y, int width, int height, int border) 1517void glCopyTexImage2D (int target, int level, int internalformat, int x, int y, int width, int height, int border)
1518
1519void glRasterPos (int x, int y)
1520 CODE:
1521 glRasterPos2i (x, y);
1522
1523void glCopyPixels (int x, int y, int width, int height, int type = GL_COLOR)
1477 1524
1478int glGenTexture () 1525int glGenTexture ()
1479 CODE: 1526 CODE:
1480{ 1527{
1481 GLuint name; 1528 GLuint name;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines