- NAME
- SYNOPSIS
- DESCRIPTION
- Init(flags)
- GetError()
- Delay(ms)
- GetTicks()
- AddTimer(interval,callback,param)
- NewTimer(interval,subroutine)
- RemoveTimer(id)
- SetTimer
- CDNumDrives()
- CDName(drive)
- CDOpen(drive)
- CDTrackListing(cd)
- CDTrackId(track)
- CDTrackType(track)
- CDTrackLength(track)
- CDTrackOffset(track)
- CDStatus(cd)
- CDPlayTracks(cd,track,tracks,frame,frames)
- CDPlay(cd,track,length)
- CDPause(cd)
- CDResume(cd)
- CDStop(cd)
- CDEject(cd)
- CDClose(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)
- MapRGBA (surface,r,g,b,a)
- GetRGB
- GetRGBA
- SaveBMP
- SetColorKey
- SRCCOLORKEY
- RLEACCEL
- SRCALPHA
- SetAlpha
- DisplayFormat
- BlitSurface
- FillRect(surface,rect,color)
- 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
- CONTRIBUTORS
- SEE ALSO
SDL_perl - Simple DirectMedia Layer for Perl
use SDL;
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 documentation provided on a per class basis.
As with the C language API, SDL_perl initializes the SDL environment through the SDL::Init subroutine. This routine takes a mode flag constructed through the bitwise OR product of the following functions:
- INIT_VIDEO()
- INIT_CDROM()
- INIT_EVERYTHING()
- INIT_NOPARACHUTE()
- INIT_JOYSTICK()
- INIT_TIMER()
SDL::Init returns 0 on success, or -1 on error.
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.
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.
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 will register a SDL_NewTimerCallback function to be executed after interval milliseconds, with parameter param. SDL_NewTimerCallback objects can be constructed with the NewTimer subroutine. SDL::PerlTimerCallback 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.
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.
This subroutine taks a SDL_TimerID and removes it from the list of active callbacks. RemoveTimer returns false on failure.
This subroutine is depreciated, please use NewTimer or AddTimer instead.
SDL::CDNumDrives returns the number of available CD-ROM drives in the system.
The subroutine SDL::CDName returns the system specific human readable device name for the given CD-ROM drive.
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.
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 returns the id field of the given SDL_CDtrack structure.
CDTrackType returns the type field of the given SDL_CDtrack structure.
CDTrackLength returns the length field of the given SDL_CDtrack structure.
CDTrackOffset returns the offset field of the given SDL_CDtrack structure.
The function CDStatus returns the current status of the given SDL_CDrom. CDStatus's return values are:
- CD_TRAYEMPTY
- CD_PLAYING
- CD_STOPPED
- CD_PAUSED
- CD_ERROR
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.
SDL::CDPlay plays the next length tracks starting from track
This function will pause CD playback until resume is called.
This function will resume CD playback if paused.
SDL::CDStop will stop CD playback if playing.
This function will eject the CD
This function will release an opened CD.
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 functions like SDL::FillRect, and is not the same as the format independent Color object returned by SDL::NewColor.
SDL::MapRGBA works as SDL::MapRGB but takes an additional alpha (a) component for semi-transperant colors.
SDL::FillRect draws a solid rectangle of color on the given surface. If the rectangle is NULL, the entire surface will be painted.
David J. Goehrig
David J. Goehrig, Wayne Keenan, Guillaume Cottenceau
perl(1) SDL::App(3) SDL::Surface(3) SDL::Event(3) SDL::Rect(3)
SDL::Palette(3) SDL::Mixer(3) SDL::Cdrom(3)