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.192 by root, Fri Apr 27 21:27:51 2007 UTC vs.
Revision 1.196 by root, Sun Jul 15 21:02:20 2007 UTC

4# include <malloc.h> 4# include <malloc.h>
5# include <windows.h> 5# include <windows.h>
6# include <wininet.h> 6# include <wininet.h>
7# pragma warning(disable:4244) 7# pragma warning(disable:4244)
8# pragma warning(disable:4761) 8# pragma warning(disable:4761)
9#endif
10
11//#define DEBUG 1
12#if DEBUG
13# include <valgrind/memcheck.h>
9#endif 14#endif
10 15
11#include "EXTERN.h" 16#include "EXTERN.h"
12#include "perl.h" 17#include "perl.h"
13#include "XSUB.h" 18#include "XSUB.h"
686 hv_store (hv, "gain", 4, newSViv (ev.active.gain), 0); 691 hv_store (hv, "gain", 4, newSViv (ev.active.gain), 0);
687 hv_store (hv, "state", 5, newSViv (ev.active.state), 0); 692 hv_store (hv, "state", 5, newSViv (ev.active.state), 0);
688 break; 693 break;
689 694
690 case SDL_MOUSEMOTION: 695 case SDL_MOUSEMOTION:
696 {
697 int state = ev.motion.state;
698 int x = ev.motion.x;
699 int y = ev.motion.y;
700 int xrel = ev.motion.xrel;
701 int yrel = ev.motion.yrel;
702
703 /* do simplistic event compression */
704 while (SDL_PeepEvents (&ev, 1, SDL_PEEKEVENT, SDL_EVENTMASK (SDL_MOUSEMOTION)) > 0
705 && state == ev.motion.state)
706 {
707 xrel += ev.motion.xrel;
708 yrel += ev.motion.yrel;
709 x = ev.motion.x;
710 y = ev.motion.y;
711 SDL_PeepEvents (&ev, 1, SDL_GETEVENT, SDL_EVENTMASK (SDL_MOUSEMOTION));
712 }
713
691 hv_store (hv, "mod", 3, newSViv (SDL_GetModState ()), 0); 714 hv_store (hv, "mod", 3, newSViv (SDL_GetModState ()), 0);
692
693 hv_store (hv, "state", 5, newSViv (ev.motion.state), 0); 715 hv_store (hv, "state", 5, newSViv (state), 0);
694 hv_store (hv, "x", 1, newSViv (ev.motion.x), 0); 716 hv_store (hv, "x", 1, newSViv (x), 0);
695 hv_store (hv, "y", 1, newSViv (ev.motion.y), 0); 717 hv_store (hv, "y", 1, newSViv (y), 0);
696 hv_store (hv, "xrel", 4, newSViv (ev.motion.xrel), 0); 718 hv_store (hv, "xrel", 4, newSViv (xrel), 0);
697 hv_store (hv, "yrel", 4, newSViv (ev.motion.yrel), 0); 719 hv_store (hv, "yrel", 4, newSViv (yrel), 0);
720 }
698 break; 721 break;
699 722
700 case SDL_MOUSEBUTTONDOWN: 723 case SDL_MOUSEBUTTONDOWN:
701 case SDL_MOUSEBUTTONUP: 724 case SDL_MOUSEBUTTONUP:
702 hv_store (hv, "mod", 3, newSViv (SDL_GetModState ()), 0); 725 hv_store (hv, "mod", 3, newSViv (SDL_GetModState ()), 0);
882 ExitThread (retval); // unclean, please beam me up 905 ExitThread (retval); // unclean, please beam me up
883#else 906#else
884 _exit (retval); 907 _exit (retval);
885#endif 908#endif
886 909
910void
911debug ()
912 CODE:
913{
914#if DEBUG
915 VALGRIND_DO_LEAK_CHECK;
916#endif
917}
918
887MODULE = CFPlus PACKAGE = CFPlus::Font 919MODULE = CFPlus PACKAGE = CFPlus::Font
888 920
889CFPlus::Font 921CFPlus::Font
890new_from_file (SV *class, char *path, int id = 0) 922new_from_file (SV *class, char *path, int id = 0)
891 CODE: 923 CODE:
2126 CODE: 2158 CODE:
2127 RETVAL = Mix_VolumeMusic (volume); 2159 RETVAL = Mix_VolumeMusic (volume);
2128 OUTPUT: 2160 OUTPUT:
2129 RETVAL 2161 RETVAL
2130 2162
2163int
2164fade_out (int ms)
2165 CODE:
2166 RETVAL = Mix_FadeOutMusic (ms);
2167 OUTPUT:
2168 RETVAL
2169
2131CFPlus::MixMusic 2170CFPlus::MixMusic
2132new_from_file (SV *class, char *path) 2171new_from_file (SV *class, char *path)
2133 CODE: 2172 CODE:
2134 RETVAL = Mix_LoadMUS (path); 2173 RETVAL = Mix_LoadMUS (path);
2135 OUTPUT: 2174 OUTPUT:
2142 2181
2143int 2182int
2144play (CFPlus::MixMusic self, int loops = -1) 2183play (CFPlus::MixMusic self, int loops = -1)
2145 CODE: 2184 CODE:
2146 RETVAL = Mix_PlayMusic (self, loops); 2185 RETVAL = Mix_PlayMusic (self, loops);
2186 OUTPUT:
2187 RETVAL
2188
2189int
2190fade_in_pos (CFPlus::MixMusic self, int loops, int ms, double position)
2191 CODE:
2192 RETVAL = Mix_FadeInMusicPos (self, loops, ms, position);
2147 OUTPUT: 2193 OUTPUT:
2148 RETVAL 2194 RETVAL
2149 2195
2150MODULE = CFPlus PACKAGE = CFPlus::OpenGL 2196MODULE = CFPlus PACKAGE = CFPlus::OpenGL
2151 2197

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines