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