hedgewars/SDLh.pas
branchsdl2transition
changeset 11365 b8b208501475
parent 11364 b0df3f2fcafc
child 11368 c481d087f653
equal deleted inserted replaced
11364:b0df3f2fcafc 11365:b8b208501475
   239     MIX_INIT_FLAC       = $00000001;
   239     MIX_INIT_FLAC       = $00000001;
   240     MIX_INIT_MOD        = $00000002;
   240     MIX_INIT_MOD        = $00000002;
   241     MIX_INIT_MODPLUG    = $00000004;
   241     MIX_INIT_MODPLUG    = $00000004;
   242     MIX_INIT_MP3        = $00000008;
   242     MIX_INIT_MP3        = $00000008;
   243     MIX_INIT_OGG        = $00000010;
   243     MIX_INIT_OGG        = $00000010;
   244     MIX_INIT_FLUIDSYNTH = $00000020; 
   244     MIX_INIT_FLUIDSYNTH = $00000020;
   245 
   245 
   246     {* SDL_TTF *}
   246     {* SDL_TTF *}
   247     TTF_STYLE_NORMAL = 0;
   247     TTF_STYLE_NORMAL = 0;
   248     TTF_STYLE_BOLD   = 1;
   248     TTF_STYLE_BOLD   = 1;
   249     TTF_STYLE_ITALIC = 2;
   249     TTF_STYLE_ITALIC = 2;
   262     {* SDL_image *}
   262     {* SDL_image *}
   263     IMG_INIT_JPG = $00000001;
   263     IMG_INIT_JPG = $00000001;
   264     IMG_INIT_PNG = $00000002;
   264     IMG_INIT_PNG = $00000002;
   265     IMG_INIT_TIF = $00000004;
   265     IMG_INIT_TIF = $00000004;
   266 
   266 
   267     {* SDL_keysym *}
   267     {* SDL_keycode *}
       
   268     SDLK_UNKNOWN = 0;
   268     SDLK_BACKSPACE = 8;
   269     SDLK_BACKSPACE = 8;
   269     SDLK_RETURN    = 13;
   270     SDLK_RETURN    = 13;
   270     SDLK_ESCAPE    = 27;
   271     SDLK_ESCAPE    = 27;
   271     SDLK_a         = 97;
   272     SDLK_a         = 97;
   272     SDLK_c         = 99;
   273     SDLK_c         = 99;
   283     SDLK_HOME      = 278;
   284     SDLK_HOME      = 278;
   284     SDLK_END       = 279;
   285     SDLK_END       = 279;
   285     SDLK_PAGEUP    = 280;
   286     SDLK_PAGEUP    = 280;
   286     SDLK_PAGEDOWN  = 281;
   287     SDLK_PAGEDOWN  = 281;
   287 
   288 
       
   289     // special keycodes (for modifier keys etc. will have this bit set)
       
   290     SDLK_SCANCODE_MASK = (1 shl 30);
   288 
   291 
   289 /////////////////////////////////////////////////////////////////
   292 /////////////////////////////////////////////////////////////////
   290 ///////////////////////  TYPE DEFINITIONS ///////////////////////
   293 ///////////////////////  TYPE DEFINITIONS ///////////////////////
   291 /////////////////////////////////////////////////////////////////
   294 /////////////////////////////////////////////////////////////////
   292 
   295 
   299     PSDL_Renderer = Pointer;
   302     PSDL_Renderer = Pointer;
   300     PSDL_Texture  = Pointer;
   303     PSDL_Texture  = Pointer;
   301     PSDL_GLContext= Pointer;
   304     PSDL_GLContext= Pointer;
   302     TSDL_TouchId  = Int64;
   305     TSDL_TouchId  = Int64;
   303     TSDL_FingerId = Int64;
   306     TSDL_FingerId = Int64;
       
   307     TSDL_Keycode = LongInt;
   304 
   308 
   305     TSDL_eventaction = (SDL_ADDEVENT, SDL_PEEPEVENT, SDL_GETEVENT);
   309     TSDL_eventaction = (SDL_ADDEVENT, SDL_PEEPEVENT, SDL_GETEVENT);
       
   310 
       
   311     TSDL_Scancode = (
       
   312         SDL_SCANCODE_UNKNOWN := 0,
       
   313         SDL_SCANCODE_A := 4,
       
   314         SDL_SCANCODE_B := 5,
       
   315         SDL_SCANCODE_C := 6,
       
   316         SDL_SCANCODE_D := 7,
       
   317         SDL_SCANCODE_E := 8,
       
   318         SDL_SCANCODE_F := 9,
       
   319         SDL_SCANCODE_G := 10,
       
   320         SDL_SCANCODE_H := 11,
       
   321         SDL_SCANCODE_I := 12,
       
   322         SDL_SCANCODE_J := 13,
       
   323         SDL_SCANCODE_K := 14,
       
   324         SDL_SCANCODE_L := 15,
       
   325         SDL_SCANCODE_M := 16,
       
   326         SDL_SCANCODE_N := 17,
       
   327         SDL_SCANCODE_O := 18,
       
   328         SDL_SCANCODE_P := 19,
       
   329         SDL_SCANCODE_Q := 20,
       
   330         SDL_SCANCODE_R := 21,
       
   331         SDL_SCANCODE_S := 22,
       
   332         SDL_SCANCODE_T := 23,
       
   333         SDL_SCANCODE_U := 24,
       
   334         SDL_SCANCODE_V := 25,
       
   335         SDL_SCANCODE_W := 26,
       
   336         SDL_SCANCODE_X := 27,
       
   337         SDL_SCANCODE_Y := 28,
       
   338         SDL_SCANCODE_Z := 29,
       
   339         SDL_SCANCODE_1 := 30,
       
   340         SDL_SCANCODE_2 := 31,
       
   341         SDL_SCANCODE_3 := 32,
       
   342         SDL_SCANCODE_4 := 33,
       
   343         SDL_SCANCODE_5 := 34,
       
   344         SDL_SCANCODE_6 := 35,
       
   345         SDL_SCANCODE_7 := 36,
       
   346         SDL_SCANCODE_8 := 37,
       
   347         SDL_SCANCODE_9 := 38,
       
   348         SDL_SCANCODE_0 := 39,
       
   349         SDL_SCANCODE_RETURN := 40,
       
   350         SDL_SCANCODE_ESCAPE := 41,
       
   351         SDL_SCANCODE_BACKSPACE := 42,
       
   352         SDL_SCANCODE_TAB := 43,
       
   353         SDL_SCANCODE_SPACE := 44,
       
   354         SDL_SCANCODE_MINUS := 45,
       
   355         SDL_SCANCODE_EQUALS := 46,
       
   356         SDL_SCANCODE_LEFTBRACKET := 47,
       
   357         SDL_SCANCODE_RIGHTBRACKET := 48,
       
   358         SDL_SCANCODE_BACKSLASH := 49,
       
   359         SDL_SCANCODE_NONUSHASH := 50,
       
   360         SDL_SCANCODE_SEMICOLON := 51,
       
   361         SDL_SCANCODE_APOSTROPHE := 52,
       
   362         SDL_SCANCODE_GRAVE := 53,
       
   363         SDL_SCANCODE_COMMA := 54,
       
   364         SDL_SCANCODE_PERIOD := 55,
       
   365         SDL_SCANCODE_SLASH := 56,
       
   366         SDL_SCANCODE_CAPSLOCK := 57,
       
   367         SDL_SCANCODE_F1 := 58,
       
   368         SDL_SCANCODE_F2 := 59,
       
   369         SDL_SCANCODE_F3 := 60,
       
   370         SDL_SCANCODE_F4 := 61,
       
   371         SDL_SCANCODE_F5 := 62,
       
   372         SDL_SCANCODE_F6 := 63,
       
   373         SDL_SCANCODE_F7 := 64,
       
   374         SDL_SCANCODE_F8 := 65,
       
   375         SDL_SCANCODE_F9 := 66,
       
   376         SDL_SCANCODE_F10 := 67,
       
   377         SDL_SCANCODE_F11 := 68,
       
   378         SDL_SCANCODE_F12 := 69,
       
   379         SDL_SCANCODE_PRINTSCREEN := 70,
       
   380         SDL_SCANCODE_SCROLLLOCK := 71,
       
   381         SDL_SCANCODE_PAUSE := 72,
       
   382         SDL_SCANCODE_INSERT := 73,
       
   383         SDL_SCANCODE_HOME := 74,
       
   384         SDL_SCANCODE_PAGEUP := 75,
       
   385         SDL_SCANCODE_DELETE := 76,
       
   386         SDL_SCANCODE_END := 77,
       
   387         SDL_SCANCODE_PAGEDOWN := 78,
       
   388         SDL_SCANCODE_RIGHT := 79,
       
   389         SDL_SCANCODE_LEFT := 80,
       
   390         SDL_SCANCODE_DOWN := 81,
       
   391         SDL_SCANCODE_UP := 82,
       
   392         SDL_SCANCODE_NUMLOCKCLEAR := 83,
       
   393         SDL_SCANCODE_KP_DIVIDE := 84,
       
   394         SDL_SCANCODE_KP_MULTIPLY := 85,
       
   395         SDL_SCANCODE_KP_MINUS := 86,
       
   396         SDL_SCANCODE_KP_PLUS := 87,
       
   397         SDL_SCANCODE_KP_ENTER := 88,
       
   398         SDL_SCANCODE_KP_1 := 89,
       
   399         SDL_SCANCODE_KP_2 := 90,
       
   400         SDL_SCANCODE_KP_3 := 91,
       
   401         SDL_SCANCODE_KP_4 := 92,
       
   402         SDL_SCANCODE_KP_5 := 93,
       
   403         SDL_SCANCODE_KP_6 := 94,
       
   404         SDL_SCANCODE_KP_7 := 95,
       
   405         SDL_SCANCODE_KP_8 := 96,
       
   406         SDL_SCANCODE_KP_9 := 97,
       
   407         SDL_SCANCODE_KP_0 := 98,
       
   408         SDL_SCANCODE_KP_PERIOD := 99,
       
   409         SDL_SCANCODE_NONUSBACKSLASH := 100,
       
   410         SDL_SCANCODE_APPLICATION := 101,
       
   411         SDL_SCANCODE_POWER := 102,
       
   412         SDL_SCANCODE_KP_EQUALS := 103,
       
   413         SDL_SCANCODE_F13 := 104,
       
   414         SDL_SCANCODE_F14 := 105,
       
   415         SDL_SCANCODE_F15 := 106,
       
   416         SDL_SCANCODE_F16 := 107,
       
   417         SDL_SCANCODE_F17 := 108,
       
   418         SDL_SCANCODE_F18 := 109,
       
   419         SDL_SCANCODE_F19 := 110,
       
   420         SDL_SCANCODE_F20 := 111,
       
   421         SDL_SCANCODE_F21 := 112,
       
   422         SDL_SCANCODE_F22 := 113,
       
   423         SDL_SCANCODE_F23 := 114,
       
   424         SDL_SCANCODE_F24 := 115,
       
   425         SDL_SCANCODE_EXECUTE := 116,
       
   426         SDL_SCANCODE_HELP := 117,
       
   427         SDL_SCANCODE_MENU := 118,
       
   428         SDL_SCANCODE_SELECT := 119,
       
   429         SDL_SCANCODE_STOP := 120,
       
   430         SDL_SCANCODE_AGAIN := 121,
       
   431         SDL_SCANCODE_UNDO := 122,
       
   432         SDL_SCANCODE_CUT := 123,
       
   433         SDL_SCANCODE_COPY := 124,
       
   434         SDL_SCANCODE_PASTE := 125,
       
   435         SDL_SCANCODE_FIND := 126,
       
   436         SDL_SCANCODE_MUTE := 127,
       
   437         SDL_SCANCODE_VOLUMEUP := 128,
       
   438         SDL_SCANCODE_VOLUMEDOWN := 129,
       
   439         SDL_SCANCODE_KP_COMMA := 133,
       
   440         SDL_SCANCODE_KP_EQUALSAS400 := 134,
       
   441         SDL_SCANCODE_INTERNATIONAL1 := 135,
       
   442         SDL_SCANCODE_INTERNATIONAL2 := 136,
       
   443         SDL_SCANCODE_INTERNATIONAL3 := 137,
       
   444         SDL_SCANCODE_INTERNATIONAL4 := 138,
       
   445         SDL_SCANCODE_INTERNATIONAL5 := 139,
       
   446         SDL_SCANCODE_INTERNATIONAL6 := 140,
       
   447         SDL_SCANCODE_INTERNATIONAL7 := 141,
       
   448         SDL_SCANCODE_INTERNATIONAL8 := 142,
       
   449         SDL_SCANCODE_INTERNATIONAL9 := 143,
       
   450         SDL_SCANCODE_LANG1 := 144, (*< Hangul/English toggle *)
       
   451         SDL_SCANCODE_LANG2 := 145, (*< Hanja conversion *)
       
   452         SDL_SCANCODE_LANG3 := 146, (*< Katakana *)
       
   453         SDL_SCANCODE_LANG4 := 147, (*< Hiragana *)
       
   454         SDL_SCANCODE_LANG5 := 148, (*< Zenkaku/Hankaku *)
       
   455         SDL_SCANCODE_LANG6 := 149, (*< reserved *)
       
   456         SDL_SCANCODE_LANG7 := 150, (*< reserved *)
       
   457         SDL_SCANCODE_LANG8 := 151, (*< reserved *)
       
   458         SDL_SCANCODE_LANG9 := 152, (*< reserved *)
       
   459         SDL_SCANCODE_ALTERASE := 153,
       
   460         SDL_SCANCODE_SYSREQ := 154,
       
   461         SDL_SCANCODE_CANCEL := 155,
       
   462         SDL_SCANCODE_CLEAR := 156,
       
   463         SDL_SCANCODE_PRIOR := 157,
       
   464         SDL_SCANCODE_RETURN2 := 158,
       
   465         SDL_SCANCODE_SEPARATOR := 159,
       
   466         SDL_SCANCODE_OUT := 160,
       
   467         SDL_SCANCODE_OPER := 161,
       
   468         SDL_SCANCODE_CLEARAGAIN := 162,
       
   469         SDL_SCANCODE_CRSEL := 163,
       
   470         SDL_SCANCODE_EXSEL := 164,
       
   471         SDL_SCANCODE_KP_00 := 176,
       
   472         SDL_SCANCODE_KP_000 := 177,
       
   473         SDL_SCANCODE_THOUSANDSSEPARATOR := 178,
       
   474         SDL_SCANCODE_DECIMALSEPARATOR := 179,
       
   475         SDL_SCANCODE_CURRENCYUNIT := 180,
       
   476         SDL_SCANCODE_CURRENCYSUBUNIT := 181,
       
   477         SDL_SCANCODE_KP_LEFTPAREN := 182,
       
   478         SDL_SCANCODE_KP_RIGHTPAREN := 183,
       
   479         SDL_SCANCODE_KP_LEFTBRACE := 184,
       
   480         SDL_SCANCODE_KP_RIGHTBRACE := 185,
       
   481         SDL_SCANCODE_KP_TAB := 186,
       
   482         SDL_SCANCODE_KP_BACKSPACE := 187,
       
   483         SDL_SCANCODE_KP_A := 188,
       
   484         SDL_SCANCODE_KP_B := 189,
       
   485         SDL_SCANCODE_KP_C := 190,
       
   486         SDL_SCANCODE_KP_D := 191,
       
   487         SDL_SCANCODE_KP_E := 192,
       
   488         SDL_SCANCODE_KP_F := 193,
       
   489         SDL_SCANCODE_KP_XOR := 194,
       
   490         SDL_SCANCODE_KP_POWER := 195,
       
   491         SDL_SCANCODE_KP_PERCENT := 196,
       
   492         SDL_SCANCODE_KP_LESS := 197,
       
   493         SDL_SCANCODE_KP_GREATER := 198,
       
   494         SDL_SCANCODE_KP_AMPERSAND := 199,
       
   495         SDL_SCANCODE_KP_DBLAMPERSAND := 200,
       
   496         SDL_SCANCODE_KP_VERTICALBAR := 201,
       
   497         SDL_SCANCODE_KP_DBLVERTICALBAR := 202,
       
   498         SDL_SCANCODE_KP_COLON := 203,
       
   499         SDL_SCANCODE_KP_HASH := 204,
       
   500         SDL_SCANCODE_KP_SPACE := 205,
       
   501         SDL_SCANCODE_KP_AT := 206,
       
   502         SDL_SCANCODE_KP_EXCLAM := 207,
       
   503         SDL_SCANCODE_KP_MEMSTORE := 208,
       
   504         SDL_SCANCODE_KP_MEMRECALL := 209,
       
   505         SDL_SCANCODE_KP_MEMCLEAR := 210,
       
   506         SDL_SCANCODE_KP_MEMADD := 211,
       
   507         SDL_SCANCODE_KP_MEMSUBTRACT := 212,
       
   508         SDL_SCANCODE_KP_MEMMULTIPLY := 213,
       
   509         SDL_SCANCODE_KP_MEMDIVIDE := 214,
       
   510         SDL_SCANCODE_KP_PLUSMINUS := 215,
       
   511         SDL_SCANCODE_KP_CLEAR := 216,
       
   512         SDL_SCANCODE_KP_CLEARENTRY := 217,
       
   513         SDL_SCANCODE_KP_BINARY := 218,
       
   514         SDL_SCANCODE_KP_OCTAL := 219,
       
   515         SDL_SCANCODE_KP_DECIMAL := 220,
       
   516         SDL_SCANCODE_KP_HEXADECIMAL := 221,
       
   517         SDL_SCANCODE_LCTRL := 224,
       
   518         SDL_SCANCODE_LSHIFT := 225,
       
   519         SDL_SCANCODE_LALT := 226,
       
   520         SDL_SCANCODE_LGUI := 227,
       
   521         SDL_SCANCODE_RCTRL := 228,
       
   522         SDL_SCANCODE_RSHIFT := 229,
       
   523         SDL_SCANCODE_RALT := 230,
       
   524         SDL_SCANCODE_RGUI := 231,
       
   525         SDL_SCANCODE_MODE := 257,
       
   526         SDL_SCANCODE_AUDIONEXT := 258,
       
   527         SDL_SCANCODE_AUDIOPREV := 259,
       
   528         SDL_SCANCODE_AUDIOSTOP := 260,
       
   529         SDL_SCANCODE_AUDIOPLAY := 261,
       
   530         SDL_SCANCODE_AUDIOMUTE := 262,
       
   531         SDL_SCANCODE_MEDIASELECT := 263,
       
   532         SDL_SCANCODE_WWW := 264,
       
   533         SDL_SCANCODE_MAIL := 265,
       
   534         SDL_SCANCODE_CALCULATOR := 266,
       
   535         SDL_SCANCODE_COMPUTER := 267,
       
   536         SDL_SCANCODE_AC_SEARCH := 268,
       
   537         SDL_SCANCODE_AC_HOME := 269,
       
   538         SDL_SCANCODE_AC_BACK := 270,
       
   539         SDL_SCANCODE_AC_FORWARD := 271,
       
   540         SDL_SCANCODE_AC_STOP := 272,
       
   541         SDL_SCANCODE_AC_REFRESH := 273,
       
   542         SDL_SCANCODE_AC_BOOKMARKS := 274,
       
   543         SDL_SCANCODE_BRIGHTNESSDOWN := 275,
       
   544         SDL_SCANCODE_BRIGHTNESSUP := 276,
       
   545         SDL_SCANCODE_DISPLAYSWITCH := 277,
       
   546         SDL_SCANCODE_KBDILLUMTOGGLE := 278,
       
   547         SDL_SCANCODE_KBDILLUMDOWN := 279,
       
   548         SDL_SCANCODE_KBDILLUMUP := 280,
       
   549         SDL_SCANCODE_EJECT := 281,
       
   550         SDL_SCANCODE_SLEEP := 282,
       
   551         SDL_SCANCODE_APP1 := 283,
       
   552         SDL_SCANCODE_APP2 := 284
       
   553     );
   306 
   554 
   307     PSDL_Rect = ^TSDL_Rect;
   555     PSDL_Rect = ^TSDL_Rect;
   308     TSDL_Rect = record
   556     TSDL_Rect = record
   309         x, y, w, h: LongInt;
   557         x, y, w, h: LongInt;
   310         end;
   558         end;
   439 
   687 
   440 
   688 
   441 {* SDL_Event type definition *}
   689 {* SDL_Event type definition *}
   442 
   690 
   443     TSDL_Keysym = record
   691     TSDL_Keysym = record
   444         scancode: LongInt;
   692         scancode: TSDL_Scancode;
   445         sym: LongInt;
   693         sym: TSDL_Keycode;
   446         modifier: Word;
   694         modifier: Word;
   447         unused: LongWord;
   695         unused: LongWord;
   448         end;
   696         end;
   449 
   697 
   450     TSDL_WindowEvent = record
   698     TSDL_WindowEvent = record
   852 function  SDL_AllocFormat(format: LongWord): PSDL_PixelFormat; cdecl; external SDLLibName;
  1100 function  SDL_AllocFormat(format: LongWord): PSDL_PixelFormat; cdecl; external SDLLibName;
   853 procedure SDL_FreeFormat(pixelformat: PSDL_PixelFormat); cdecl; external SDLLibName;
  1101 procedure SDL_FreeFormat(pixelformat: PSDL_PixelFormat); cdecl; external SDLLibName;
   854 
  1102 
   855 
  1103 
   856 function  SDL_GetMouseState(x, y: PLongInt): Byte; cdecl; external SDLLibName;
  1104 function  SDL_GetMouseState(x, y: PLongInt): Byte; cdecl; external SDLLibName;
   857 function  SDL_GetKeyName(key: LongWord): PChar; cdecl; external SDLLibName;
  1105 function  SDL_GetKeyName(key: TSDL_Keycode): PChar; cdecl; external SDLLibName;
   858 function  SDL_GetScancodeName(key: LongWord): PChar; cdecl; external SDLLibName;
  1106 function  SDL_GetScancodeName(key: TSDL_Scancode): PChar; cdecl; external SDLLibName;
   859 function  SDL_GetKeyFromScancode(key: LongWord): LongInt; cdecl; external SDLLibName;
  1107 function  SDL_GetKeyFromScancode(key: TSDL_Scancode): TSDL_Keycode; cdecl; external SDLLibName;
   860 
  1108 // SDL2 functions has some additional functions (not listed here) for keycode/scancode translation
   861 
  1109 
   862 procedure SDL_PumpEvents; cdecl; external SDLLibName;
  1110 procedure SDL_PumpEvents; cdecl; external SDLLibName;
   863 function  SDL_PollEvent(event: PSDL_Event): LongInt; cdecl; external SDLLibName;
  1111 function  SDL_PollEvent(event: PSDL_Event): LongInt; cdecl; external SDLLibName;
   864 function  SDL_WaitEvent(event: PSDL_Event): LongInt; cdecl; external SDLLibName;
  1112 function  SDL_WaitEvent(event: PSDL_Event): LongInt; cdecl; external SDLLibName;
   865 procedure SDL_SetEventFilter(filter: TSDL_EventFilter); cdecl; external SDLLibName;
  1113 procedure SDL_SetEventFilter(filter: TSDL_EventFilter); cdecl; external SDLLibName;