/lib/SDL/Constants.pm

http://github.com/PerlGameDev/SDL · Perl · 3724 lines · 3665 code · 55 blank · 4 comment · 3 complexity · 0504d0ec95c26bb1949b85c1eff5be94 MD5 · raw file

Large files are truncated click here to view the full file

  1. #!/usr/bin/env perl
  2. package SDL::Constants;
  3. use strict;
  4. use warnings;
  5. use base 'Exporter';
  6. use Config;
  7. our $VERSION = 2.548;
  8. our @EXPORT_OK = ();
  9. our %EXPORT_TAGS = (
  10. 'SDL/defaults' => [
  11. qw(
  12. SDL_LIL_ENDIAN
  13. SDL_BIG_ENDIAN
  14. SDL_BYTEORDER
  15. )
  16. ],
  17. 'SDL/init' => [
  18. qw(
  19. SDL_INIT_AUDIO
  20. SDL_INIT_CDROM
  21. SDL_INIT_EVENTTHREAD
  22. SDL_INIT_EVERYTHING
  23. SDL_INIT_JOYSTICK
  24. SDL_INIT_NOPARACHUTE
  25. SDL_INIT_TIMER
  26. SDL_INIT_VIDEO
  27. )
  28. ],
  29. 'SDL::Audio/format' => [
  30. qw(
  31. AUDIO_U8
  32. AUDIO_S8
  33. AUDIO_U16LSB
  34. AUDIO_S16LSB
  35. AUDIO_U16MSB
  36. AUDIO_S16MSB
  37. AUDIO_U16
  38. AUDIO_S16
  39. AUDIO_U16SYS
  40. AUDIO_S16SYS
  41. )
  42. ],
  43. 'SDL::Audio/status' => [
  44. qw(
  45. SDL_AUDIO_STOPPED
  46. SDL_AUDIO_PLAYING
  47. SDL_AUDIO_PAUSED
  48. )
  49. ],
  50. 'SDL::CDROM/defaults' => [
  51. qw(
  52. CD_FPS
  53. SDL_MAX_TRACKS
  54. )
  55. ],
  56. 'SDL::CDROM/status' => [
  57. qw(
  58. CD_TRAYEMPTY
  59. CD_STOPPED
  60. CD_PLAYING
  61. CD_PAUSED
  62. CD_ERROR
  63. )
  64. ],
  65. 'SDL::CDROM/track_type' => [
  66. qw(
  67. SDL_AUDIO_TRACK
  68. SDL_DATA_TRACK
  69. )
  70. ],
  71. 'SDL::Events/type' => [
  72. qw(
  73. SDL_ACTIVEEVENT
  74. SDL_KEYDOWN
  75. SDL_KEYUP
  76. SDL_MOUSEMOTION
  77. SDL_MOUSEBUTTONDOWN
  78. SDL_MOUSEBUTTONUP
  79. SDL_JOYAXISMOTION
  80. SDL_JOYBALLMOTION
  81. SDL_JOYHATMOTION
  82. SDL_JOYBUTTONDOWN
  83. SDL_JOYBUTTONUP
  84. SDL_QUIT
  85. SDL_SYSWMEVENT
  86. SDL_VIDEORESIZE
  87. SDL_VIDEOEXPOSE
  88. SDL_USEREVENT
  89. SDL_NUMEVENTS
  90. )
  91. ],
  92. 'SDL::Events/mask' => [
  93. qw(
  94. SDL_EVENTMASK
  95. SDL_ACTIVEEVENTMASK
  96. SDL_KEYDOWNMASK
  97. SDL_KEYUPMASK
  98. SDL_KEYEVENTMASK
  99. SDL_MOUSEMOTIONMASK
  100. SDL_MOUSEBUTTONDOWNMASK
  101. SDL_MOUSEBUTTONUPMASK
  102. SDL_MOUSEEVENTMASK
  103. SDL_JOYAXISMOTIONMASK
  104. SDL_JOYBALLMOTIONMASK
  105. SDL_JOYHATMOTIONMASK
  106. SDL_JOYBUTTONDOWNMASK
  107. SDL_JOYBUTTONUPMASK
  108. SDL_JOYEVENTMASK
  109. SDL_VIDEORESIZEMASK
  110. SDL_VIDEOEXPOSEMASK
  111. SDL_QUITMASK
  112. SDL_SYSWMEVENTMASK
  113. SDL_ALLEVENTS
  114. )
  115. ],
  116. 'SDL::Events/action' => [
  117. qw(
  118. SDL_ADDEVENT
  119. SDL_PEEKEVENT
  120. SDL_GETEVENT
  121. )
  122. ],
  123. 'SDL::Events/state' => [
  124. qw(
  125. SDL_QUERY
  126. SDL_IGNORE
  127. SDL_DISABLE
  128. SDL_ENABLE
  129. SDL_RELEASED
  130. SDL_PRESSED
  131. )
  132. ],
  133. 'SDL::Events/hat' => [
  134. qw(
  135. SDL_HAT_CENTERED
  136. SDL_HAT_UP
  137. SDL_HAT_RIGHT
  138. SDL_HAT_DOWN
  139. SDL_HAT_LEFT
  140. SDL_HAT_RIGHTUP
  141. SDL_HAT_RIGHTDOWN
  142. SDL_HAT_LEFTUP
  143. SDL_HAT_LEFTDOWN
  144. )
  145. ],
  146. 'SDL::Events/app' => [
  147. qw(
  148. SDL_APPMOUSEFOCUS
  149. SDL_APPINPUTFOCUS
  150. SDL_APPACTIVE
  151. )
  152. ],
  153. 'SDL::Events/button' => [
  154. qw(
  155. SDL_BUTTON
  156. SDL_BUTTON_LEFT
  157. SDL_BUTTON_MIDDLE
  158. SDL_BUTTON_RIGHT
  159. SDL_BUTTON_WHEELUP
  160. SDL_BUTTON_WHEELDOWN
  161. SDL_BUTTON_X1
  162. SDL_BUTTON_X2
  163. SDL_BUTTON_LMASK
  164. SDL_BUTTON_MMASK
  165. SDL_BUTTON_RMASK
  166. SDL_BUTTON_X1MASK
  167. SDL_BUTTON_X2MASK
  168. )
  169. ],
  170. 'SDL::Events/keysym' => [
  171. qw(
  172. SDLK_UNKNOWN
  173. SDLK_FIRST
  174. SDLK_BACKSPACE
  175. SDLK_TAB
  176. SDLK_CLEAR
  177. SDLK_RETURN
  178. SDLK_PAUSE
  179. SDLK_ESCAPE
  180. SDLK_SPACE
  181. SDLK_EXCLAIM
  182. SDLK_QUOTEDBL
  183. SDLK_HASH
  184. SDLK_DOLLAR
  185. SDLK_AMPERSAND
  186. SDLK_QUOTE
  187. SDLK_LEFTPAREN
  188. SDLK_RIGHTPAREN
  189. SDLK_ASTERISK
  190. SDLK_PLUS
  191. SDLK_COMMA
  192. SDLK_MINUS
  193. SDLK_PERIOD
  194. SDLK_SLASH
  195. SDLK_0
  196. SDLK_1
  197. SDLK_2
  198. SDLK_3
  199. SDLK_4
  200. SDLK_5
  201. SDLK_6
  202. SDLK_7
  203. SDLK_8
  204. SDLK_9
  205. SDLK_COLON
  206. SDLK_SEMICOLON
  207. SDLK_LESS
  208. SDLK_EQUALS
  209. SDLK_GREATER
  210. SDLK_QUESTION
  211. SDLK_AT
  212. SDLK_LEFTBRACKET
  213. SDLK_BACKSLASH
  214. SDLK_RIGHTBRACKET
  215. SDLK_CARET
  216. SDLK_UNDERSCORE
  217. SDLK_BACKQUOTE
  218. SDLK_a
  219. SDLK_b
  220. SDLK_c
  221. SDLK_d
  222. SDLK_e
  223. SDLK_f
  224. SDLK_g
  225. SDLK_h
  226. SDLK_i
  227. SDLK_j
  228. SDLK_k
  229. SDLK_l
  230. SDLK_m
  231. SDLK_n
  232. SDLK_o
  233. SDLK_p
  234. SDLK_q
  235. SDLK_r
  236. SDLK_s
  237. SDLK_t
  238. SDLK_u
  239. SDLK_v
  240. SDLK_w
  241. SDLK_x
  242. SDLK_y
  243. SDLK_z
  244. SDLK_DELETE
  245. SDLK_WORLD_0
  246. SDLK_WORLD_1
  247. SDLK_WORLD_2
  248. SDLK_WORLD_3
  249. SDLK_WORLD_4
  250. SDLK_WORLD_5
  251. SDLK_WORLD_6
  252. SDLK_WORLD_7
  253. SDLK_WORLD_8
  254. SDLK_WORLD_9
  255. SDLK_WORLD_10
  256. SDLK_WORLD_11
  257. SDLK_WORLD_12
  258. SDLK_WORLD_13
  259. SDLK_WORLD_14
  260. SDLK_WORLD_15
  261. SDLK_WORLD_16
  262. SDLK_WORLD_17
  263. SDLK_WORLD_18
  264. SDLK_WORLD_19
  265. SDLK_WORLD_20
  266. SDLK_WORLD_21
  267. SDLK_WORLD_22
  268. SDLK_WORLD_23
  269. SDLK_WORLD_24
  270. SDLK_WORLD_25
  271. SDLK_WORLD_26
  272. SDLK_WORLD_27
  273. SDLK_WORLD_28
  274. SDLK_WORLD_29
  275. SDLK_WORLD_30
  276. SDLK_WORLD_31
  277. SDLK_WORLD_32
  278. SDLK_WORLD_33
  279. SDLK_WORLD_34
  280. SDLK_WORLD_35
  281. SDLK_WORLD_36
  282. SDLK_WORLD_37
  283. SDLK_WORLD_38
  284. SDLK_WORLD_39
  285. SDLK_WORLD_40
  286. SDLK_WORLD_41
  287. SDLK_WORLD_42
  288. SDLK_WORLD_43
  289. SDLK_WORLD_44
  290. SDLK_WORLD_45
  291. SDLK_WORLD_46
  292. SDLK_WORLD_47
  293. SDLK_WORLD_48
  294. SDLK_WORLD_49
  295. SDLK_WORLD_50
  296. SDLK_WORLD_51
  297. SDLK_WORLD_52
  298. SDLK_WORLD_53
  299. SDLK_WORLD_54
  300. SDLK_WORLD_55
  301. SDLK_WORLD_56
  302. SDLK_WORLD_57
  303. SDLK_WORLD_58
  304. SDLK_WORLD_59
  305. SDLK_WORLD_60
  306. SDLK_WORLD_61
  307. SDLK_WORLD_62
  308. SDLK_WORLD_63
  309. SDLK_WORLD_64
  310. SDLK_WORLD_65
  311. SDLK_WORLD_66
  312. SDLK_WORLD_67
  313. SDLK_WORLD_68
  314. SDLK_WORLD_69
  315. SDLK_WORLD_70
  316. SDLK_WORLD_71
  317. SDLK_WORLD_72
  318. SDLK_WORLD_73
  319. SDLK_WORLD_74
  320. SDLK_WORLD_75
  321. SDLK_WORLD_76
  322. SDLK_WORLD_77
  323. SDLK_WORLD_78
  324. SDLK_WORLD_79
  325. SDLK_WORLD_80
  326. SDLK_WORLD_81
  327. SDLK_WORLD_82
  328. SDLK_WORLD_83
  329. SDLK_WORLD_84
  330. SDLK_WORLD_85
  331. SDLK_WORLD_86
  332. SDLK_WORLD_87
  333. SDLK_WORLD_88
  334. SDLK_WORLD_89
  335. SDLK_WORLD_90
  336. SDLK_WORLD_91
  337. SDLK_WORLD_92
  338. SDLK_WORLD_93
  339. SDLK_WORLD_94
  340. SDLK_WORLD_95
  341. SDLK_KP0
  342. SDLK_KP1
  343. SDLK_KP2
  344. SDLK_KP3
  345. SDLK_KP4
  346. SDLK_KP5
  347. SDLK_KP6
  348. SDLK_KP7
  349. SDLK_KP8
  350. SDLK_KP9
  351. SDLK_KP_PERIOD
  352. SDLK_KP_DIVIDE
  353. SDLK_KP_MULTIPLY
  354. SDLK_KP_MINUS
  355. SDLK_KP_PLUS
  356. SDLK_KP_ENTER
  357. SDLK_KP_EQUALS
  358. SDLK_UP
  359. SDLK_DOWN
  360. SDLK_RIGHT
  361. SDLK_LEFT
  362. SDLK_INSERT
  363. SDLK_HOME
  364. SDLK_END
  365. SDLK_PAGEUP
  366. SDLK_PAGEDOWN
  367. SDLK_F1
  368. SDLK_F2
  369. SDLK_F3
  370. SDLK_F4
  371. SDLK_F5
  372. SDLK_F6
  373. SDLK_F7
  374. SDLK_F8
  375. SDLK_F9
  376. SDLK_F10
  377. SDLK_F11
  378. SDLK_F12
  379. SDLK_F13
  380. SDLK_F14
  381. SDLK_F15
  382. SDLK_NUMLOCK
  383. SDLK_CAPSLOCK
  384. SDLK_SCROLLOCK
  385. SDLK_RSHIFT
  386. SDLK_LSHIFT
  387. SDLK_RCTRL
  388. SDLK_LCTRL
  389. SDLK_RALT
  390. SDLK_LALT
  391. SDLK_RMETA
  392. SDLK_LMETA
  393. SDLK_LSUPER
  394. SDLK_RSUPER
  395. SDLK_MODE
  396. SDLK_COMPOSE
  397. SDLK_HELP
  398. SDLK_PRINT
  399. SDLK_SYSREQ
  400. SDLK_BREAK
  401. SDLK_MENU
  402. SDLK_POWER
  403. SDLK_EURO
  404. SDLK_UNDO
  405. )
  406. ],
  407. 'SDL::Events/keymod' => [
  408. qw(
  409. KMOD_NONE
  410. KMOD_LSHIFT
  411. KMOD_RSHIFT
  412. KMOD_LCTRL
  413. KMOD_RCTRL
  414. KMOD_LALT
  415. KMOD_RALT
  416. KMOD_LMETA
  417. KMOD_RMETA
  418. KMOD_NUM
  419. KMOD_CAPS
  420. KMOD_MODE
  421. KMOD_RESERVED
  422. KMOD_CTRL
  423. KMOD_SHIFT
  424. KMOD_ALT
  425. KMOD_META
  426. )
  427. ],
  428. 'SDL::GFX/smoothing' => [
  429. qw(
  430. SMOOTHING_OFF
  431. SMOOTHING_ON
  432. )
  433. ],
  434. 'SDL::Image/init' => [
  435. qw(
  436. IMG_INIT_JPG
  437. IMG_INIT_PNG
  438. IMG_INIT_TIF
  439. )
  440. ],
  441. 'SDL::Net/defaults' => [
  442. qw(
  443. INADDR_ANY
  444. INADDR_NONE
  445. INADDR_BROADCAST
  446. SDLNET_MAX_UDPCHANNELS
  447. SDLNET_MAX_UDPADDRESSES
  448. )
  449. ],
  450. 'SDL::Mixer/init' => [
  451. qw(
  452. MIX_INIT_FLAC
  453. MIX_INIT_MOD
  454. MIX_INIT_MP3
  455. MIX_INIT_OGG
  456. )
  457. ],
  458. 'SDL::Mixer/defaults' => [
  459. qw(
  460. MIX_CHANNELS
  461. MIX_DEFAULT_FORMAT
  462. MIX_DEFAULT_FREQUENCY
  463. MIX_DEFAULT_CHANNELS
  464. MIX_MAX_VOLUME
  465. MIX_CHANNEL_POST
  466. )
  467. ],
  468. 'SDL::Mixer/fading' => [
  469. qw(
  470. MIX_NO_FADING
  471. MIX_FADING_OUT
  472. MIX_FADING_IN
  473. )
  474. ],
  475. 'SDL::Mixer/type' => [
  476. qw(
  477. MUS_NONE
  478. MUS_CMD
  479. MUS_WAV
  480. MUS_MOD
  481. MUS_MID
  482. MUS_OGG
  483. MUS_MP3
  484. MUS_MP3_MAD
  485. MUS_MP3_FLAC
  486. )
  487. ],
  488. 'SDL::Pango/direction' => [
  489. qw(
  490. SDLPANGO_DIRECTION_LTR
  491. SDLPANGO_DIRECTION_RTL
  492. SDLPANGO_DIRECTION_WEAK_LTR
  493. SDLPANGO_DIRECTION_WEAK_RTL
  494. SDLPANGO_DIRECTION_NEUTRAL
  495. )
  496. ],
  497. 'SDL::Pango/align' => [
  498. qw(
  499. SDLPANGO_ALIGN_LEFT
  500. SDLPANGO_ALIGN_CENTER
  501. SDLPANGO_ALIGN_RIGHT
  502. )
  503. ],
  504. 'SDL::RWOps/defaults' => [
  505. qw(
  506. RW_SEEK_SET
  507. RW_SEEK_CUR
  508. RW_SEEK_END
  509. )
  510. ],
  511. 'SDL::TTF/hinting' => [
  512. qw(
  513. TTF_HINTING_NORMAL
  514. TTF_HINTING_LIGHT
  515. TTF_HINTING_MONO
  516. TTF_HINTING_NONE
  517. )
  518. ],
  519. 'SDL::TTF/style' => [
  520. qw(
  521. TTF_STYLE_NORMAL
  522. TTF_STYLE_BOLD
  523. TTF_STYLE_ITALIC
  524. TTF_STYLE_UNDERLINE
  525. TTF_STYLE_STRIKETHROUGH
  526. )
  527. ],
  528. 'SDL::Video/color' => [
  529. qw(
  530. SDL_ALPHA_OPAQUE
  531. SDL_ALPHA_TRANSPARENT
  532. )
  533. ],
  534. 'SDL::Video/surface' => [
  535. qw(
  536. SDL_SWSURFACE
  537. SDL_HWSURFACE
  538. SDL_ASYNCBLIT
  539. )
  540. ],
  541. 'SDL::Video/video' => [
  542. qw(
  543. SDL_SWSURFACE
  544. SDL_HWSURFACE
  545. SDL_ASYNCBLIT
  546. SDL_ANYFORMAT
  547. SDL_HWPALETTE
  548. SDL_DOUBLEBUF
  549. SDL_FULLSCREEN
  550. SDL_OPENGL
  551. SDL_OPENGLBLIT
  552. SDL_RESIZABLE
  553. SDL_NOFRAME
  554. SDL_HWACCEL
  555. SDL_SRCCOLORKEY
  556. SDL_RLEACCELOK
  557. SDL_RLEACCEL
  558. SDL_SRCALPHA
  559. SDL_PREALLOC
  560. )
  561. ],
  562. 'SDL::Video/overlay' => [
  563. qw(
  564. SDL_YV12_OVERLAY
  565. SDL_IYUV_OVERLAY
  566. SDL_YUY2_OVERLAY
  567. SDL_UYVY_OVERLAY
  568. SDL_YVYU_OVERLAY
  569. )
  570. ],
  571. 'SDL::Video/palette' => [
  572. qw(
  573. SDL_LOGPAL
  574. SDL_PHYSPAL
  575. )
  576. ],
  577. 'SDL::Video/grab' => [
  578. qw(
  579. SDL_GRAB_QUERY
  580. SDL_GRAB_OFF
  581. SDL_GRAB_ON
  582. SDL_GRAB_FULLSCREEN
  583. )
  584. ],
  585. 'SDL::Video/gl' => [
  586. qw(
  587. SDL_GL_RED_SIZE
  588. SDL_GL_GREEN_SIZE
  589. SDL_GL_BLUE_SIZE
  590. SDL_GL_ALPHA_SIZE
  591. SDL_GL_BUFFER_SIZE
  592. SDL_GL_DOUBLEBUFFER
  593. SDL_GL_DEPTH_SIZE
  594. SDL_GL_STENCIL_SIZE
  595. SDL_GL_ACCUM_RED_SIZE
  596. SDL_GL_ACCUM_GREEN_SIZE
  597. SDL_GL_ACCUM_BLUE_SIZE
  598. SDL_GL_ACCUM_ALPHA_SIZE
  599. SDL_GL_STEREO
  600. SDL_GL_MULTISAMPLEBUFFERS
  601. SDL_GL_MULTISAMPLESAMPLES
  602. SDL_GL_ACCELERATED_VISUAL
  603. SDL_GL_SWAP_CONTROL
  604. )
  605. ],
  606. );
  607. # 1. all constants from %EXPORT_TAGS are gonna pushed into @EXPORT
  608. # 2. tags like 'package/tag' and 'package/next_tag' are merged into tag 'package'
  609. my %seen;
  610. foreach my $package ( keys %EXPORT_TAGS ) {
  611. my $super_package = $package;
  612. $super_package =~ s/\/.*$//;
  613. push( @{ $EXPORT_TAGS{$super_package} }, @{ $EXPORT_TAGS{$package} } )
  614. if $super_package ne $package;
  615. push( @EXPORT_OK, grep { !$seen{$_}++ } @{ $EXPORT_TAGS{$package} } );
  616. }
  617. use constant {
  618. SDL_INIT_TIMER => 0x00000001,
  619. SDL_INIT_AUDIO => 0x00000010,
  620. SDL_INIT_VIDEO => 0x00000020,
  621. SDL_INIT_CDROM => 0x00000100,
  622. SDL_INIT_JOYSTICK => 0x00000200,
  623. SDL_INIT_NOPARACHUTE => 0x00100000,
  624. SDL_INIT_EVENTTHREAD => 0x01000000,
  625. SDL_INIT_EVERYTHING => 0x0000FFFF,
  626. }; # SDL/init
  627. use constant {
  628. SDL_LIL_ENDIAN => 1234,
  629. SDL_BIG_ENDIAN => 4321,
  630. SDL_BYTEORDER => $Config{byteorder}
  631. }; # SDL/defaults
  632. use constant {
  633. AUDIO_U8 => 0x0008,
  634. AUDIO_S8 => 0x8008,
  635. AUDIO_U16LSB => 0x0010,
  636. AUDIO_S16LSB => 0x8010,
  637. AUDIO_U16MSB => 0x1010,
  638. AUDIO_S16MSB => 0x9010,
  639. AUDIO_U16 => 0x0010,
  640. AUDIO_S16 => 0x8010,
  641. }; # SDL::Audio/format
  642. use constant {
  643. AUDIO_U16SYS => ( $Config{byteorder} == 1234 ? 0x0010 : 0x1010 ),
  644. AUDIO_S16SYS => ( $Config{byteorder} == 1234 ? 0x8010 : 0x9010 ),
  645. }; # SDL::Audio/format
  646. use constant {
  647. SDL_AUDIO_STOPPED => 0,
  648. SDL_AUDIO_PLAYING => 1,
  649. SDL_AUDIO_PAUSED => 2,
  650. }; # SDL::Audio/status
  651. use constant {
  652. CD_FPS => 75,
  653. SDL_MAX_TRACKS => 99,
  654. }; # SDL::CDROM/defaults
  655. use constant {
  656. CD_TRAYEMPTY => 0,
  657. CD_STOPPED => 1,
  658. CD_PLAYING => 2,
  659. CD_PAUSED => 3,
  660. CD_ERROR => -1,
  661. }; # SDL::CDROM/status
  662. use constant {
  663. SDL_AUDIO_TRACK => 0,
  664. SDL_DATA_TRACK => 4,
  665. }; # SDL::CDROM/track_type
  666. use constant {
  667. SDL_ACTIVEEVENT => 1,
  668. SDL_KEYDOWN => 2,
  669. SDL_KEYUP => 3,
  670. SDL_MOUSEMOTION => 4,
  671. SDL_MOUSEBUTTONDOWN => 5,
  672. SDL_MOUSEBUTTONUP => 6,
  673. SDL_JOYAXISMOTION => 7,
  674. SDL_JOYBALLMOTION => 8,
  675. SDL_JOYHATMOTION => 9,
  676. SDL_JOYBUTTONDOWN => 10,
  677. SDL_JOYBUTTONUP => 11,
  678. SDL_QUIT => 12,
  679. SDL_SYSWMEVENT => 13,
  680. SDL_VIDEORESIZE => 16,
  681. SDL_VIDEOEXPOSE => 17,
  682. SDL_USEREVENT => 24,
  683. SDL_NUMEVENTS => 32,
  684. }; # SDL::Events/type
  685. sub SDL_EVENTMASK { return 1 << shift; }
  686. use constant {
  687. SDL_ACTIVEEVENTMASK => SDL_EVENTMASK(SDL_ACTIVEEVENT),
  688. SDL_KEYDOWNMASK => SDL_EVENTMASK(SDL_KEYDOWN),
  689. SDL_KEYUPMASK => SDL_EVENTMASK(SDL_KEYUP),
  690. SDL_KEYEVENTMASK => SDL_EVENTMASK(SDL_KEYDOWN) | SDL_EVENTMASK(SDL_KEYUP),
  691. SDL_MOUSEMOTIONMASK => SDL_EVENTMASK(SDL_MOUSEMOTION),
  692. SDL_MOUSEBUTTONDOWNMASK => SDL_EVENTMASK(SDL_MOUSEBUTTONDOWN),
  693. SDL_MOUSEBUTTONUPMASK => SDL_EVENTMASK(SDL_MOUSEBUTTONUP),
  694. SDL_MOUSEEVENTMASK => SDL_EVENTMASK(SDL_MOUSEMOTION) |
  695. SDL_EVENTMASK(SDL_MOUSEBUTTONDOWN) | SDL_EVENTMASK(SDL_MOUSEBUTTONUP),
  696. SDL_JOYAXISMOTIONMASK => SDL_EVENTMASK(SDL_JOYAXISMOTION),
  697. SDL_JOYBALLMOTIONMASK => SDL_EVENTMASK(SDL_JOYBALLMOTION),
  698. SDL_JOYHATMOTIONMASK => SDL_EVENTMASK(SDL_JOYHATMOTION),
  699. SDL_JOYBUTTONDOWNMASK => SDL_EVENTMASK(SDL_JOYBUTTONDOWN),
  700. SDL_JOYBUTTONUPMASK => SDL_EVENTMASK(SDL_JOYBUTTONUP),
  701. SDL_JOYEVENTMASK => SDL_EVENTMASK(SDL_JOYAXISMOTION) |
  702. SDL_EVENTMASK(SDL_JOYBALLMOTION) | SDL_EVENTMASK(SDL_JOYHATMOTION) |
  703. SDL_EVENTMASK(SDL_JOYBUTTONDOWN) | SDL_EVENTMASK(SDL_JOYBUTTONUP),
  704. SDL_VIDEORESIZEMASK => SDL_EVENTMASK(SDL_VIDEORESIZE),
  705. SDL_VIDEOEXPOSEMASK => SDL_EVENTMASK(SDL_VIDEOEXPOSE),
  706. SDL_QUITMASK => SDL_EVENTMASK(SDL_QUIT),
  707. SDL_SYSWMEVENTMASK => SDL_EVENTMASK(SDL_SYSWMEVENT),
  708. SDL_ALLEVENTS => 0xFFFFFFFF,
  709. }; # SDL::Events/mask
  710. use constant {
  711. SDL_ADDEVENT => 0,
  712. SDL_PEEKEVENT => 1,
  713. SDL_GETEVENT => 2,
  714. }; # SDL::Events/action
  715. use constant {
  716. SDL_QUERY => -1,
  717. SDL_IGNORE => 0,
  718. SDL_DISABLE => 0,
  719. SDL_ENABLE => 1,
  720. SDL_RELEASED => 0,
  721. SDL_PRESSED => 1,
  722. }; # SDL::Events/state
  723. use constant {
  724. SDL_HAT_CENTERED => 0x00,
  725. SDL_HAT_UP => 0x01,
  726. SDL_HAT_RIGHT => 0x02,
  727. SDL_HAT_DOWN => 0x04,
  728. SDL_HAT_LEFT => 0x08,
  729. SDL_HAT_RIGHTUP => ( 0x02 | 0x01 ),
  730. SDL_HAT_RIGHTDOWN => ( 0x02 | 0x04 ),
  731. SDL_HAT_LEFTUP => ( 0x08 | 0x01 ),
  732. SDL_HAT_LEFTDOWN => ( 0x08 | 0x04 ),
  733. }; # SDL::Events/hat
  734. use constant {
  735. SDL_APPMOUSEFOCUS => 0x01,
  736. SDL_APPINPUTFOCUS => 0x02,
  737. SDL_APPACTIVE => 0x04,
  738. }; # SDL::Events/app
  739. sub SDL_BUTTON { return ( 1 << ( ( $_[0] ) - 1 ) ); }
  740. use constant {
  741. SDL_BUTTON_LEFT => 1,
  742. SDL_BUTTON_MIDDLE => 2,
  743. SDL_BUTTON_RIGHT => 3,
  744. SDL_BUTTON_WHEELUP => 4,
  745. SDL_BUTTON_WHEELDOWN => 5,
  746. SDL_BUTTON_X1 => 6,
  747. SDL_BUTTON_X2 => 7,
  748. SDL_BUTTON_LMASK => SDL_BUTTON(1),
  749. SDL_BUTTON_MMASK => SDL_BUTTON(2),
  750. SDL_BUTTON_RMASK => SDL_BUTTON(3),
  751. SDL_BUTTON_X1MASK => SDL_BUTTON(6),
  752. SDL_BUTTON_X2MASK => SDL_BUTTON(7),
  753. }; # SDL::Events/button
  754. use constant {
  755. SDLK_UNKNOWN => 0,
  756. SDLK_FIRST => 0,
  757. SDLK_BACKSPACE => 8,
  758. SDLK_TAB => 9,
  759. SDLK_CLEAR => 12,
  760. SDLK_RETURN => 13,
  761. SDLK_PAUSE => 19,
  762. SDLK_ESCAPE => 27,
  763. SDLK_SPACE => 32,
  764. SDLK_EXCLAIM => 33,
  765. SDLK_QUOTEDBL => 34,
  766. SDLK_HASH => 35,
  767. SDLK_DOLLAR => 36,
  768. SDLK_AMPERSAND => 38,
  769. SDLK_QUOTE => 39,
  770. SDLK_LEFTPAREN => 40,
  771. SDLK_RIGHTPAREN => 41,
  772. SDLK_ASTERISK => 42,
  773. SDLK_PLUS => 43,
  774. SDLK_COMMA => 44,
  775. SDLK_MINUS => 45,
  776. SDLK_PERIOD => 46,
  777. SDLK_SLASH => 47,
  778. SDLK_0 => 48,
  779. SDLK_1 => 49,
  780. SDLK_2 => 50,
  781. SDLK_3 => 51,
  782. SDLK_4 => 52,
  783. SDLK_5 => 53,
  784. SDLK_6 => 54,
  785. SDLK_7 => 55,
  786. SDLK_8 => 56,
  787. SDLK_9 => 57,
  788. SDLK_COLON => 58,
  789. SDLK_SEMICOLON => 59,
  790. SDLK_LESS => 60,
  791. SDLK_EQUALS => 61,
  792. SDLK_GREATER => 62,
  793. SDLK_QUESTION => 63,
  794. SDLK_AT => 64,
  795. SDLK_LEFTBRACKET => 91,
  796. SDLK_BACKSLASH => 92,
  797. SDLK_RIGHTBRACKET => 93,
  798. SDLK_CARET => 94,
  799. SDLK_UNDERSCORE => 95,
  800. SDLK_BACKQUOTE => 96,
  801. SDLK_a => 97,
  802. SDLK_b => 98,
  803. SDLK_c => 99,
  804. SDLK_d => 100,
  805. SDLK_e => 101,
  806. SDLK_f => 102,
  807. SDLK_g => 103,
  808. SDLK_h => 104,
  809. SDLK_i => 105,
  810. SDLK_j => 106,
  811. SDLK_k => 107,
  812. SDLK_l => 108,
  813. SDLK_m => 109,
  814. SDLK_n => 110,
  815. SDLK_o => 111,
  816. SDLK_p => 112,
  817. SDLK_q => 113,
  818. SDLK_r => 114,
  819. SDLK_s => 115,
  820. SDLK_t => 116,
  821. SDLK_u => 117,
  822. SDLK_v => 118,
  823. SDLK_w => 119,
  824. SDLK_x => 120,
  825. SDLK_y => 121,
  826. SDLK_z => 122,
  827. SDLK_DELETE => 127,
  828. SDLK_WORLD_0 => 160,
  829. SDLK_WORLD_1 => 161,
  830. SDLK_WORLD_2 => 162,
  831. SDLK_WORLD_3 => 163,
  832. SDLK_WORLD_4 => 164,
  833. SDLK_WORLD_5 => 165,
  834. SDLK_WORLD_6 => 166,
  835. SDLK_WORLD_7 => 167,
  836. SDLK_WORLD_8 => 168,
  837. SDLK_WORLD_9 => 169,
  838. SDLK_WORLD_10 => 170,
  839. SDLK_WORLD_11 => 171,
  840. SDLK_WORLD_12 => 172,
  841. SDLK_WORLD_13 => 173,
  842. SDLK_WORLD_14 => 174,
  843. SDLK_WORLD_15 => 175,
  844. SDLK_WORLD_16 => 176,
  845. SDLK_WORLD_17 => 177,
  846. SDLK_WORLD_18 => 178,
  847. SDLK_WORLD_19 => 179,
  848. SDLK_WORLD_20 => 180,
  849. SDLK_WORLD_21 => 181,
  850. SDLK_WORLD_22 => 182,
  851. SDLK_WORLD_23 => 183,
  852. SDLK_WORLD_24 => 184,
  853. SDLK_WORLD_25 => 185,
  854. SDLK_WORLD_26 => 186,
  855. SDLK_WORLD_27 => 187,
  856. SDLK_WORLD_28 => 188,
  857. SDLK_WORLD_29 => 189,
  858. SDLK_WORLD_30 => 190,
  859. SDLK_WORLD_31 => 191,
  860. SDLK_WORLD_32 => 192,
  861. SDLK_WORLD_33 => 193,
  862. SDLK_WORLD_34 => 194,
  863. SDLK_WORLD_35 => 195,
  864. SDLK_WORLD_36 => 196,
  865. SDLK_WORLD_37 => 197,
  866. SDLK_WORLD_38 => 198,
  867. SDLK_WORLD_39 => 199,
  868. SDLK_WORLD_40 => 200,
  869. SDLK_WORLD_41 => 201,
  870. SDLK_WORLD_42 => 202,
  871. SDLK_WORLD_43 => 203,
  872. SDLK_WORLD_44 => 204,
  873. SDLK_WORLD_45 => 205,
  874. SDLK_WORLD_46 => 206,
  875. SDLK_WORLD_47 => 207,
  876. SDLK_WORLD_48 => 208,
  877. SDLK_WORLD_49 => 209,
  878. SDLK_WORLD_50 => 210,
  879. SDLK_WORLD_51 => 211,
  880. SDLK_WORLD_52 => 212,
  881. SDLK_WORLD_53 => 213,
  882. SDLK_WORLD_54 => 214,
  883. SDLK_WORLD_55 => 215,
  884. SDLK_WORLD_56 => 216,
  885. SDLK_WORLD_57 => 217,
  886. SDLK_WORLD_58 => 218,
  887. SDLK_WORLD_59 => 219,
  888. SDLK_WORLD_60 => 220,
  889. SDLK_WORLD_61 => 221,
  890. SDLK_WORLD_62 => 222,
  891. SDLK_WORLD_63 => 223,
  892. SDLK_WORLD_64 => 224,
  893. SDLK_WORLD_65 => 225,
  894. SDLK_WORLD_66 => 226,
  895. SDLK_WORLD_67 => 227,
  896. SDLK_WORLD_68 => 228,
  897. SDLK_WORLD_69 => 229,
  898. SDLK_WORLD_70 => 230,
  899. SDLK_WORLD_71 => 231,
  900. SDLK_WORLD_72 => 232,
  901. SDLK_WORLD_73 => 233,
  902. SDLK_WORLD_74 => 234,
  903. SDLK_WORLD_75 => 235,
  904. SDLK_WORLD_76 => 236,
  905. SDLK_WORLD_77 => 237,
  906. SDLK_WORLD_78 => 238,
  907. SDLK_WORLD_79 => 239,
  908. SDLK_WORLD_80 => 240,
  909. SDLK_WORLD_81 => 241,
  910. SDLK_WORLD_82 => 242,
  911. SDLK_WORLD_83 => 243,
  912. SDLK_WORLD_84 => 244,
  913. SDLK_WORLD_85 => 245,
  914. SDLK_WORLD_86 => 246,
  915. SDLK_WORLD_87 => 247,
  916. SDLK_WORLD_88 => 248,
  917. SDLK_WORLD_89 => 249,
  918. SDLK_WORLD_90 => 250,
  919. SDLK_WORLD_91 => 251,
  920. SDLK_WORLD_92 => 252,
  921. SDLK_WORLD_93 => 253,
  922. SDLK_WORLD_94 => 254,
  923. SDLK_WORLD_95 => 255,
  924. SDLK_KP0 => 256,
  925. SDLK_KP1 => 257,
  926. SDLK_KP2 => 258,
  927. SDLK_KP3 => 259,
  928. SDLK_KP4 => 260,
  929. SDLK_KP5 => 261,
  930. SDLK_KP6 => 262,
  931. SDLK_KP7 => 263,
  932. SDLK_KP8 => 264,
  933. SDLK_KP9 => 265,
  934. SDLK_KP_PERIOD => 266,
  935. SDLK_KP_DIVIDE => 267,
  936. SDLK_KP_MULTIPLY => 268,
  937. SDLK_KP_MINUS => 269,
  938. SDLK_KP_PLUS => 270,
  939. SDLK_KP_ENTER => 271,
  940. SDLK_KP_EQUALS => 272,
  941. SDLK_UP => 273,
  942. SDLK_DOWN => 274,
  943. SDLK_RIGHT => 275,
  944. SDLK_LEFT => 276,
  945. SDLK_INSERT => 277,
  946. SDLK_HOME => 278,
  947. SDLK_END => 279,
  948. SDLK_PAGEUP => 280,
  949. SDLK_PAGEDOWN => 281,
  950. SDLK_F1 => 282,
  951. SDLK_F2 => 283,
  952. SDLK_F3 => 284,
  953. SDLK_F4 => 285,
  954. SDLK_F5 => 286,
  955. SDLK_F6 => 287,
  956. SDLK_F7 => 288,
  957. SDLK_F8 => 289,
  958. SDLK_F9 => 290,
  959. SDLK_F10 => 291,
  960. SDLK_F11 => 292,
  961. SDLK_F12 => 293,
  962. SDLK_F13 => 294,
  963. SDLK_F14 => 295,
  964. SDLK_F15 => 296,
  965. SDLK_NUMLOCK => 300,
  966. SDLK_CAPSLOCK => 301,
  967. SDLK_SCROLLOCK => 302,
  968. SDLK_RSHIFT => 303,
  969. SDLK_LSHIFT => 304,
  970. SDLK_RCTRL => 305,
  971. SDLK_LCTRL => 306,
  972. SDLK_RALT => 307,
  973. SDLK_LALT => 308,
  974. SDLK_RMETA => 309,
  975. SDLK_LMETA => 310,
  976. SDLK_LSUPER => 311,
  977. SDLK_RSUPER => 312,
  978. SDLK_MODE => 313,
  979. SDLK_COMPOSE => 314,
  980. SDLK_HELP => 315,
  981. SDLK_PRINT => 316,
  982. SDLK_SYSREQ => 317,
  983. SDLK_BREAK => 318,
  984. SDLK_MENU => 319,
  985. SDLK_POWER => 320,
  986. SDLK_EURO => 321,
  987. SDLK_UNDO => 322,
  988. }; # SDL::Events/keysym
  989. use constant {
  990. KMOD_NONE => 0x0000,
  991. KMOD_LSHIFT => 0x0001,
  992. KMOD_RSHIFT => 0x0002,
  993. KMOD_LCTRL => 0x0040,
  994. KMOD_RCTRL => 0x0080,
  995. KMOD_LALT => 0x0100,
  996. KMOD_RALT => 0x0200,
  997. KMOD_LMETA => 0x0400,
  998. KMOD_RMETA => 0x0800,
  999. KMOD_NUM => 0x1000,
  1000. KMOD_CAPS => 0x2000,
  1001. KMOD_MODE => 0x4000,
  1002. KMOD_RESERVED => 0x8000
  1003. }; # SDL::Events/keymod
  1004. use constant {
  1005. KMOD_CTRL => ( KMOD_LCTRL | KMOD_RCTRL ),
  1006. KMOD_SHIFT => ( KMOD_LSHIFT | KMOD_RSHIFT ),
  1007. KMOD_ALT => ( KMOD_LALT | KMOD_RALT ),
  1008. KMOD_META => ( KMOD_LMETA | KMOD_RMETA ),
  1009. }; # SDL::Events/keymod
  1010. use constant {
  1011. SMOOTHING_OFF => 0,
  1012. SMOOTHING_ON => 1,
  1013. }; # SDL::GFX/smoothing
  1014. use constant {
  1015. IMG_INIT_JPG => 0x00000001,
  1016. IMG_INIT_PNG => 0x00000002,
  1017. IMG_INIT_TIF => 0x00000004,
  1018. }; # SDL::Image
  1019. use constant {
  1020. MIX_INIT_FLAC => 0x00000001,
  1021. MIX_INIT_MOD => 0x00000002,
  1022. MIX_INIT_MP3 => 0x00000004,
  1023. MIX_INIT_OGG => 0x00000008
  1024. }; # SDL::Mixer/init
  1025. use constant {
  1026. MIX_CHANNELS => 8,
  1027. MIX_DEFAULT_FORMAT => 32784,
  1028. MIX_DEFAULT_FREQUENCY => 22050,
  1029. MIX_DEFAULT_CHANNELS => 2,
  1030. MIX_MAX_VOLUME => 128,
  1031. MIX_CHANNEL_POST => -2,
  1032. }; # SDL::Mixer/defaults
  1033. use constant {
  1034. MIX_NO_FADING => 0,
  1035. MIX_FADING_OUT => 1,
  1036. MIX_FADING_IN => 2,
  1037. }; # SDL::Mixer/fading
  1038. use constant {
  1039. MUS_NONE => 0,
  1040. MUS_CMD => 1,
  1041. MUS_WAV => 2,
  1042. MUS_MOD => 3,
  1043. MUS_MID => 4,
  1044. MUS_OGG => 5,
  1045. MUS_MP3 => 6,
  1046. MUS_MP3_MAD => 7,
  1047. MUS_MP3_FLAC => 8,
  1048. }; # SDL::Mixer/type
  1049. use constant {
  1050. INADDR_ANY => 0x00000000,
  1051. INADDR_NONE => 0xFFFFFFFF,
  1052. INADDR_BROADCAST => 0xFFFFFFFF,
  1053. SDLNET_MAX_UDPCHANNELS => 32,
  1054. SDLNET_MAX_UDPADDRESSES => 4
  1055. }; # SDL::Net
  1056. use constant {
  1057. SDLPANGO_DIRECTION_LTR => 0,
  1058. SDLPANGO_DIRECTION_RTL => 1,
  1059. SDLPANGO_DIRECTION_WEAK_LTR => 2,
  1060. SDLPANGO_DIRECTION_WEAK_RTL => 3,
  1061. SDLPANGO_DIRECTION_NEUTRAL => 4
  1062. }; # SDL::Pango/direction
  1063. use constant {
  1064. SDLPANGO_ALIGN_LEFT => 0,
  1065. SDLPANGO_ALIGN_CENTER => 1,
  1066. SDLPANGO_ALIGN_RIGHT => 2
  1067. }; # SDL::Pango/align
  1068. use constant {
  1069. RW_SEEK_SET => 0,
  1070. RW_SEEK_CUR => 1,
  1071. RW_SEEK_END => 2,
  1072. }; # SDL::RWOps/defaults
  1073. use constant {
  1074. TTF_HINTING_NORMAL => 0,
  1075. TTF_HINTING_LIGHT => 1,
  1076. TTF_HINTING_MONO => 2,
  1077. TTF_HINTING_NONE => 3,
  1078. TTF_STYLE_NORMAL => 0,
  1079. TTF_STYLE_BOLD => 1,
  1080. TTF_STYLE_ITALIC => 2,
  1081. TTF_STYLE_UNDERLINE => 4,
  1082. TTF_STYLE_STRIKETHROUGH => 8,
  1083. }; # SDL::TTF
  1084. use constant {
  1085. SDL_ALPHA_OPAQUE => 255,
  1086. SDL_ALPHA_TRANSPARENT => 0,
  1087. SDL_SWSURFACE => 0x00000000, # for SDL::Surface->new() and set_video_mode()
  1088. SDL_HWSURFACE => 0x00000001, # for SDL::Surface->new() and set_video_mode()
  1089. SDL_ASYNCBLIT => 0x00000004, # for SDL::Surface->new() and set_video_mode()
  1090. SDL_ANYFORMAT => 0x10000000, # set_video_mode()
  1091. SDL_HWPALETTE => 0x20000000, # set_video_mode()
  1092. SDL_DOUBLEBUF => 0x40000000, # set_video_mode()
  1093. SDL_FULLSCREEN => 0x80000000, # set_video_mode()
  1094. SDL_OPENGL => 0x00000002, # set_video_mode()
  1095. SDL_OPENGLBLIT => 0x0000000A, # set_video_mode()
  1096. SDL_RESIZABLE => 0x00000010, # set_video_mode()
  1097. SDL_NOFRAME => 0x00000020, # set_video_mode()
  1098. SDL_HWACCEL => 0x00000100, # set_video_mode()
  1099. SDL_SRCCOLORKEY => 0x00001000, # set_video_mode()
  1100. SDL_RLEACCELOK => 0x00002000, # set_video_mode()
  1101. SDL_RLEACCEL => 0x00004000, # set_video_mode()
  1102. SDL_SRCALPHA => 0x00010000, # set_video_mode()
  1103. SDL_PREALLOC => 0x01000000, # set_video_mode()
  1104. SDL_YV12_OVERLAY => 0x32315659, # Planar mode: Y + V + U (3 planes)
  1105. SDL_IYUV_OVERLAY => 0x56555949, # Planar mode: Y + U + V (3 planes)
  1106. SDL_YUY2_OVERLAY => 0x32595559, # Packed mode: Y0+U0+Y1+V0 (1 plane)
  1107. SDL_UYVY_OVERLAY => 0x59565955, # Packed mode: U0+Y0+V0+Y1 (1 plane)
  1108. SDL_YVYU_OVERLAY => 0x55595659, # Packed mode: Y0+V0+Y1+U0 (1 plane)
  1109. SDL_LOGPAL => 0x01, # for set_palette()
  1110. SDL_PHYSPAL => 0x02, # for set_palette()
  1111. SDL_GRAB_QUERY => -1, # SDL_GrabMode
  1112. SDL_GRAB_OFF => 0, # SDL_GrabMode
  1113. SDL_GRAB_ON => 1, # SDL_GrabMode
  1114. SDL_GRAB_FULLSCREEN => 2, # SDL_GrabMode, used internally
  1115. }; # SDL::Video/...
  1116. use constant {
  1117. SDL_GL_RED_SIZE => 0,
  1118. SDL_GL_GREEN_SIZE => 1,
  1119. SDL_GL_BLUE_SIZE => 2,
  1120. SDL_GL_ALPHA_SIZE => 3,
  1121. SDL_GL_BUFFER_SIZE => 4,
  1122. SDL_GL_DOUBLEBUFFER => 5,
  1123. SDL_GL_DEPTH_SIZE => 6,
  1124. SDL_GL_STENCIL_SIZE => 7,
  1125. SDL_GL_ACCUM_RED_SIZE => 8,
  1126. SDL_GL_ACCUM_GREEN_SIZE => 9,
  1127. SDL_GL_ACCUM_BLUE_SIZE => 10,
  1128. SDL_GL_ACCUM_ALPHA_SIZE => 11,
  1129. SDL_GL_STEREO => 12,
  1130. SDL_GL_MULTISAMPLEBUFFERS => 13,
  1131. SDL_GL_MULTISAMPLESAMPLES => 14,
  1132. SDL_GL_ACCELERATED_VISUAL => 15,
  1133. SDL_GL_SWAP_CONTROL => 16,
  1134. }; # SDL::Video/gl
  1135. 1;
  1136. __END__
  1137. our @EXPORT=qw(
  1138. SMPEG_ERROR
  1139. SMPEG_PLAYING
  1140. SMPEG_STOPPED
  1141. SDL_SVG_FLAG_DIRECT
  1142. SDL_SVG_FLAG_COMPOSITE
  1143. SDL_SAMPLEFLAG_NONE
  1144. SDL_SAMPLEFLAG_CANSEEK
  1145. SDL_SAMPLEFLAG_EOF
  1146. SDL_SAMPLEFLAG_ERROR
  1147. SDL_SAMPLEFLAG_EAGAIN
  1148. );
  1149. use constant {
  1150. SDL_HAS_64BIT_TYPE => 1,
  1151. SDL_AUDIO_DRIVER_DISK => 1,
  1152. SDL_AUDIO_DRIVER_DUMMY => 1,
  1153. SDL_AUDIO_DRIVER_DSOUND => 1,
  1154. SDL_AUDIO_DRIVER_WAVEOUT => 1,
  1155. SDL_CDROM_WIN32 => 1,
  1156. SDL_JOYSTICK_WINMM => 1,
  1157. SDL_LOADSO_WIN32 => 1,
  1158. SDL_THREAD_WIN32 => 1,
  1159. SDL_TIMER_WIN32 => 1,
  1160. SDL_VIDEO_DRIVER_DDRAW => 1,
  1161. SDL_VIDEO_DRIVER_DUMMY => 1,
  1162. SDL_VIDEO_DRIVER_WINDIB => 1,
  1163. SDL_VIDEO_OPENGL => 1,
  1164. SDL_VIDEO_OPENGL_WGL => 1,
  1165. SDL_VIDEO_DISABLE_SCREENSAVER => 1,
  1166. SDL_ASSEMBLY_ROUTINES => 1,
  1167. SDL_HERMES_BLITTERS => 1,
  1168. SDL_LIL_ENDIAN => 1234,
  1169. SDL_BIG_ENDIAN => 4321,
  1170. };
  1171. use constant {
  1172. FPS_UPPER_LIMIT => 200,
  1173. FPS_LOWER_LIMIT => 1,
  1174. FPS_DEFAULT => 30,
  1175. SDL_ALL_HOTKEYS => 0xFFFFFFFF,
  1176. SDL_DEFAULT_REPEAT_DELAY => 500,
  1177. SDL_DEFAULT_REPEAT_INTERVAL => 30,
  1178. };
  1179. use constant {
  1180. SDL_MUTEX_TIMEDOUT => 1,
  1181. NeedFunctionPrototypes => 1,
  1182. SDLNET_MAX_UDPCHANNELS => 32,
  1183. SDLNET_MAX_UDPADDRESSES => 4,
  1184. WIN32_LEAN_AND_MEAN => 1,
  1185. GL_GLEXT_VERSION => 29,
  1186. GL_UNSIGNED_BYTE_3_3_2 => 0x8032,
  1187. GL_UNSIGNED_SHORT_4_4_4_4 => 0x8033,
  1188. GL_UNSIGNED_SHORT_5_5_5_1 => 0x8034,
  1189. GL_UNSIGNED_INT_8_8_8_8 => 0x8035,
  1190. GL_UNSIGNED_INT_10_10_10_2 => 0x8036,
  1191. GL_RESCALE_NORMAL => 0x803A,
  1192. GL_TEXTURE_BINDING_3D => 0x806A,
  1193. GL_PACK_SKIP_IMAGES => 0x806B,
  1194. GL_PACK_IMAGE_HEIGHT => 0x806C,
  1195. GL_UNPACK_SKIP_IMAGES => 0x806D,
  1196. GL_UNPACK_IMAGE_HEIGHT => 0x806E,
  1197. GL_TEXTURE_3D => 0x806F,
  1198. GL_PROXY_TEXTURE_3D => 0x8070,
  1199. GL_TEXTURE_DEPTH => 0x8071,
  1200. GL_TEXTURE_WRAP_R => 0x8072,
  1201. GL_MAX_3D_TEXTURE_SIZE => 0x8073,
  1202. GL_UNSIGNED_BYTE_2_3_3_REV => 0x8362,
  1203. GL_UNSIGNED_SHORT_5_6_5 => 0x8363,
  1204. GL_UNSIGNED_SHORT_5_6_5_REV => 0x8364,
  1205. GL_UNSIGNED_SHORT_4_4_4_4_REV => 0x8365,
  1206. GL_UNSIGNED_SHORT_1_5_5_5_REV => 0x8366,
  1207. GL_UNSIGNED_INT_8_8_8_8_REV => 0x8367,
  1208. GL_UNSIGNED_INT_2_10_10_10_REV => 0x8368,
  1209. GL_BGR => 0x80E0,
  1210. GL_BGRA => 0x80E1,
  1211. GL_MAX_ELEMENTS_VERTICES => 0x80E8,
  1212. GL_MAX_ELEMENTS_INDICES => 0x80E9,
  1213. GL_CLAMP_TO_EDGE => 0x812F,
  1214. GL_TEXTURE_MIN_LOD => 0x813A,
  1215. GL_TEXTURE_MAX_LOD => 0x813B,
  1216. GL_TEXTURE_BASE_LEVEL => 0x813C,
  1217. GL_TEXTURE_MAX_LEVEL => 0x813D,
  1218. GL_LIGHT_MODEL_COLOR_CONTROL => 0x81F8,
  1219. GL_SINGLE_COLOR => 0x81F9,
  1220. GL_SEPARATE_SPECULAR_COLOR => 0x81FA,
  1221. GL_SMOOTH_POINT_SIZE_RANGE => 0x0B12,
  1222. GL_SMOOTH_POINT_SIZE_GRANULARITY => 0x0B13,
  1223. GL_SMOOTH_LINE_WIDTH_RANGE => 0x0B22,
  1224. GL_SMOOTH_LINE_WIDTH_GRANULARITY => 0x0B23,
  1225. GL_ALIASED_POINT_SIZE_RANGE => 0x846D,
  1226. GL_ALIASED_LINE_WIDTH_RANGE => 0x846E,
  1227. GL_CONSTANT_COLOR => 0x8001,
  1228. GL_ONE_MINUS_CONSTANT_COLOR => 0x8002,
  1229. GL_CONSTANT_ALPHA => 0x8003,
  1230. GL_ONE_MINUS_CONSTANT_ALPHA => 0x8004,
  1231. GL_BLEND_COLOR => 0x8005,
  1232. GL_FUNC_ADD => 0x8006,
  1233. GL_MIN => 0x8007,
  1234. GL_MAX => 0x8008,
  1235. GL_BLEND_EQUATION => 0x8009,
  1236. GL_FUNC_SUBTRACT => 0x800A,
  1237. GL_FUNC_REVERSE_SUBTRACT => 0x800B,
  1238. GL_CONVOLUTION_1D => 0x8010,
  1239. GL_CONVOLUTION_2D => 0x8011,
  1240. GL_SEPARABLE_2D => 0x8012,
  1241. GL_CONVOLUTION_BORDER_MODE => 0x8013,
  1242. GL_CONVOLUTION_FILTER_SCALE => 0x8014,
  1243. GL_CONVOLUTION_FILTER_BIAS => 0x8015,
  1244. GL_REDUCE => 0x8016,
  1245. GL_CONVOLUTION_FORMAT => 0x8017,
  1246. GL_CONVOLUTION_WIDTH => 0x8018,
  1247. GL_CONVOLUTION_HEIGHT => 0x8019,
  1248. GL_MAX_CONVOLUTION_WIDTH => 0x801A,
  1249. GL_MAX_CONVOLUTION_HEIGHT => 0x801B,
  1250. GL_POST_CONVOLUTION_RED_SCALE => 0x801C,
  1251. GL_POST_CONVOLUTION_GREEN_SCALE => 0x801D,
  1252. GL_POST_CONVOLUTION_BLUE_SCALE => 0x801E,
  1253. GL_POST_CONVOLUTION_ALPHA_SCALE => 0x801F,
  1254. GL_POST_CONVOLUTION_RED_BIAS => 0x8020,
  1255. GL_POST_CONVOLUTION_GREEN_BIAS => 0x8021,
  1256. GL_POST_CONVOLUTION_BLUE_BIAS => 0x8022,
  1257. GL_POST_CONVOLUTION_ALPHA_BIAS => 0x8023,
  1258. GL_HISTOGRAM => 0x8024,
  1259. GL_PROXY_HISTOGRAM => 0x8025,
  1260. GL_HISTOGRAM_WIDTH => 0x8026,
  1261. GL_HISTOGRAM_FORMAT => 0x8027,
  1262. GL_HISTOGRAM_RED_SIZE => 0x8028,
  1263. GL_HISTOGRAM_GREEN_SIZE => 0x8029,
  1264. GL_HISTOGRAM_BLUE_SIZE => 0x802A,
  1265. GL_HISTOGRAM_ALPHA_SIZE => 0x802B,
  1266. GL_HISTOGRAM_LUMINANCE_SIZE => 0x802C,
  1267. GL_HISTOGRAM_SINK => 0x802D,
  1268. GL_MINMAX => 0x802E,
  1269. GL_MINMAX_FORMAT => 0x802F,
  1270. GL_MINMAX_SINK => 0x8030,
  1271. GL_TABLE_TOO_LARGE => 0x8031,
  1272. GL_COLOR_MATRIX => 0x80B1,
  1273. GL_COLOR_MATRIX_STACK_DEPTH => 0x80B2,
  1274. GL_MAX_COLOR_MATRIX_STACK_DEPTH => 0x80B3,
  1275. GL_POST_COLOR_MATRIX_RED_SCALE => 0x80B4,
  1276. GL_POST_COLOR_MATRIX_GREEN_SCALE => 0x80B5,
  1277. GL_POST_COLOR_MATRIX_BLUE_SCALE => 0x80B6,
  1278. GL_POST_COLOR_MATRIX_ALPHA_SCALE => 0x80B7,
  1279. GL_POST_COLOR_MATRIX_RED_BIAS => 0x80B8,
  1280. GL_POST_COLOR_MATRIX_GREEN_BIAS => 0x80B9,
  1281. GL_POST_COLOR_MATRIX_BLUE_BIAS => 0x80BA,
  1282. GL_POST_COLOR_MATRIX_ALPHA_BIAS => 0x80BB,
  1283. GL_COLOR_TABLE => 0x80D0,
  1284. GL_POST_CONVOLUTION_COLOR_TABLE => 0x80D1,
  1285. GL_POST_COLOR_MATRIX_COLOR_TABLE => 0x80D2,
  1286. GL_PROXY_COLOR_TABLE => 0x80D3,
  1287. GL_PROXY_POST_CONVOLUTION_COLOR_TABLE => 0x80D4,
  1288. GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE => 0x80D5,
  1289. GL_COLOR_TABLE_SCALE => 0x80D6,
  1290. GL_COLOR_TABLE_BIAS => 0x80D7,
  1291. GL_COLOR_TABLE_FORMAT => 0x80D8,
  1292. GL_COLOR_TABLE_WIDTH => 0x80D9,
  1293. GL_COLOR_TABLE_RED_SIZE => 0x80DA,
  1294. GL_COLOR_TABLE_GREEN_SIZE => 0x80DB,
  1295. GL_COLOR_TABLE_BLUE_SIZE => 0x80DC,
  1296. GL_COLOR_TABLE_ALPHA_SIZE => 0x80DD,
  1297. GL_COLOR_TABLE_LUMINANCE_SIZE => 0x80DE,
  1298. GL_COLOR_TABLE_INTENSITY_SIZE => 0x80DF,
  1299. GL_CONSTANT_BORDER => 0x8151,
  1300. GL_REPLICATE_BORDER => 0x8153,
  1301. GL_CONVOLUTION_BORDER_COLOR => 0x8154,
  1302. GL_TEXTURE0 => 0x84C0,
  1303. GL_TEXTURE1 => 0x84C1,
  1304. GL_TEXTURE2 => 0x84C2,
  1305. GL_TEXTURE3 => 0x84C3,
  1306. GL_TEXTURE4 => 0x84C4,
  1307. GL_TEXTURE5 => 0x84C5,
  1308. GL_TEXTURE6 => 0x84C6,
  1309. GL_TEXTURE7 => 0x84C7,
  1310. GL_TEXTURE8 => 0x84C8,
  1311. GL_TEXTURE9 => 0x84C9,
  1312. GL_TEXTURE10 => 0x84CA,
  1313. GL_TEXTURE11 => 0x84CB,
  1314. GL_TEXTURE12 => 0x84CC,
  1315. GL_TEXTURE13 => 0x84CD,
  1316. GL_TEXTURE14 => 0x84CE,
  1317. GL_TEXTURE15 => 0x84CF,
  1318. GL_TEXTURE16 => 0x84D0,
  1319. GL_TEXTURE17 => 0x84D1,
  1320. GL_TEXTURE18 => 0x84D2,
  1321. GL_TEXTURE19 => 0x84D3,
  1322. GL_TEXTURE20 => 0x84D4,
  1323. GL_TEXTURE21 => 0x84D5,
  1324. GL_TEXTURE22 => 0x84D6,
  1325. GL_TEXTURE23 => 0x84D7,
  1326. GL_TEXTURE24 => 0x84D8,
  1327. GL_TEXTURE25 => 0x84D9,
  1328. GL_TEXTURE26 => 0x84DA,
  1329. GL_TEXTURE27 => 0x84DB,
  1330. GL_TEXTURE28 => 0x84DC,
  1331. GL_TEXTURE29 => 0x84DD,
  1332. GL_TEXTURE30 => 0x84DE,
  1333. GL_TEXTURE31 => 0x84DF,
  1334. GL_ACTIVE_TEXTURE => 0x84E0,
  1335. GL_CLIENT_ACTIVE_TEXTURE => 0x84E1,
  1336. GL_MAX_TEXTURE_UNITS => 0x84E2,
  1337. GL_TRANSPOSE_MODELVIEW_MATRIX => 0x84E3,
  1338. GL_TRANSPOSE_PROJECTION_MATRIX => 0x84E4,
  1339. GL_TRANSPOSE_TEXTURE_MATRIX => 0x84E5,
  1340. GL_TRANSPOSE_COLOR_MATRIX => 0x84E6,
  1341. GL_MULTISAMPLE => 0x809D,
  1342. GL_SAMPLE_ALPHA_TO_COVERAGE => 0x809E,
  1343. GL_SAMPLE_ALPHA_TO_ONE => 0x809F,
  1344. GL_SAMPLE_COVERAGE => 0x80A0,
  1345. GL_SAMPLE_BUFFERS => 0x80A8,
  1346. GL_SAMPLES => 0x80A9,
  1347. GL_SAMPLE_COVERAGE_VALUE => 0x80AA,
  1348. GL_SAMPLE_COVERAGE_INVERT => 0x80AB,
  1349. GL_MULTISAMPLE_BIT => 0x20000000,
  1350. GL_NORMAL_MAP => 0x8511,
  1351. GL_REFLECTION_MAP => 0x8512,
  1352. GL_TEXTURE_CUBE_MAP => 0x8513,
  1353. GL_TEXTURE_BINDING_CUBE_MAP => 0x8514,
  1354. GL_TEXTURE_CUBE_MAP_POSITIVE_X => 0x8515,
  1355. GL_TEXTURE_CUBE_MAP_NEGATIVE_X => 0x8516,
  1356. GL_TEXTURE_CUBE_MAP_POSITIVE_Y => 0x8517,
  1357. GL_TEXTURE_CUBE_MAP_NEGATIVE_Y => 0x8518,
  1358. GL_TEXTURE_CUBE_MAP_POSITIVE_Z => 0x8519,
  1359. GL_TEXTURE_CUBE_MAP_NEGATIVE_Z => 0x851A,
  1360. GL_PROXY_TEXTURE_CUBE_MAP => 0x851B,
  1361. GL_MAX_CUBE_MAP_TEXTURE_SIZE => 0x851C,
  1362. GL_COMPRESSED_ALPHA => 0x84E9,
  1363. GL_COMPRESSED_LUMINANCE => 0x84EA,
  1364. GL_COMPRESSED_LUMINANCE_ALPHA => 0x84EB,
  1365. GL_COMPRESSED_INTENSITY => 0x84EC,
  1366. GL_COMPRESSED_RGB => 0x84ED,
  1367. GL_COMPRESSED_RGBA => 0x84EE,
  1368. GL_TEXTURE_COMPRESSION_HINT => 0x84EF,
  1369. GL_TEXTURE_COMPRESSED_IMAGE_SIZE => 0x86A0,
  1370. GL_TEXTURE_COMPRESSED => 0x86A1,
  1371. GL_NUM_COMPRESSED_TEXTURE_FORMATS => 0x86A2,
  1372. GL_COMPRESSED_TEXTURE_FORMATS => 0x86A3,
  1373. GL_CLAMP_TO_BORDER => 0x812D,
  1374. GL_COMBINE => 0x8570,
  1375. GL_COMBINE_RGB => 0x8571,
  1376. GL_COMBINE_ALPHA => 0x8572,
  1377. GL_SOURCE0_RGB => 0x8580,
  1378. GL_SOURCE1_RGB => 0x8581,
  1379. GL_SOURCE2_RGB => 0x8582,
  1380. GL_SOURCE0_ALPHA => 0x8588,
  1381. GL_SOURCE1_ALPHA => 0x8589,
  1382. GL_SOURCE2_ALPHA => 0x858A,
  1383. GL_OPERAND0_RGB => 0x8590,
  1384. GL_OPERAND1_RGB => 0x8591,
  1385. GL_OPERAND2_RGB => 0x8592,
  1386. GL_OPERAND0_ALPHA => 0x8598,
  1387. GL_OPERAND1_ALPHA => 0x8599,
  1388. GL_OPERAND2_ALPHA => 0x859A,
  1389. GL_RGB_SCALE => 0x8573,
  1390. GL_ADD_SIGNED => 0x8574,
  1391. GL_INTERPOLATE => 0x8575,
  1392. GL_SUBTRACT => 0x84E7,
  1393. GL_CONSTANT => 0x8576,
  1394. GL_PRIMARY_COLOR => 0x8577,
  1395. GL_PREVIOUS => 0x8578,
  1396. GL_DOT3_RGB => 0x86AE,
  1397. GL_DOT3_RGBA => 0x86AF,
  1398. GL_BLEND_DST_RGB => 0x80C8,
  1399. GL_BLEND_SRC_RGB => 0x80C9,
  1400. GL_BLEND_DST_ALPHA => 0x80CA,
  1401. GL_BLEND_SRC_ALPHA => 0x80CB,
  1402. GL_POINT_SIZE_MIN => 0x8126,
  1403. GL_POINT_SIZE_MAX => 0x8127,
  1404. GL_POINT_FADE_THRESHOLD_SIZE => 0x8128,
  1405. GL_POINT_DISTANCE_ATTENUATION => 0x8129,
  1406. GL_GENERATE_MIPMAP => 0x8191,
  1407. GL_GENERATE_MIPMAP_HINT => 0x8192,
  1408. GL_DEPTH_COMPONENT16 => 0x81A5,
  1409. GL_DEPTH_COMPONENT24 => 0x81A6,
  1410. GL_DEPTH_COMPONENT32 => 0x81A7,
  1411. GL_MIRRORED_REPEAT => 0x8370,
  1412. GL_FOG_COORDINATE_SOURCE => 0x8450,
  1413. GL_FOG_COORDINATE => 0x8451,
  1414. GL_FRAGMENT_DEPTH => 0x8452,
  1415. GL_CURRENT_FOG_COORDINATE => 0x8453,
  1416. GL_FOG_COORDINATE_ARRAY_TYPE => 0x8454,
  1417. GL_FOG_COORDINATE_ARRAY_STRIDE => 0x8455,
  1418. GL_FOG_COORDINATE_ARRAY_POINTER => 0x8456,
  1419. GL_FOG_COORDINATE_ARRAY => 0x8457,
  1420. GL_COLOR_SUM => 0x8458,
  1421. GL_CURRENT_SECONDARY_COLOR => 0x8459,
  1422. GL_SECONDARY_COLOR_ARRAY_SIZE => 0x845A,
  1423. GL_SECONDARY_COLOR_ARRAY_TYPE => 0x845B,
  1424. GL_SECONDARY_COLOR_ARRAY_STRIDE => 0x845C,
  1425. GL_SECONDARY_COLOR_ARRAY_POINTER => 0x845D,
  1426. GL_SECONDARY_COLOR_ARRAY => 0x845E,
  1427. GL_MAX_TEXTURE_LOD_BIAS => 0x84FD,
  1428. GL_TEXTURE_FILTER_CONTROL => 0x8500,
  1429. GL_TEXTURE_LOD_BIAS => 0x8501,
  1430. GL_INCR_WRAP => 0x8507,
  1431. GL_DECR_WRAP => 0x8508,
  1432. GL_TEXTURE_DEPTH_SIZE => 0x884A,
  1433. GL_DEPTH_TEXTURE_MODE => 0x884B,
  1434. GL_TEXTURE_COMPARE_MODE => 0x884C,
  1435. GL_TEXTURE_COMPARE_FUNC => 0x884D,
  1436. GL_COMPARE_R_TO_TEXTURE => 0x884E,
  1437. GL_BUFFER_SIZE => 0x8764,
  1438. GL_BUFFER_USAGE => 0x8765,
  1439. GL_QUERY_COUNTER_BITS => 0x8864,
  1440. GL_CURRENT_QUERY => 0x8865,
  1441. GL_QUERY_RESULT => 0x8866,
  1442. GL_QUERY_RESULT_AVAILABLE => 0x8867,
  1443. GL_ARRAY_BUFFER => 0x8892,
  1444. GL_ELEMENT_ARRAY_BUFFER => 0x8893,
  1445. GL_ARRAY_BUFFER_BINDING => 0x8894,
  1446. GL_ELEMENT_ARRAY_BUFFER_BINDING => 0x8895,
  1447. GL_VERTEX_ARRAY_BUFFER_BINDING => 0x8896,
  1448. GL_NORMAL_ARRAY_BUFFER_BINDING => 0x8897,
  1449. GL_COLOR_ARRAY_BUFFER_BINDING => 0x8898,
  1450. GL_INDEX_ARRAY_BUFFER_BINDING => 0x8899,
  1451. GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING => 0x889A,
  1452. GL_EDGE_FLAG_ARRAY_BUFFER_BINDING => 0x889B,
  1453. GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING => 0x889C,
  1454. GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING => 0x889D,
  1455. GL_WEIGHT_ARRAY_BUFFER_BINDING => 0x889E,
  1456. GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING => 0x889F,
  1457. GL_READ_ONLY => 0x88B8,
  1458. GL_WRITE_ONLY => 0x88B9,
  1459. GL_READ_WRITE => 0x88BA,
  1460. GL_BUFFER_ACCESS => 0x88BB,
  1461. GL_BUFFER_MAPPED => 0x88BC,
  1462. GL_BUFFER_MAP_POINTER => 0x88BD,
  1463. GL_STREAM_DRAW => 0x88E0,
  1464. GL_STREAM_READ => 0x88E1,
  1465. GL_STREAM_COPY => 0x88E2,
  1466. GL_STATIC_DRAW => 0x88E4,
  1467. GL_STATIC_READ => 0x88E5,
  1468. GL_STATIC_COPY => 0x88E6,
  1469. GL_DYNAMIC_DRAW => 0x88E8,
  1470. GL_DYNAMIC_READ => 0x88E9,
  1471. GL_DYNAMIC_COPY => 0x88EA,
  1472. GL_SAMPLES_PASSED => 0x8914,
  1473. GL_FOG_COORD_SRC => 0x8450,
  1474. GL_FOG_COORD => 0x8451,
  1475. GL_CURRENT_FOG_COORD => 0x8453,
  1476. GL_FOG_COORD_ARRAY_TYPE => 0x8454,
  1477. GL_FOG_COORD_ARRAY_STRIDE => 0x8455,
  1478. GL_FOG_COORD_ARRAY_POINTER => 0x8456,
  1479. GL_FOG_COORD_ARRAY => 0x8457,
  1480. GL_FOG_COORD_ARRAY_BUFFER_BINDING => 0x889D,
  1481. GL_SRC0_RGB => 0x8580,
  1482. GL_SRC1_RGB => 0x8581,
  1483. GL_SRC2_RGB => 0x8582,
  1484. GL_SRC0_ALPHA => 0x8588,
  1485. GL_SRC1_ALPHA => 0x8589,
  1486. GL_SRC2_ALPHA => 0x858A,
  1487. GL_BLEND_EQUATION_RGB => 0x8009,
  1488. GL_VERTEX_ATTRIB_ARRAY_ENABLED => 0x8622,
  1489. GL_VERTEX_ATTRIB_ARRAY_SIZE => 0x8623,
  1490. GL_VERTEX_ATTRIB_ARRAY_STRIDE => 0x8624,
  1491. GL_VERTEX_ATTRIB_ARRAY_TYPE => 0x8625,
  1492. GL_CURRENT_VERTEX_ATTRIB => 0x8626,
  1493. GL_VERTEX_PROGRAM_POINT_SIZE => 0x8642,
  1494. GL_VERTEX_PROGRAM_TWO_SIDE => 0x8643,
  1495. GL_VERTEX_ATTRIB_ARRAY_POINTER => 0x8645,
  1496. GL_STENCIL_BACK_FUNC => 0x8800,
  1497. GL_STENCIL_BACK_FAIL => 0x8801,
  1498. GL_STENCIL_BACK_PASS_DEPTH_FAIL => 0x8802,
  1499. GL_STENCIL_BACK_PASS_DEPTH_PASS => 0x8803,
  1500. GL_MAX_DRAW_BUFFERS => 0x8824,
  1501. GL_DRAW_BUFFER0 => 0x8825,
  1502. GL_DRAW_BUFFER1 => 0x8826,
  1503. GL_DRAW_BUFFER2 => 0x8827,
  1504. GL_DRAW_BUFFER3 => 0x8828,
  1505. GL_DRAW_BUFFER4 => 0x8829,
  1506. GL_DRAW_BUFFER5 => 0x882A,
  1507. GL_DRAW_BUFFER6 => 0x882B,
  1508. GL_DRAW_BUFFER7 => 0x882C,
  1509. GL_DRAW_BUFFER8 => 0x882D,
  1510. GL_DRAW_BUFFER9 => 0x882E,
  1511. GL_DRAW_BUFFER10 => 0x882F,
  1512. GL_DRAW_BUFFER11 => 0x8830,
  1513. GL_DRAW_BUFFER12 => 0x8831,
  1514. GL_DRAW_BUFFER13 => 0x8832,
  1515. GL_DRAW_BUFFER14 => 0x8833,
  1516. GL_DRAW_BUFFER15 => 0x8834,
  1517. GL_BLEND_EQUATION_ALPHA => 0x883D,
  1518. GL_POINT_SPRITE => 0x8861,
  1519. GL_COORD_REPLACE => 0x8862,
  1520. GL_MAX_VERTEX_ATTRIBS => 0x8869,
  1521. GL_VERTEX_ATTRIB_ARRAY_NORMALIZED => 0x886A,
  1522. GL_MAX_TEXTURE_COORDS => 0x8871,
  1523. GL_MAX_TEXTURE_IMAGE_UNITS => 0x8872,
  1524. GL_FRAGMENT_SHADER => 0x8B30,
  1525. GL_VERTEX_SHADER => 0x8B31,
  1526. GL_MAX_FRAGMENT_UNIFORM_COMPONENTS => 0x8B49,
  1527. GL_MAX_VERTEX_UNIFORM_COMPONENTS => 0x8B4A,
  1528. GL_MAX_VARYING_FLOATS => 0x8B4B,
  1529. GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS => 0x8B4C,
  1530. GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS => 0x8B4D,
  1531. GL_SHADER_TYPE => 0x8B4F,
  1532. GL_FLOAT_VEC2 => 0x8B50,
  1533. GL_FLOAT_VEC3 => 0x8B51,
  1534. GL_FLOAT_VEC4 => 0x8B52,
  1535. GL_INT_VEC2 => 0x8B53,
  1536. GL_INT_VEC3 => 0x8B54,
  1537. GL_INT_VEC4 => 0x8B55,
  1538. GL_BOOL => 0x8B56,
  1539. GL_BOOL_VEC2 => 0x8B57,
  1540. GL_BOOL_VEC3 => 0x8B58,
  1541. GL_BOOL_VEC4