File Coverage

blib/lib/SDL/Constants.pm
Criterion Covered Total %
statement 107 107 100.0
branch 2 4 50.0
condition n/a
subroutine 37 37 100.0
pod 0 2 0.0
total 146 150 97.3


line stmt bran cond sub pod time code
1             #!/usr/bin/env perl
2             package SDL::Constants;
3              
4 55     55   198 use strict;
  55         60  
  55         2243  
5 55     55   800 use warnings;
  55         558  
  55         2622  
6 55     55   712 use base 'Exporter';
  55         56  
  55         4861  
7 55     55   211 use Config;
  55         59  
  55         24218  
8              
9             our @EXPORT_OK = ();
10             our %EXPORT_TAGS = (
11             'SDL/defaults' => [
12             qw(
13             SDL_LIL_ENDIAN
14             SDL_BIG_ENDIAN
15             SDL_BYTEORDER
16              
17             )
18             ],
19             'SDL/init' => [
20             qw(
21             SDL_INIT_AUDIO
22             SDL_INIT_CDROM
23             SDL_INIT_EVENTTHREAD
24             SDL_INIT_EVERYTHING
25             SDL_INIT_JOYSTICK
26             SDL_INIT_NOPARACHUTE
27             SDL_INIT_TIMER
28             SDL_INIT_VIDEO
29             )
30             ],
31             'SDL::Audio/format' => [
32             qw(
33             AUDIO_U8
34             AUDIO_S8
35             AUDIO_U16LSB
36             AUDIO_S16LSB
37             AUDIO_U16MSB
38             AUDIO_S16MSB
39             AUDIO_U16
40             AUDIO_S16
41             AUDIO_U16SYS
42             AUDIO_S16SYS
43             )
44             ],
45             'SDL::Audio/status' => [
46             qw(
47             SDL_AUDIO_STOPPED
48             SDL_AUDIO_PLAYING
49             SDL_AUDIO_PAUSED
50             )
51             ],
52             'SDL::CDROM/defaults' => [
53             qw(
54             CD_FPS
55             SDL_MAX_TRACKS
56             )
57             ],
58             'SDL::CDROM/status' => [
59             qw(
60             CD_TRAYEMPTY
61             CD_STOPPED
62             CD_PLAYING
63             CD_PAUSED
64             CD_ERROR
65             )
66             ],
67             'SDL::CDROM/track_type' => [
68             qw(
69             SDL_AUDIO_TRACK
70             SDL_DATA_TRACK
71             )
72             ],
73             'SDL::Events/type' => [
74             qw(
75             SDL_ACTIVEEVENT
76             SDL_KEYDOWN
77             SDL_KEYUP
78             SDL_MOUSEMOTION
79             SDL_MOUSEBUTTONDOWN
80             SDL_MOUSEBUTTONUP
81             SDL_JOYAXISMOTION
82             SDL_JOYBALLMOTION
83             SDL_JOYHATMOTION
84             SDL_JOYBUTTONDOWN
85             SDL_JOYBUTTONUP
86             SDL_QUIT
87             SDL_SYSWMEVENT
88             SDL_VIDEORESIZE
89             SDL_VIDEOEXPOSE
90             SDL_USEREVENT
91             SDL_NUMEVENTS
92             )
93             ],
94             'SDL::Events/mask' => [
95             qw(
96             SDL_EVENTMASK
97             SDL_ACTIVEEVENTMASK
98             SDL_KEYDOWNMASK
99             SDL_KEYUPMASK
100             SDL_KEYEVENTMASK
101             SDL_MOUSEMOTIONMASK
102             SDL_MOUSEBUTTONDOWNMASK
103             SDL_MOUSEBUTTONUPMASK
104             SDL_MOUSEEVENTMASK
105             SDL_JOYAXISMOTIONMASK
106             SDL_JOYBALLMOTIONMASK
107             SDL_JOYHATMOTIONMASK
108             SDL_JOYBUTTONDOWNMASK
109             SDL_JOYBUTTONUPMASK
110             SDL_JOYEVENTMASK
111             SDL_VIDEORESIZEMASK
112             SDL_VIDEOEXPOSEMASK
113             SDL_QUITMASK
114             SDL_SYSWMEVENTMASK
115             SDL_ALLEVENTS
116             )
117             ],
118             'SDL::Events/action' => [
119             qw(
120             SDL_ADDEVENT
121             SDL_PEEKEVENT
122             SDL_GETEVENT
123             )
124             ],
125             'SDL::Events/state' => [
126             qw(
127             SDL_QUERY
128             SDL_IGNORE
129             SDL_DISABLE
130             SDL_ENABLE
131             SDL_RELEASED
132             SDL_PRESSED
133             )
134             ],
135             'SDL::Events/hat' => [
136             qw(
137             SDL_HAT_CENTERED
138             SDL_HAT_UP
139             SDL_HAT_RIGHT
140             SDL_HAT_DOWN
141             SDL_HAT_LEFT
142             SDL_HAT_RIGHTUP
143             SDL_HAT_RIGHTDOWN
144             SDL_HAT_LEFTUP
145             SDL_HAT_LEFTDOWN
146             )
147             ],
148             'SDL::Events/app' => [
149             qw(
150             SDL_APPMOUSEFOCUS
151             SDL_APPINPUTFOCUS
152             SDL_APPACTIVE
153             )
154             ],
155             'SDL::Events/button' => [
156             qw(
157             SDL_BUTTON
158             SDL_BUTTON_LEFT
159             SDL_BUTTON_MIDDLE
160             SDL_BUTTON_RIGHT
161             SDL_BUTTON_WHEELUP
162             SDL_BUTTON_WHEELDOWN
163             SDL_BUTTON_X1
164             SDL_BUTTON_X2
165             SDL_BUTTON_LMASK
166             SDL_BUTTON_MMASK
167             SDL_BUTTON_RMASK
168             SDL_BUTTON_X1MASK
169             SDL_BUTTON_X2MASK
170             )
171             ],
172             'SDL::Events/keysym' => [
173             qw(
174             SDLK_UNKNOWN
175             SDLK_FIRST
176             SDLK_BACKSPACE
177             SDLK_TAB
178             SDLK_CLEAR
179             SDLK_RETURN
180             SDLK_PAUSE
181             SDLK_ESCAPE
182             SDLK_SPACE
183             SDLK_EXCLAIM
184             SDLK_QUOTEDBL
185             SDLK_HASH
186             SDLK_DOLLAR
187             SDLK_AMPERSAND
188             SDLK_QUOTE
189             SDLK_LEFTPAREN
190             SDLK_RIGHTPAREN
191             SDLK_ASTERISK
192             SDLK_PLUS
193             SDLK_COMMA
194             SDLK_MINUS
195             SDLK_PERIOD
196             SDLK_SLASH
197             SDLK_0
198             SDLK_1
199             SDLK_2
200             SDLK_3
201             SDLK_4
202             SDLK_5
203             SDLK_6
204             SDLK_7
205             SDLK_8
206             SDLK_9
207             SDLK_COLON
208             SDLK_SEMICOLON
209             SDLK_LESS
210             SDLK_EQUALS
211             SDLK_GREATER
212             SDLK_QUESTION
213             SDLK_AT
214             SDLK_LEFTBRACKET
215             SDLK_BACKSLASH
216             SDLK_RIGHTBRACKET
217             SDLK_CARET
218             SDLK_UNDERSCORE
219             SDLK_BACKQUOTE
220             SDLK_a
221             SDLK_b
222             SDLK_c
223             SDLK_d
224             SDLK_e
225             SDLK_f
226             SDLK_g
227             SDLK_h
228             SDLK_i
229             SDLK_j
230             SDLK_k
231             SDLK_l
232             SDLK_m
233             SDLK_n
234             SDLK_o
235             SDLK_p
236             SDLK_q
237             SDLK_r
238             SDLK_s
239             SDLK_t
240             SDLK_u
241             SDLK_v
242             SDLK_w
243             SDLK_x
244             SDLK_y
245             SDLK_z
246             SDLK_DELETE
247             SDLK_WORLD_0
248             SDLK_WORLD_1
249             SDLK_WORLD_2
250             SDLK_WORLD_3
251             SDLK_WORLD_4
252             SDLK_WORLD_5
253             SDLK_WORLD_6
254             SDLK_WORLD_7
255             SDLK_WORLD_8
256             SDLK_WORLD_9
257             SDLK_WORLD_10
258             SDLK_WORLD_11
259             SDLK_WORLD_12
260             SDLK_WORLD_13
261             SDLK_WORLD_14
262             SDLK_WORLD_15
263             SDLK_WORLD_16
264             SDLK_WORLD_17
265             SDLK_WORLD_18
266             SDLK_WORLD_19
267             SDLK_WORLD_20
268             SDLK_WORLD_21
269             SDLK_WORLD_22
270             SDLK_WORLD_23
271             SDLK_WORLD_24
272             SDLK_WORLD_25
273             SDLK_WORLD_26
274             SDLK_WORLD_27
275             SDLK_WORLD_28
276             SDLK_WORLD_29
277             SDLK_WORLD_30
278             SDLK_WORLD_31
279             SDLK_WORLD_32
280             SDLK_WORLD_33
281             SDLK_WORLD_34
282             SDLK_WORLD_35
283             SDLK_WORLD_36
284             SDLK_WORLD_37
285             SDLK_WORLD_38
286             SDLK_WORLD_39
287             SDLK_WORLD_40
288             SDLK_WORLD_41
289             SDLK_WORLD_42
290             SDLK_WORLD_43
291             SDLK_WORLD_44
292             SDLK_WORLD_45
293             SDLK_WORLD_46
294             SDLK_WORLD_47
295             SDLK_WORLD_48
296             SDLK_WORLD_49
297             SDLK_WORLD_50
298             SDLK_WORLD_51
299             SDLK_WORLD_52
300             SDLK_WORLD_53
301             SDLK_WORLD_54
302             SDLK_WORLD_55
303             SDLK_WORLD_56
304             SDLK_WORLD_57
305             SDLK_WORLD_58
306             SDLK_WORLD_59
307             SDLK_WORLD_60
308             SDLK_WORLD_61
309             SDLK_WORLD_62
310             SDLK_WORLD_63
311             SDLK_WORLD_64
312             SDLK_WORLD_65
313             SDLK_WORLD_66
314             SDLK_WORLD_67
315             SDLK_WORLD_68
316             SDLK_WORLD_69
317             SDLK_WORLD_70
318             SDLK_WORLD_71
319             SDLK_WORLD_72
320             SDLK_WORLD_73
321             SDLK_WORLD_74
322             SDLK_WORLD_75
323             SDLK_WORLD_76
324             SDLK_WORLD_77
325             SDLK_WORLD_78
326             SDLK_WORLD_79
327             SDLK_WORLD_80
328             SDLK_WORLD_81
329             SDLK_WORLD_82
330             SDLK_WORLD_83
331             SDLK_WORLD_84
332             SDLK_WORLD_85
333             SDLK_WORLD_86
334             SDLK_WORLD_87
335             SDLK_WORLD_88
336             SDLK_WORLD_89
337             SDLK_WORLD_90
338             SDLK_WORLD_91
339             SDLK_WORLD_92
340             SDLK_WORLD_93
341             SDLK_WORLD_94
342             SDLK_WORLD_95
343             SDLK_KP0
344             SDLK_KP1
345             SDLK_KP2
346             SDLK_KP3
347             SDLK_KP4
348             SDLK_KP5
349             SDLK_KP6
350             SDLK_KP7
351             SDLK_KP8
352             SDLK_KP9
353             SDLK_KP_PERIOD
354             SDLK_KP_DIVIDE
355             SDLK_KP_MULTIPLY
356             SDLK_KP_MINUS
357             SDLK_KP_PLUS
358             SDLK_KP_ENTER
359             SDLK_KP_EQUALS
360             SDLK_UP
361             SDLK_DOWN
362             SDLK_RIGHT
363             SDLK_LEFT
364             SDLK_INSERT
365             SDLK_HOME
366             SDLK_END
367             SDLK_PAGEUP
368             SDLK_PAGEDOWN
369             SDLK_F1
370             SDLK_F2
371             SDLK_F3
372             SDLK_F4
373             SDLK_F5
374             SDLK_F6
375             SDLK_F7
376             SDLK_F8
377             SDLK_F9
378             SDLK_F10
379             SDLK_F11
380             SDLK_F12
381             SDLK_F13
382             SDLK_F14
383             SDLK_F15
384             SDLK_NUMLOCK
385             SDLK_CAPSLOCK
386             SDLK_SCROLLOCK
387             SDLK_RSHIFT
388             SDLK_LSHIFT
389             SDLK_RCTRL
390             SDLK_LCTRL
391             SDLK_RALT
392             SDLK_LALT
393             SDLK_RMETA
394             SDLK_LMETA
395             SDLK_LSUPER
396             SDLK_RSUPER
397             SDLK_MODE
398             SDLK_COMPOSE
399             SDLK_HELP
400             SDLK_PRINT
401             SDLK_SYSREQ
402             SDLK_BREAK
403             SDLK_MENU
404             SDLK_POWER
405             SDLK_EURO
406             SDLK_UNDO
407             )
408             ],
409             'SDL::Events/keymod' => [
410             qw(
411             KMOD_NONE
412             KMOD_LSHIFT
413             KMOD_RSHIFT
414             KMOD_LCTRL
415             KMOD_RCTRL
416             KMOD_LALT
417             KMOD_RALT
418             KMOD_LMETA
419             KMOD_RMETA
420             KMOD_NUM
421             KMOD_CAPS
422             KMOD_MODE
423             KMOD_RESERVED
424             KMOD_CTRL
425             KMOD_SHIFT
426             KMOD_ALT
427             KMOD_META
428             )
429             ],
430             'SDL::GFX/smoothing' => [
431             qw(
432             SMOOTHING_OFF
433             SMOOTHING_ON
434             )
435             ],
436             'SDL::Image/init' => [
437             qw(
438             IMG_INIT_JPG
439             IMG_INIT_PNG
440             IMG_INIT_TIF
441             )
442             ],
443             'SDL::Net/defaults' => [
444             qw(
445             INADDR_ANY
446             INADDR_NONE
447             INADDR_BROADCAST
448             SDLNET_MAX_UDPCHANNELS
449             SDLNET_MAX_UDPADDRESSES
450             )
451             ],
452             'SDL::Mixer/init' => [
453             qw(
454             MIX_INIT_FLAC
455             MIX_INIT_MOD
456             MIX_INIT_MP3
457             MIX_INIT_OGG
458             )
459             ],
460             'SDL::Mixer/defaults' => [
461             qw(
462             MIX_CHANNELS
463             MIX_DEFAULT_FORMAT
464             MIX_DEFAULT_FREQUENCY
465             MIX_DEFAULT_CHANNELS
466             MIX_MAX_VOLUME
467             MIX_CHANNEL_POST
468             )
469             ],
470             'SDL::Mixer/fading' => [
471             qw(
472             MIX_NO_FADING
473             MIX_FADING_OUT
474             MIX_FADING_IN
475             )
476             ],
477             'SDL::Mixer/type' => [
478             qw(
479             MUS_NONE
480             MUS_CMD
481             MUS_WAV
482             MUS_MOD
483             MUS_MID
484             MUS_OGG
485             MUS_MP3
486             MUS_MP3_MAD
487             MUS_MP3_FLAC
488             )
489             ],
490             'SDL::Pango/direction' => [
491             qw(
492             SDLPANGO_DIRECTION_LTR
493             SDLPANGO_DIRECTION_RTL
494             SDLPANGO_DIRECTION_WEAK_LTR
495             SDLPANGO_DIRECTION_WEAK_RTL
496             SDLPANGO_DIRECTION_NEUTRAL
497             )
498             ],
499             'SDL::Pango/align' => [
500             qw(
501             SDLPANGO_ALIGN_LEFT
502             SDLPANGO_ALIGN_CENTER
503             SDLPANGO_ALIGN_RIGHT
504             )
505             ],
506             'SDL::RWOps/defaults' => [
507             qw(
508             RW_SEEK_SET
509             RW_SEEK_CUR
510             RW_SEEK_END
511             )
512             ],
513             'SDL::TTF/hinting' => [
514             qw(
515             TTF_HINTING_NORMAL
516             TTF_HINTING_LIGHT
517             TTF_HINTING_MONO
518             TTF_HINTING_NONE
519             )
520             ],
521             'SDL::TTF/style' => [
522             qw(
523             TTF_STYLE_NORMAL
524             TTF_STYLE_BOLD
525             TTF_STYLE_ITALIC
526             TTF_STYLE_UNDERLINE
527             TTF_STYLE_STRIKETHROUGH
528             )
529             ],
530             'SDL::Video/color' => [
531             qw(
532             SDL_ALPHA_OPAQUE
533             SDL_ALPHA_TRANSPARENT
534             )
535             ],
536             'SDL::Video/surface' => [
537             qw(
538             SDL_SWSURFACE
539             SDL_HWSURFACE
540             SDL_ASYNCBLIT
541             )
542             ],
543             'SDL::Video/video' => [
544             qw(
545             SDL_SWSURFACE
546             SDL_HWSURFACE
547             SDL_ASYNCBLIT
548             SDL_ANYFORMAT
549             SDL_HWPALETTE
550             SDL_DOUBLEBUF
551             SDL_FULLSCREEN
552             SDL_OPENGL
553             SDL_OPENGLBLIT
554             SDL_RESIZABLE
555             SDL_NOFRAME
556             SDL_HWACCEL
557             SDL_SRCCOLORKEY
558             SDL_RLEACCELOK
559             SDL_RLEACCEL
560             SDL_SRCALPHA
561             SDL_PREALLOC
562             )
563             ],
564             'SDL::Video/overlay' => [
565             qw(
566             SDL_YV12_OVERLAY
567             SDL_IYUV_OVERLAY
568             SDL_YUY2_OVERLAY
569             SDL_UYVY_OVERLAY
570             SDL_YVYU_OVERLAY
571             )
572             ],
573             'SDL::Video/palette' => [
574             qw(
575             SDL_LOGPAL
576             SDL_PHYSPAL
577             )
578             ],
579             'SDL::Video/grab' => [
580             qw(
581             SDL_GRAB_QUERY
582             SDL_GRAB_OFF
583             SDL_GRAB_ON
584             SDL_GRAB_FULLSCREEN
585             )
586             ],
587             'SDL::Video/gl' => [
588             qw(
589             SDL_GL_RED_SIZE
590             SDL_GL_GREEN_SIZE
591             SDL_GL_BLUE_SIZE
592             SDL_GL_ALPHA_SIZE
593             SDL_GL_BUFFER_SIZE
594             SDL_GL_DOUBLEBUFFER
595             SDL_GL_DEPTH_SIZE
596             SDL_GL_STENCIL_SIZE
597             SDL_GL_ACCUM_RED_SIZE
598             SDL_GL_ACCUM_GREEN_SIZE
599             SDL_GL_ACCUM_BLUE_SIZE
600             SDL_GL_ACCUM_ALPHA_SIZE
601             SDL_GL_STEREO
602             SDL_GL_MULTISAMPLEBUFFERS
603             SDL_GL_MULTISAMPLESAMPLES
604             SDL_GL_ACCELERATED_VISUAL
605             SDL_GL_SWAP_CONTROL
606             )
607             ],
608             );
609              
610             # 1. all constants from %EXPORT_TAGS are gonna pushed into @EXPORT
611             # 2. tags like 'package/tag' and 'package/next_tag' are merged into tag 'package'
612             my %seen;
613             foreach my $package ( keys %EXPORT_TAGS ) {
614             my $super_package = $package;
615             $super_package =~ s/\/.*$//;
616             push( @{ $EXPORT_TAGS{$super_package} }, @{ $EXPORT_TAGS{$package} } )
617             if $super_package ne $package;
618             push( @EXPORT_OK, grep { !$seen{$_}++ } @{ $EXPORT_TAGS{$package} } );
619             }
620              
621             use constant {
622 55         8704 SDL_INIT_TIMER => 0x00000001,
623             SDL_INIT_AUDIO => 0x00000010,
624             SDL_INIT_VIDEO => 0x00000020,
625             SDL_INIT_CDROM => 0x00000100,
626             SDL_INIT_JOYSTICK => 0x00000200,
627             SDL_INIT_NOPARACHUTE => 0x00100000,
628             SDL_INIT_EVENTTHREAD => 0x01000000,
629             SDL_INIT_EVERYTHING => 0x0000FFFF,
630 55     55   945 }; # SDL/init
  55         58  
631              
632             use constant {
633 55         25039 SDL_LIL_ENDIAN => 1234,
634             SDL_BIG_ENDIAN => 4321,
635             SDL_BYTEORDER => $Config{byteorder}
636 55     55   201 }; # SDL/defaults
  55         64  
637              
638             use constant {
639 55         5153 AUDIO_U8 => 0x0008,
640             AUDIO_S8 => 0x8008,
641             AUDIO_U16LSB => 0x0010,
642             AUDIO_S16LSB => 0x8010,
643             AUDIO_U16MSB => 0x1010,
644             AUDIO_S16MSB => 0x9010,
645             AUDIO_U16 => 0x0010,
646             AUDIO_S16 => 0x8010,
647 55     55   101562 }; # SDL::Audio/format
  55         79  
648              
649             use constant {
650 55 50       2734 AUDIO_U16SYS => ( $Config{byteorder} == 1234 ? 0x0010 : 0x1010 ),
    50          
651             AUDIO_S16SYS => ( $Config{byteorder} == 1234 ? 0x8010 : 0x9010 ),
652 55     55   208 }; # SDL::Audio/format
  55         54  
653              
654             use constant {
655 55         2187 SDL_AUDIO_STOPPED => 0,
656             SDL_AUDIO_PLAYING => 1,
657             SDL_AUDIO_PAUSED => 2,
658 55     55   176 }; # SDL::Audio/status
  55         51  
659              
660             use constant {
661 55         2386 CD_FPS => 75,
662             SDL_MAX_TRACKS => 99,
663 55     55   167 }; # SDL::CDROM/defaults
  55         51  
664              
665             use constant {
666 55         2587 CD_TRAYEMPTY => 0,
667             CD_STOPPED => 1,
668             CD_PLAYING => 2,
669             CD_PAUSED => 3,
670             CD_ERROR => -1,
671 55     55   199 }; # SDL::CDROM/status
  55         51  
672              
673             use constant {
674 55         2424 SDL_AUDIO_TRACK => 0,
675             SDL_DATA_TRACK => 4,
676 55     55   177 }; # SDL::CDROM/track_type
  55         55  
677              
678             use constant {
679 55         15801 SDL_ACTIVEEVENT => 1,
680             SDL_KEYDOWN => 2,
681             SDL_KEYUP => 3,
682             SDL_MOUSEMOTION => 4,
683             SDL_MOUSEBUTTONDOWN => 5,
684             SDL_MOUSEBUTTONUP => 6,
685             SDL_JOYAXISMOTION => 7,
686             SDL_JOYBALLMOTION => 8,
687             SDL_JOYHATMOTION => 9,
688             SDL_JOYBUTTONDOWN => 10,
689             SDL_JOYBUTTONUP => 11,
690             SDL_QUIT => 12,
691             SDL_SYSWMEVENT => 13,
692             SDL_VIDEORESIZE => 16,
693             SDL_VIDEOEXPOSE => 17,
694             SDL_USEREVENT => 24,
695             SDL_NUMEVENTS => 32,
696 55     55   167 }; # SDL::Events/type
  55         52  
697              
698 1425     1425 0 12335 sub SDL_EVENTMASK { return 1 << shift; }
699              
700             use constant {
701 55         97 SDL_ACTIVEEVENTMASK => SDL_EVENTMASK(SDL_ACTIVEEVENT),
702             SDL_KEYDOWNMASK => SDL_EVENTMASK(SDL_KEYDOWN),
703             SDL_KEYUPMASK => SDL_EVENTMASK(SDL_KEYUP),
704             SDL_KEYEVENTMASK => SDL_EVENTMASK(SDL_KEYDOWN) | SDL_EVENTMASK(SDL_KEYUP),
705             SDL_MOUSEMOTIONMASK => SDL_EVENTMASK(SDL_MOUSEMOTION),
706             SDL_MOUSEBUTTONDOWNMASK => SDL_EVENTMASK(SDL_MOUSEBUTTONDOWN),
707             SDL_MOUSEBUTTONUPMASK => SDL_EVENTMASK(SDL_MOUSEBUTTONUP),
708             SDL_MOUSEEVENTMASK => SDL_EVENTMASK(SDL_MOUSEMOTION) |
709             SDL_EVENTMASK(SDL_MOUSEBUTTONDOWN) | SDL_EVENTMASK(SDL_MOUSEBUTTONUP),
710             SDL_JOYAXISMOTIONMASK => SDL_EVENTMASK(SDL_JOYAXISMOTION),
711             SDL_JOYBALLMOTIONMASK => SDL_EVENTMASK(SDL_JOYBALLMOTION),
712             SDL_JOYHATMOTIONMASK => SDL_EVENTMASK(SDL_JOYHATMOTION),
713             SDL_JOYBUTTONDOWNMASK => SDL_EVENTMASK(SDL_JOYBUTTONDOWN),
714             SDL_JOYBUTTONUPMASK => SDL_EVENTMASK(SDL_JOYBUTTONUP),
715             SDL_JOYEVENTMASK => SDL_EVENTMASK(SDL_JOYAXISMOTION) |
716             SDL_EVENTMASK(SDL_JOYBALLMOTION) | SDL_EVENTMASK(SDL_JOYHATMOTION) |
717             SDL_EVENTMASK(SDL_JOYBUTTONDOWN) | SDL_EVENTMASK(SDL_JOYBUTTONUP),
718             SDL_VIDEORESIZEMASK => SDL_EVENTMASK(SDL_VIDEORESIZE),
719             SDL_VIDEOEXPOSEMASK => SDL_EVENTMASK(SDL_VIDEOEXPOSE),
720             SDL_QUITMASK => SDL_EVENTMASK(SDL_QUIT),
721             SDL_SYSWMEVENTMASK => SDL_EVENTMASK(SDL_SYSWMEVENT),
722             SDL_ALLEVENTS => 0xFFFFFFFF,
723 55     55   226 }; # SDL::Events/mask
  55         60  
724              
725             use constant {
726 55         2658 SDL_ADDEVENT => 0,
727             SDL_PEEKEVENT => 1,
728             SDL_GETEVENT => 2,
729 55     55   194 }; # SDL::Events/action
  55         50  
730              
731             use constant {
732 55         3842 SDL_QUERY => -1,
733             SDL_IGNORE => 0,
734             SDL_DISABLE => 0,
735             SDL_ENABLE => 1,
736             SDL_RELEASED => 0,
737             SDL_PRESSED => 1,
738 55     55   175 }; # SDL::Events/state
  55         40  
739              
740             use constant {
741 55         3850 SDL_HAT_CENTERED => 0x00,
742             SDL_HAT_UP => 0x01,
743             SDL_HAT_RIGHT => 0x02,
744             SDL_HAT_DOWN => 0x04,
745             SDL_HAT_LEFT => 0x08,
746             SDL_HAT_RIGHTUP => ( 0x02 | 0x01 ),
747             SDL_HAT_RIGHTDOWN => ( 0x02 | 0x04 ),
748             SDL_HAT_LEFTUP => ( 0x08 | 0x01 ),
749             SDL_HAT_LEFTDOWN => ( 0x08 | 0x04 ),
750 55     55   191 }; # SDL::Events/hat
  55         52  
751              
752             use constant {
753 55         5121 SDL_APPMOUSEFOCUS => 0x01,
754             SDL_APPINPUTFOCUS => 0x02,
755             SDL_APPACTIVE => 0x04,
756 55     55   183 }; # SDL::Events/app
  55         55  
757              
758 275     275 0 15246 sub SDL_BUTTON { return ( 1 << ( ( $_[0] ) - 1 ) ); }
759              
760             use constant {
761 55         235 SDL_BUTTON_LEFT => 1,
762             SDL_BUTTON_MIDDLE => 2,
763             SDL_BUTTON_RIGHT => 3,
764             SDL_BUTTON_WHEELUP => 4,
765             SDL_BUTTON_WHEELDOWN => 5,
766             SDL_BUTTON_X1 => 6,
767             SDL_BUTTON_X2 => 7,
768             SDL_BUTTON_LMASK => SDL_BUTTON(1),
769             SDL_BUTTON_MMASK => SDL_BUTTON(2),
770             SDL_BUTTON_RMASK => SDL_BUTTON(3),
771             SDL_BUTTON_X1MASK => SDL_BUTTON(6),
772             SDL_BUTTON_X2MASK => SDL_BUTTON(7),
773 55     55   197 }; # SDL::Events/button
  55         53  
774              
775             use constant {
776 55         57341 SDLK_UNKNOWN => 0,
777             SDLK_FIRST => 0,
778             SDLK_BACKSPACE => 8,
779             SDLK_TAB => 9,
780             SDLK_CLEAR => 12,
781             SDLK_RETURN => 13,
782             SDLK_PAUSE => 19,
783             SDLK_ESCAPE => 27,
784             SDLK_SPACE => 32,
785             SDLK_EXCLAIM => 33,
786             SDLK_QUOTEDBL => 34,
787             SDLK_HASH => 35,
788             SDLK_DOLLAR => 36,
789             SDLK_AMPERSAND => 38,
790             SDLK_QUOTE => 39,
791             SDLK_LEFTPAREN => 40,
792             SDLK_RIGHTPAREN => 41,
793             SDLK_ASTERISK => 42,
794             SDLK_PLUS => 43,
795             SDLK_COMMA => 44,
796             SDLK_MINUS => 45,
797             SDLK_PERIOD => 46,
798             SDLK_SLASH => 47,
799             SDLK_0 => 48,
800             SDLK_1 => 49,
801             SDLK_2 => 50,
802             SDLK_3 => 51,
803             SDLK_4 => 52,
804             SDLK_5 => 53,
805             SDLK_6 => 54,
806             SDLK_7 => 55,
807             SDLK_8 => 56,
808             SDLK_9 => 57,
809             SDLK_COLON => 58,
810             SDLK_SEMICOLON => 59,
811             SDLK_LESS => 60,
812             SDLK_EQUALS => 61,
813             SDLK_GREATER => 62,
814             SDLK_QUESTION => 63,
815             SDLK_AT => 64,
816             SDLK_LEFTBRACKET => 91,
817             SDLK_BACKSLASH => 92,
818             SDLK_RIGHTBRACKET => 93,
819             SDLK_CARET => 94,
820             SDLK_UNDERSCORE => 95,
821             SDLK_BACKQUOTE => 96,
822             SDLK_a => 97,
823             SDLK_b => 98,
824             SDLK_c => 99,
825             SDLK_d => 100,
826             SDLK_e => 101,
827             SDLK_f => 102,
828             SDLK_g => 103,
829             SDLK_h => 104,
830             SDLK_i => 105,
831             SDLK_j => 106,
832             SDLK_k => 107,
833             SDLK_l => 108,
834             SDLK_m => 109,
835             SDLK_n => 110,
836             SDLK_o => 111,
837             SDLK_p => 112,
838             SDLK_q => 113,
839             SDLK_r => 114,
840             SDLK_s => 115,
841             SDLK_t => 116,
842             SDLK_u => 117,
843             SDLK_v => 118,
844             SDLK_w => 119,
845             SDLK_x => 120,
846             SDLK_y => 121,
847             SDLK_z => 122,
848             SDLK_DELETE => 127,
849             SDLK_WORLD_0 => 160,
850             SDLK_WORLD_1 => 161,
851             SDLK_WORLD_2 => 162,
852             SDLK_WORLD_3 => 163,
853             SDLK_WORLD_4 => 164,
854             SDLK_WORLD_5 => 165,
855             SDLK_WORLD_6 => 166,
856             SDLK_WORLD_7 => 167,
857             SDLK_WORLD_8 => 168,
858             SDLK_WORLD_9 => 169,
859             SDLK_WORLD_10 => 170,
860             SDLK_WORLD_11 => 171,
861             SDLK_WORLD_12 => 172,
862             SDLK_WORLD_13 => 173,
863             SDLK_WORLD_14 => 174,
864             SDLK_WORLD_15 => 175,
865             SDLK_WORLD_16 => 176,
866             SDLK_WORLD_17 => 177,
867             SDLK_WORLD_18 => 178,
868             SDLK_WORLD_19 => 179,
869             SDLK_WORLD_20 => 180,
870             SDLK_WORLD_21 => 181,
871             SDLK_WORLD_22 => 182,
872             SDLK_WORLD_23 => 183,
873             SDLK_WORLD_24 => 184,
874             SDLK_WORLD_25 => 185,
875             SDLK_WORLD_26 => 186,
876             SDLK_WORLD_27 => 187,
877             SDLK_WORLD_28 => 188,
878             SDLK_WORLD_29 => 189,
879             SDLK_WORLD_30 => 190,
880             SDLK_WORLD_31 => 191,
881             SDLK_WORLD_32 => 192,
882             SDLK_WORLD_33 => 193,
883             SDLK_WORLD_34 => 194,
884             SDLK_WORLD_35 => 195,
885             SDLK_WORLD_36 => 196,
886             SDLK_WORLD_37 => 197,
887             SDLK_WORLD_38 => 198,
888             SDLK_WORLD_39 => 199,
889             SDLK_WORLD_40 => 200,
890             SDLK_WORLD_41 => 201,
891             SDLK_WORLD_42 => 202,
892             SDLK_WORLD_43 => 203,
893             SDLK_WORLD_44 => 204,
894             SDLK_WORLD_45 => 205,
895             SDLK_WORLD_46 => 206,
896             SDLK_WORLD_47 => 207,
897             SDLK_WORLD_48 => 208,
898             SDLK_WORLD_49 => 209,
899             SDLK_WORLD_50 => 210,
900             SDLK_WORLD_51 => 211,
901             SDLK_WORLD_52 => 212,
902             SDLK_WORLD_53 => 213,
903             SDLK_WORLD_54 => 214,
904             SDLK_WORLD_55 => 215,
905             SDLK_WORLD_56 => 216,
906             SDLK_WORLD_57 => 217,
907             SDLK_WORLD_58 => 218,
908             SDLK_WORLD_59 => 219,
909             SDLK_WORLD_60 => 220,
910             SDLK_WORLD_61 => 221,
911             SDLK_WORLD_62 => 222,
912             SDLK_WORLD_63 => 223,
913             SDLK_WORLD_64 => 224,
914             SDLK_WORLD_65 => 225,
915             SDLK_WORLD_66 => 226,
916             SDLK_WORLD_67 => 227,
917             SDLK_WORLD_68 => 228,
918             SDLK_WORLD_69 => 229,
919             SDLK_WORLD_70 => 230,
920             SDLK_WORLD_71 => 231,
921             SDLK_WORLD_72 => 232,
922             SDLK_WORLD_73 => 233,
923             SDLK_WORLD_74 => 234,
924             SDLK_WORLD_75 => 235,
925             SDLK_WORLD_76 => 236,
926             SDLK_WORLD_77 => 237,
927             SDLK_WORLD_78 => 238,
928             SDLK_WORLD_79 => 239,
929             SDLK_WORLD_80 => 240,
930             SDLK_WORLD_81 => 241,
931             SDLK_WORLD_82 => 242,
932             SDLK_WORLD_83 => 243,
933             SDLK_WORLD_84 => 244,
934             SDLK_WORLD_85 => 245,
935             SDLK_WORLD_86 => 246,
936             SDLK_WORLD_87 => 247,
937             SDLK_WORLD_88 => 248,
938             SDLK_WORLD_89 => 249,
939             SDLK_WORLD_90 => 250,
940             SDLK_WORLD_91 => 251,
941             SDLK_WORLD_92 => 252,
942             SDLK_WORLD_93 => 253,
943             SDLK_WORLD_94 => 254,
944             SDLK_WORLD_95 => 255,
945             SDLK_KP0 => 256,
946             SDLK_KP1 => 257,
947             SDLK_KP2 => 258,
948             SDLK_KP3 => 259,
949             SDLK_KP4 => 260,
950             SDLK_KP5 => 261,
951             SDLK_KP6 => 262,
952             SDLK_KP7 => 263,
953             SDLK_KP8 => 264,
954             SDLK_KP9 => 265,
955             SDLK_KP_PERIOD => 266,
956             SDLK_KP_DIVIDE => 267,
957             SDLK_KP_MULTIPLY => 268,
958             SDLK_KP_MINUS => 269,
959             SDLK_KP_PLUS => 270,
960             SDLK_KP_ENTER => 271,
961             SDLK_KP_EQUALS => 272,
962             SDLK_UP => 273,
963             SDLK_DOWN => 274,
964             SDLK_RIGHT => 275,
965             SDLK_LEFT => 276,
966             SDLK_INSERT => 277,
967             SDLK_HOME => 278,
968             SDLK_END => 279,
969             SDLK_PAGEUP => 280,
970             SDLK_PAGEDOWN => 281,
971             SDLK_F1 => 282,
972             SDLK_F2 => 283,
973             SDLK_F3 => 284,
974             SDLK_F4 => 285,
975             SDLK_F5 => 286,
976             SDLK_F6 => 287,
977             SDLK_F7 => 288,
978             SDLK_F8 => 289,
979             SDLK_F9 => 290,
980             SDLK_F10 => 291,
981             SDLK_F11 => 292,
982             SDLK_F12 => 293,
983             SDLK_F13 => 294,
984             SDLK_F14 => 295,
985             SDLK_F15 => 296,
986             SDLK_NUMLOCK => 300,
987             SDLK_CAPSLOCK => 301,
988             SDLK_SCROLLOCK => 302,
989             SDLK_RSHIFT => 303,
990             SDLK_LSHIFT => 304,
991             SDLK_RCTRL => 305,
992             SDLK_LCTRL => 306,
993             SDLK_RALT => 307,
994             SDLK_LALT => 308,
995             SDLK_RMETA => 309,
996             SDLK_LMETA => 310,
997             SDLK_LSUPER => 311,
998             SDLK_RSUPER => 312,
999             SDLK_MODE => 313,
1000             SDLK_COMPOSE => 314,
1001             SDLK_HELP => 315,
1002             SDLK_PRINT => 316,
1003             SDLK_SYSREQ => 317,
1004             SDLK_BREAK => 318,
1005             SDLK_MENU => 319,
1006             SDLK_POWER => 320,
1007             SDLK_EURO => 321,
1008             SDLK_UNDO => 322,
1009 55     55   208 }; # SDL::Events/keysym
  55         60  
1010              
1011             use constant {
1012 55         6897 KMOD_NONE => 0x0000,
1013             KMOD_LSHIFT => 0x0001,
1014             KMOD_RSHIFT => 0x0002,
1015             KMOD_LCTRL => 0x0040,
1016             KMOD_RCTRL => 0x0080,
1017             KMOD_LALT => 0x0100,
1018             KMOD_RALT => 0x0200,
1019             KMOD_LMETA => 0x0400,
1020             KMOD_RMETA => 0x0800,
1021             KMOD_NUM => 0x1000,
1022             KMOD_CAPS => 0x2000,
1023             KMOD_MODE => 0x4000,
1024             KMOD_RESERVED => 0x8000
1025 55     55   280 }; # SDL::Events/keymod
  55         55  
1026              
1027             use constant {
1028 55         2779 KMOD_CTRL => ( KMOD_LCTRL | KMOD_RCTRL ),
1029             KMOD_SHIFT => ( KMOD_LSHIFT | KMOD_RSHIFT ),
1030             KMOD_ALT => ( KMOD_LALT | KMOD_RALT ),
1031             KMOD_META => ( KMOD_LMETA | KMOD_RMETA ),
1032 55     55   199 }; # SDL::Events/keymod
  55         53  
1033              
1034             use constant {
1035 55         2118 SMOOTHING_OFF => 0,
1036             SMOOTHING_ON => 1,
1037 55     55   187 }; # SDL::GFX/smoothing
  55         51  
1038              
1039             use constant {
1040 55         2353 IMG_INIT_JPG => 0x00000001,
1041             IMG_INIT_PNG => 0x00000002,
1042             IMG_INIT_TIF => 0x00000004,
1043 55     55   175 }; # SDL::Image
  55         50  
1044              
1045             use constant {
1046 55         2920 MIX_INIT_FLAC => 0x00000001,
1047             MIX_INIT_MOD => 0x00000002,
1048             MIX_INIT_MP3 => 0x00000004,
1049             MIX_INIT_OGG => 0x00000008
1050 55     55   174 }; # SDL::Mixer/init
  55         48  
1051              
1052             use constant {
1053 55         2893 MIX_CHANNELS => 8,
1054             MIX_DEFAULT_FORMAT => 32784,
1055             MIX_DEFAULT_FREQUENCY => 22050,
1056             MIX_DEFAULT_CHANNELS => 2,
1057             MIX_MAX_VOLUME => 128,
1058             MIX_CHANNEL_POST => -2,
1059 55     55   192 }; # SDL::Mixer/defaults
  55         55  
1060              
1061             use constant {
1062 55         3215 MIX_NO_FADING => 0,
1063             MIX_FADING_OUT => 1,
1064             MIX_FADING_IN => 2,
1065 55     55   172 }; # SDL::Mixer/fading
  55         64  
1066              
1067             use constant {
1068 55         3933 MUS_NONE => 0,
1069             MUS_CMD => 1,
1070             MUS_WAV => 2,
1071             MUS_MOD => 3,
1072             MUS_MID => 4,
1073             MUS_OGG => 5,
1074             MUS_MP3 => 6,
1075             MUS_MP3_MAD => 7,
1076             MUS_MP3_FLAC => 8,
1077 55     55   177 }; # SDL::Mixer/type
  55         62  
1078              
1079             use constant {
1080 55         2989 INADDR_ANY => 0x00000000,
1081             INADDR_NONE => 0xFFFFFFFF,
1082             INADDR_BROADCAST => 0xFFFFFFFF,
1083             SDLNET_MAX_UDPCHANNELS => 32,
1084             SDLNET_MAX_UDPADDRESSES => 4
1085 55     55   196 }; # SDL::Net
  55         50  
1086              
1087             use constant {
1088 55         2835 SDLPANGO_DIRECTION_LTR => 0,
1089             SDLPANGO_DIRECTION_RTL => 1,
1090             SDLPANGO_DIRECTION_WEAK_LTR => 2,
1091             SDLPANGO_DIRECTION_WEAK_RTL => 3,
1092             SDLPANGO_DIRECTION_NEUTRAL => 4
1093 55     55   208 }; # SDL::Pango/direction
  55         60  
1094              
1095             use constant {
1096 55         2326 SDLPANGO_ALIGN_LEFT => 0,
1097             SDLPANGO_ALIGN_CENTER => 1,
1098             SDLPANGO_ALIGN_RIGHT => 2
1099 55     55   182 }; # SDL::Pango/align
  55         53  
1100              
1101             use constant {
1102 55         2662 RW_SEEK_SET => 0,
1103             RW_SEEK_CUR => 1,
1104             RW_SEEK_END => 2,
1105 55     55   180 }; # SDL::RWOps/defaults
  55         59  
1106              
1107             use constant {
1108 55         5546 TTF_HINTING_NORMAL => 0,
1109             TTF_HINTING_LIGHT => 1,
1110             TTF_HINTING_MONO => 2,
1111             TTF_HINTING_NONE => 3,
1112             TTF_STYLE_NORMAL => 0,
1113             TTF_STYLE_BOLD => 1,
1114             TTF_STYLE_ITALIC => 2,
1115             TTF_STYLE_UNDERLINE => 4,
1116             TTF_STYLE_STRIKETHROUGH => 8,
1117 55     55   215 }; # SDL::TTF
  55         52  
1118              
1119             use constant {
1120 55         9694 SDL_ALPHA_OPAQUE => 255,
1121             SDL_ALPHA_TRANSPARENT => 0,
1122              
1123             SDL_SWSURFACE => 0x00000000, # for SDL::Surface->new() and set_video_mode()
1124             SDL_HWSURFACE => 0x00000001, # for SDL::Surface->new() and set_video_mode()
1125             SDL_ASYNCBLIT => 0x00000004, # for SDL::Surface->new() and set_video_mode()
1126             SDL_ANYFORMAT => 0x10000000, # set_video_mode()
1127             SDL_HWPALETTE => 0x20000000, # set_video_mode()
1128             SDL_DOUBLEBUF => 0x40000000, # set_video_mode()
1129             SDL_FULLSCREEN => 0x80000000, # set_video_mode()
1130             SDL_OPENGL => 0x00000002, # set_video_mode()
1131             SDL_OPENGLBLIT => 0x0000000A, # set_video_mode()
1132             SDL_RESIZABLE => 0x00000010, # set_video_mode()
1133             SDL_NOFRAME => 0x00000020, # set_video_mode()
1134             SDL_HWACCEL => 0x00000100, # set_video_mode()
1135             SDL_SRCCOLORKEY => 0x00001000, # set_video_mode()
1136             SDL_RLEACCELOK => 0x00002000, # set_video_mode()
1137             SDL_RLEACCEL => 0x00004000, # set_video_mode()
1138             SDL_SRCALPHA => 0x00010000, # set_video_mode()
1139             SDL_PREALLOC => 0x01000000, # set_video_mode()
1140              
1141             SDL_YV12_OVERLAY => 0x32315659, # Planar mode: Y + V + U (3 planes)
1142             SDL_IYUV_OVERLAY => 0x56555949, # Planar mode: Y + U + V (3 planes)
1143             SDL_YUY2_OVERLAY => 0x32595559, # Packed mode: Y0+U0+Y1+V0 (1 plane)
1144             SDL_UYVY_OVERLAY => 0x59565955, # Packed mode: U0+Y0+V0+Y1 (1 plane)
1145             SDL_YVYU_OVERLAY => 0x55595659, # Packed mode: Y0+V0+Y1+U0 (1 plane)
1146              
1147             SDL_LOGPAL => 0x01, # for set_palette()
1148             SDL_PHYSPAL => 0x02, # for set_palette()
1149              
1150             SDL_GRAB_QUERY => -1, # SDL_GrabMode
1151             SDL_GRAB_OFF => 0, # SDL_GrabMode
1152             SDL_GRAB_ON => 1, # SDL_GrabMode
1153             SDL_GRAB_FULLSCREEN => 2, # SDL_GrabMode, used internally
1154 55     55   187 }; # SDL::Video/...
  55         57  
1155              
1156             use constant {
1157 55         7644 SDL_GL_RED_SIZE => 0,
1158             SDL_GL_GREEN_SIZE => 1,
1159             SDL_GL_BLUE_SIZE => 2,
1160             SDL_GL_ALPHA_SIZE => 3,
1161             SDL_GL_BUFFER_SIZE => 4,
1162             SDL_GL_DOUBLEBUFFER => 5,
1163             SDL_GL_DEPTH_SIZE => 6,
1164             SDL_GL_STENCIL_SIZE => 7,
1165             SDL_GL_ACCUM_RED_SIZE => 8,
1166             SDL_GL_ACCUM_GREEN_SIZE => 9,
1167             SDL_GL_ACCUM_BLUE_SIZE => 10,
1168             SDL_GL_ACCUM_ALPHA_SIZE => 11,
1169             SDL_GL_STEREO => 12,
1170             SDL_GL_MULTISAMPLEBUFFERS => 13,
1171             SDL_GL_MULTISAMPLESAMPLES => 14,
1172             SDL_GL_ACCELERATED_VISUAL => 15,
1173             SDL_GL_SWAP_CONTROL => 16,
1174 55     55   231 }; # SDL::Video/gl
  55         59  
1175              
1176             1;
1177              
1178             __END__