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 = INT2PTR($type, SvIV((SV *)SvRV( $arg )));
O_OBJECT
if( sv_isobject($arg) && (SvTYPE(SvRV($arg)) == SVt_PVMG) ) {
void** pointers = (void**)INT2PTR(void *, SvIV((SV *)SvRV( $arg )));
$var = ($type)(pointers[0]);
} else if ($arg == 0) {
XSRETURN(0);
} else {
XSRETURN_UNDEF;
}