TYPEMAP const Uint16 * T_PTR const Sint16 * T_PTR Uint8 T_UV Uint8 * T_PTR const Uint8* T_PTR Uint8 ** T_PTR Uint16 T_UV Uint16 * T_PTR Uint32 T_UV Uint32 * T_PTR SDLKey T_UV SDLKey * T_PTR SDLMod T_UV SDLMod * T_PTR Sint16 T_IV Sint16 * T_PTR Sint32 T_IV Sint32 * T_PTR SDL_Event * O_OBJECT SDL_ActiveEvent * O_OBJECT SDL_KeyboardEvent * O_OBJECT SDL_TextInputEvent * O_OBJECT SDL_MouseMotionEvent * O_OBJECT SDL_MouseButtonEvent * O_OBJECT SDL_JoyAxisEvent * O_OBJECT SDL_JoyHatEvent * O_OBJECT SDL_JoyButtonEvent * O_OBJECT SDL_JoyBallEvent * O_OBJECT SDL_ResizeEvent * O_OBJECT SDL_ExposeEvent * O_OBJECT SDL_SysWMEvent * O_OBJECT SDL_UserEvent * O_OBJECT SDL_QuitEvent * O_OBJECT SDL_keysym * O_OBJECT SDL_Surface * O_OBJECT SDL_SysWMmsg * T_PTR SDL_CD * O_OBJECT SDL_CDtrack * O_OBJECT SDL_TimerCallback T_PTR SDL_Rect * O_OBJECT SDL_Color * O_OBJECT SDL_Palette * O_OBJECT SDL_PixelFormat * O_OBJECT SDL_VideoInfo * O_OBJECT SDL_version * O_OBJECT const SDL_version * O_OBJECT SDL_SysWMInfo * O_OBJECT SDL_Cursor * O_OBJECT SDL_AudioSpec * O_OBJECT SDL_AudioCVT * O_OBJECT Mix_Fading T_UV Mix_Chunk * O_OBJECT Mix_Music * O_OBJECT SDL_GLattr T_IV SDLPango_Context * O_OBJECT sdlx_timer * O_OBJECT SDLx_LayerManager * O_OBJECT SDLx_Layer * O_OBJECT SDLx_Interface * O_OBJECT SDLx_State * O_OBJECT SDLPango_Alignment T_UV int * T_PTR int ** T_PTR void * T_PTR SDL_TimerID T_PTR SDL_NewTimerCallback T_PTR SDL_Joystick * O_OBJECT FPSmanager * O_OBJECT SDLNet_SocketSet T_PTR TCPsocket T_PTR UDPsocket T_PTR UDPpacket * T_PTR UDPpacket ** T_PTR IPaddress* O_OBJECT SDLNet_GenericSocket T_PTR TTF_Font * O_OBJECT SDL_Overlay * O_OBJECT SMPEG_Info * O_OBJECT SMPEG * O_OBJECT SMPEGstatus T_IV SDL_mutex * T_PTR GLbitfield T_IV GLenum T_IV ConsoleInformation * T_PTR GLboolean T_U_CHAR GLUquadric * T_PTR GLdouble T_NV GLUnurbsObj * T_PTR GLUtesselator * T_PTR GLuint T_UV GLuint* T_PTR GLint T_IV GLint* T_PTR float * T_PTR float T_NV GLfloat T_NV Sound_DecoderInfo * T_PTR const Sound_DecoderInfo * T_PTR Sound_Sample * T_PTR Sound_AudioInfo * T_PTR SDL_RWops* O_OBJECT SDL_svg_context* T_PTR int T_IV intArray T_ARRAY OUTPUT O_OBJECT_NPGC sv_setref_pv( $arg, CLASS, (void*)$var ); O_OBJECT if ($var) { void** pointers = malloc(3 * sizeof(void*)); pointers[0] = (void*)$var; pointers[1] = (void*)PERL_GET_CONTEXT; Uint32 *threadid = (Uint32 *)safemalloc(sizeof(Uint32)); *threadid = SDL_ThreadID(); pointers[2] = (void*)threadid; sv_setref_pv( $arg, CLASS, (void*)pointers ); } else { XSRETURN_UNDEF; } INPUT O_OBJECT_NPGC $var = ($type) SvIV((SV*)SvRV($arg)); O_OBJECT if( sv_isobject($arg) && (SvTYPE(SvRV($arg)) == SVt_PVMG) ) { void** pointers = (void**)(SvIV((SV*)SvRV( $arg ))); $var = ($type)(pointers[0]); } else if ($arg == 0) { XSRETURN(0); } else { XSRETURN_UNDEF; }