SDL(L) User Contributed Perl Documentation SDL(L) NAME SDL_perl - Simple DirectMedia Layer Perl SYNOPSIS use SDL; DESCRIPTION SDL_perl is a package of perl modules that provides both functional and object orient interfaces to the Simple DirectMedia Layer for Perl 5. This package does take some liberties with the SDL API, and attempts to adhere to the spirit of both the SDL and Perl. This document describes the low-level functional SDL_perl API. For the object oriented programming interface please see the documenta- tion provided on a per class basis. Init(t) As with the C language API, SDL_perl initializes the SDL environment through the "SDL::Init" subroutine. This rou- tine takes a mode flag constructed through the bitwise OR product of the following functions: o INIT_VIDEO() o INIT_CDROM() o INIT_EVERYTHING() o INIT_NOPARACHUTE() o INIT_JOYSTICK() "SDL::Init" returns 0 on success, or -1 on error. GetError() The last error message set by the SDL library can be retrieved using the subroutine "SDL::GetError", which returns a scalar containing the text of the message if any. Delay(y) This subroutine allows an application to delay further operations for atleast a number of milliseconds provided as the argument. The actual delay may be longer than the specified depending on the underlying OS. GetTicks() An application may retrieve the number of milliseconds expired since the initilization of the application through this subroutine. This value resets rougly ever 49 days. AddTimer(interval,callback,param) "AddTimer" will register a SDL_NewTimerCallback function to be executed after "interval" milliseconds, with parame- ter "param". SDL_NewTimerCallback objects can be con- structed with the "NewTimer" subroutine. "SDL::Perl- TimerCallback" will return a valid callback for executing a perl subroutine or closure. This subroutine returns a SDL_TimerID for the newly registered callback, or NULL on error. NewTimer(interval,subroutine) The "NewTimer" takes an interval in milliseconds and a reference to a subroutine to call at that interval. The subroutine will be invoked in a void context and accepts no parameters. The callback used is that returned by "SDL::PerlTimerCallback". "NewTimer" returns the SDL_TimerID for the new timer or NULL on error. RemoveTimer(r) This subroutine taks a SDL_TimerID and removes it from the list of active callbacks. RemoveTimer returns false on failure. SetTimer This subroutine is depreciated, please use "NewTimer" or "AddTimer" instead. CDNumDrives() "SDL::CDNumDrives" returns the number of available CD-ROM drives in the system. CDName(e) The subroutine "SDL::CDName" returns the system specific human readable device name for the given CD-ROM drive. CDOpen(n) This subroutine opens a CD-ROM drive for access, returning NULL if the drive is busy or otherwise unavailable. On success this subroutine returns a handle to the CD-ROM drive. CDTrackListing(g) "SDL::CDTrackListing" returns a human readable description of a CD-ROM. For each track one line will be produced with the following format: Track index: %d, id %d, %2d.%2d This is provided to ease the creation of human readable descriptions and debugging. CDTrackId(d) "CDTrackId" returns the id field of the given SDL_CDtrack structure. CDTrackType(e) "CDTrackType" returns the type field of the given SDL_CDtrack structure. CDTrackLength(h) "CDTrackLength" returns the length field of the given SDL_CDtrack structure. CDTrackOffset(t) "CDTrackOffset" returns the offset field of the given SDL_CDtrack structure. CDStatus(s) The function "CDStatus" returns the current status of the given SDL_CDrom. "CDStatus"'s return values are: o CD_TRAYEMPTY o CD_PLAYING o CD_STOPPED o CD_PAUSED o CD_ERROR CDPlayTracks(cd,track,tracks,frame,frames) To start playing from an arbitrary portion of a CD, one can provide "SDL::CDPlayTracks" with a CD, a starting track, the number of tracks, a starting frame, and the number of frames to be played. CDPlay(cd,track,length) "SDL::CDPlay" plays the next "length" tracks starting from "track" CDPause(e) This function will pause CD playback until resume is called. CDResume(e) This function will resume CD playback if paused. CDStop(p) "SDL::CDStop" will stop CD playback if playing. CDEject(t) This function will eject the CD CDClose(e) This function will release an opened CD. CDNumTracks CDCurTrack CDCurFrame CDTrack PumpEvents NewEvent FreeEvent PollEvent WaitEvent EventState IGNORE ENABLE QUERY ACTIVEEVENT KEYDOWN KEYUP MOUSEMOTION MOUSEBUTTONDOWN MOUSEBUTTONUP QUIT SYSWMEVENT EventType ActiveEventGain ActiveEventState APPMOUSEFOCUS APPINPUTFOCUS APPACTIVE KeyEventState SDLK_BACKSPACE SDLK_TAB SDLK_CLEAR SDLK_RETURN SDLK_PAUSE SDLK_ESCAPE SDLK_SPACE SDLK_EXCLAIM SDLK_QUOTEDBL SDLK_HASH SDLK_DOLLAR SDLK_AMPERSAND SDLK_QUOTE SDLK_LEFTPAREN SDLK_RIGHTPAREN SDLK_ASTERISK SDLK_PLUS SDLK_COMMA SDLK_MINUS SDLK_PERIOD SDLK_SLASH SDLK_0 SDLK_1 SDLK_2 SDLK_3 SDLK_4 SDLK_5 SDLK_6 SDLK_7 SDLK_8 SDLK_9 SDLK_COLON SDLK_SEMICOLON SDLK_LESS SDLK_EQUALS SDLK_GREATER SDLK_QUESTION SDLK_AT SDLK_LEFTBRACKET SDLK_BACKSLASH SDLK_RIGHTBRACKET SDLK_CARET SDLK_UNDERSCORE SDLK_BACKQUOTE SDLK_a SDLK_b SDLK_c SDLK_d SDLK_e SDLK_f SDLK_g SDLK_h SDLK_i SDLK_j SDLK_k SDLK_l SDLK_m SDLK_n SDLK_o SDLK_p SDLK_q SDLK_r SDLK_s SDLK_t SDLK_u SDLK_v SDLK_w SDLK_x SDLK_y SDLK_z SDLK_DELETE SDLK_KP0 SDLK_KP1 SDLK_KP2 SDLK_KP3 SDLK_KP4 SDLK_KP5 SDLK_KP6 SDLK_KP7 SDLK_KP8 SDLK_KP9 SDLK_KP_PERIOD SDLK_KP_DIVIDE SDLK_KP_MULTIPLY SDLK_KP_MINUS SDLK_KP_PLUS SDLK_KP_ENTER SDLK_KP_EQUALS SDLK_UP SDLK_DOWN SDLK_RIGHT SDLK_LEFT SDLK_INSERT SDLK_HOME SDLK_END SDLK_PAGEUP SDLK_PAGEDOWN SDLK_F1 SDLK_F2 SDLK_F3 SDLK_F4 SDLK_F5 SDLK_F6 SDLK_F7 SDLK_F8 SDLK_F9 SDLK_F10 SDLK_F11 SDLK_F12 SDLK_F13 SDLK_F14 SDLK_F15 SDLK_NUMLOCK SDLK_CAPSLOCK SDLK_SCROLLOCK SDLK_RSHIFT SDLK_LSHIFT SDLK_RCTRL SDLK_LCTRL SDLK_RALT SDLK_LALT SDLK_RMETA SDLK_LMETA SDLK_LSUPER SDLK_RSUPER SDLK_MODE SDLK_HELP SDLK_PRINT SDLK_SYSREQ SDLK_BREAK SDLK_MENU SDLK_POWER SDLK_EURO KMOD_NONE KMOD_NUM KMOD_CAPS KMOD_LCTRL KMOD_RCTRL KMOD_RSHIFT KMOD_LSHIFT KMOD_RALT KMOD_LALT KMOD_CTRL KMOD_SHIFT KMOD_ALT KeyEventSym KeyEventMod KeyEventUnicode KeyEventScanCode MouseMotionState MouseMotionX MouseMotionY MouseMotionXrel MouseMotionYrel MouseButtonState MouseButton MouseButtonX MouseButtonY SysWMEventMsg EnableUnicode EnableKeyRepeat GetKeyName PRESSED RELEASED CreateRGBSurface CreateRGBSurfaceFrom IMG_Load FreeSurface SurfacePalette SurfaceBitsPerPixel SurfaceBytesPerPixel SurfaceRshift SurfaceGshift SurfaceBshift SurfaceAshift SurfaceRmask SurfaceGmask SurfaceBmask SurfaceAmask SurfaceColorKey SurfaceAlpha SurfaceW SurfaceH SurfacePitch SurfacePixels SurfacePixel MUSTLOCK SurfaceLock SurfaceUnlock GetVideoSurface VideoInfo NewRect FreeRect RectX RectY RectW RectH NewColor ColorR ColorG CologB FreeColor NewPalette PaletteNColors PaletteColors SWSURFACE HWSURFACE ANYFORMAT HWPALETTE DOUBLEBUF FULLSCREEN ASYNCBLIT OPENGL HWACCEL VideoModeOK SetVideoMode UpdateRects Flip SetColors MapRGB (surface,r,g,b) "SDL::MapRGB" translates the composite red (r), green (g), blue (b) colors according to the given surface to a interger color value. This integer can be used in func- tions like "SDL::FillRect", and is not the same as the format independent Color object returned by "SDL::New- Color". MapRGBA (surface,r,g,b,a) "SDL::MapRGBA" works as "SDL::MapRGB" but takes an addi- tional alpha (a) component for semi-transperant colors. GetRGB GetRGBA SaveBMP SetColorKey SRCCOLORKEY RLEACCEL SRCALPHA SetAlpha DisplayFormat BlitSurface FillRect(surface,rect,color) "SDL::FillRect" draws a solid rectangle of color on the given surface. If the rectangle is NULL, the entire sur- face will be painted. WMSetCaption WMGetCaption WMSetIcon WarpMouse NewCursor FreeCursor SetCursor GetCursor ShowCursor NewAudioSpec FreeAudioSpec AUDIO_U8 AUDIO_S8 AUDIO_U16 AUDIO_S16 AUDIO_U16MSB AUDIO_S16MSB NewAudioCVT FreeAudioCVT ConvertAudioData OpenAudio PauseAudio UnlockAudio CloseAudio FreeWAV LoadWAV MixAudio MIX_MAX_VOLUME MIX_DEFAULT_FREQUENCY MIX_DEFAULT_FORMAT MIX_DEFAULT_CHANNELS MIX_NO_FADING MIX_FADING_OUT MIX_FADING_IN MixOpenAudio MixAllocateChannels MixQuerySpec MixLoadWAV MixLoadMusic MixQuickLoadWAV MixFreeChunk MixFreeMusic MixSetPostMixCallback MixSetMusicHook MixSetMusicFinishedHook MixGetMusicHookData MixReverseChannels MixGroupChannel MixGroupChannels MixGroupAvailable MixGroupCount MixGroupOldest MixGroupNewer MixPlayChannel MixPlayChannelTimed MixPlayMusic MixFadeInChannel MixFadeInChannelTimed MixFadeInMusic MixVolume MixVolumeChunk MixVolumeMusic MixHaltChannel MixHaltGroup MixHaltMusic MixExpireChannel MixFadeOutChannel MixFadeOutGroup MixFadeOutMusic MixFadingMusic MixFadingChannel MixPause MixResume MixPaused MixPauseMusic MixResumeMusic MixRewindMusic MixPausedMusic MixPlaying MixPlayingMusic MixCloseAudio NewFont UseFont PutString TextWidth GL_RED_SIZE GL_GREEN_SIZE GL_BLUE_SIZE GL_ALPHA_SIZE GL_ACCUM_RED_SIZE GL_ACCUM_GREEN_SIZE GL_ACCUM_BLUE_SIZE GL_ACCUM_ALPHA_SIZE GL_BUFFER_SIZE GL_DEPTH_SIZE GL_STENCIL_SIZE GL_DOUBLEBUFFER GL_SetAttribute GL_GetAttribute GL_SwapBuffers BigEndian NumJoysticks JoystickName JoystickOpen JoystickOpened JoystickIndex JoystickNumAxes JoystickNumBalls JoystickNumHats JoystickNumButtons JoystickUpdate JoystickGetAxis JoystickGetHat JoystickGetButton JoystickGetBall JoystickClose AUTHOR David J. Goehrig CONTRIBUTORS David J. Goehrig, Wayne Keenan, Guillaume Cottenceau SEE ALSO perl(l) SDL::App(p) SDL::Surface(e) SDL::Event(t) SDL::Rect(t) SDL::Palette(e) SDL::Mixer(r) SDL::Cdrom(m) perl v5.6.1 2002-04-05 SDL(L)