hedgewars/SDLh.pas
author koda
Thu, 05 Nov 2009 16:23:09 +0000
changeset 2599 c7153d2348f3
parent 2592 d86618629e20
child 2600 7b21daf84933
permissions -rw-r--r--
move compiler directives to standard pascal
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
     1
(*
1066
1f1b3686a2b0 Update copyright headers a bit
unc0rr
parents: 945
diff changeset
     2
 * Hedgewars, a free turn based strategy game
883
07a568ba44e0 Update copyright info in source files headers
unc0rr
parents: 780
diff changeset
     3
 * Copyright (c) 2004-2008 Andrey Korotaev <unC0Rr@gmail.com>
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
     4
 *
183
57c2ef19f719 Relicense to GPL
unc0rr
parents: 174
diff changeset
     5
 * This program is free software; you can redistribute it and/or modify
57c2ef19f719 Relicense to GPL
unc0rr
parents: 174
diff changeset
     6
 * it under the terms of the GNU General Public License as published by
57c2ef19f719 Relicense to GPL
unc0rr
parents: 174
diff changeset
     7
 * the Free Software Foundation; version 2 of the License
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
     8
 *
183
57c2ef19f719 Relicense to GPL
unc0rr
parents: 174
diff changeset
     9
 * This program is distributed in the hope that it will be useful,
57c2ef19f719 Relicense to GPL
unc0rr
parents: 174
diff changeset
    10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
57c2ef19f719 Relicense to GPL
unc0rr
parents: 174
diff changeset
    11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
57c2ef19f719 Relicense to GPL
unc0rr
parents: 174
diff changeset
    12
 * GNU General Public License for more details.
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
    13
 *
183
57c2ef19f719 Relicense to GPL
unc0rr
parents: 174
diff changeset
    14
 * You should have received a copy of the GNU General Public License
57c2ef19f719 Relicense to GPL
unc0rr
parents: 174
diff changeset
    15
 * along with this program; if not, write to the Free Software
57c2ef19f719 Relicense to GPL
unc0rr
parents: 174
diff changeset
    16
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
    17
 *)
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
    18
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
    19
unit SDLh;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
    20
interface
753
40fc0deb388f Start conversion to OpenGL rendering
unc0rr
parents: 500
diff changeset
    21
2599
c7153d2348f3 move compiler directives to standard pascal
koda
parents: 2592
diff changeset
    22
{$INCLUDE "options.inc"}
2586
204e6b2885bc added little/big endian checks, added symbol for touch input, simplified iphoneos definitions
koda
parents: 2579
diff changeset
    23
2599
c7153d2348f3 move compiler directives to standard pascal
koda
parents: 2592
diff changeset
    24
{$IFDEF LINUX}
c7153d2348f3 move compiler directives to standard pascal
koda
parents: 2592
diff changeset
    25
{$DEFINE UNIX}
c7153d2348f3 move compiler directives to standard pascal
koda
parents: 2592
diff changeset
    26
{$ENDIF}
c7153d2348f3 move compiler directives to standard pascal
koda
parents: 2592
diff changeset
    27
{$IFDEF FREEBSD}
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
    28
{$DEFINE UNIX}
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
    29
{$ENDIF}
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
    30
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
    31
{$IFDEF UNIX}
1903
64e56f19d6d6 Patch by koda
unc0rr
parents: 1880
diff changeset
    32
  {$IFNDEF DARWIN}
1556
3369f016b79d Patch for engine to successfully build on Mac OS X by Michael Schindler
unc0rr
parents: 1225
diff changeset
    33
    {$linklib c}
3369f016b79d Patch for engine to successfully build on Mac OS X by Michael Schindler
unc0rr
parents: 1225
diff changeset
    34
  {$ENDIF}
3369f016b79d Patch for engine to successfully build on Mac OS X by Michael Schindler
unc0rr
parents: 1225
diff changeset
    35
  {$linklib pthread}
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
    36
{$ENDIF}
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
    37
2599
c7153d2348f3 move compiler directives to standard pascal
koda
parents: 2592
diff changeset
    38
{$IFDEF FPC}
432
b0f693024b50 Delphi mode off
unc0rr
parents: 377
diff changeset
    39
{$PACKRECORDS C}
2599
c7153d2348f3 move compiler directives to standard pascal
koda
parents: 2592
diff changeset
    40
{$ENDIF}
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
    41
1819
17dac76954d1 Patch by koda to better support Mac OS X
unc0rr
parents: 1712
diff changeset
    42
{$IFDEF DARWIN}
2200
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents: 2191
diff changeset
    43
	{$PASCALMAINNAME SDL_main}
2152
a2811690da1b Patch by koda:
unc0rr
parents: 2017
diff changeset
    44
{$IFNDEF IPHONEOS}
2200
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents: 2191
diff changeset
    45
	{$linkframework Cocoa}
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents: 2191
diff changeset
    46
	{$linkframework SDL}
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents: 2191
diff changeset
    47
	{$linkframework SDL_net}
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents: 2191
diff changeset
    48
	{$linkframework SDL_image}
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents: 2191
diff changeset
    49
	{$linkframework SDL_ttf}
2515
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
    50
	{$linkframework SDL_mixer}
2200
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents: 2191
diff changeset
    51
	{$linklib SDLmain}
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents: 2191
diff changeset
    52
	{$linklib gcc}
1819
17dac76954d1 Patch by koda to better support Mac OS X
unc0rr
parents: 1712
diff changeset
    53
{$ENDIF}
1916
9c3d0e3df6bb patch by koda:
unc0rr
parents: 1906
diff changeset
    54
{$ENDIF}
1819
17dac76954d1 Patch by koda to better support Mac OS X
unc0rr
parents: 1712
diff changeset
    55
1997
cd66434351cf koda's patch
unc0rr
parents: 1947
diff changeset
    56
(*  SDL  *)
2390
57fb33ab04a4 converts some gl calls to gles
koda
parents: 2379
diff changeset
    57
const
57fb33ab04a4 converts some gl calls to gles
koda
parents: 2379
diff changeset
    58
{$IFDEF WIN32}
57fb33ab04a4 converts some gl calls to gles
koda
parents: 2379
diff changeset
    59
        SDLLibName = 'SDL.dll';
57fb33ab04a4 converts some gl calls to gles
koda
parents: 2379
diff changeset
    60
{$ENDIF}
57fb33ab04a4 converts some gl calls to gles
koda
parents: 2379
diff changeset
    61
{$IFDEF UNIX}
57fb33ab04a4 converts some gl calls to gles
koda
parents: 2379
diff changeset
    62
	{$IFDEF DARWIN}
57fb33ab04a4 converts some gl calls to gles
koda
parents: 2379
diff changeset
    63
                SDLLibName = 'SDL';
57fb33ab04a4 converts some gl calls to gles
koda
parents: 2379
diff changeset
    64
        {$ELSE}
57fb33ab04a4 converts some gl calls to gles
koda
parents: 2379
diff changeset
    65
		SDLLibName = 'libSDL.so';
57fb33ab04a4 converts some gl calls to gles
koda
parents: 2379
diff changeset
    66
        {$ENDIF}
57fb33ab04a4 converts some gl calls to gles
koda
parents: 2379
diff changeset
    67
{$ENDIF}
2575
d06e0e829828 update color management for new sdl_image on mac
koda
parents: 2567
diff changeset
    68
	SDL_SWSURFACE     = $00000000;
d06e0e829828 update color management for new sdl_image on mac
koda
parents: 2567
diff changeset
    69
	SDL_HWSURFACE     = $00000001;
d06e0e829828 update color management for new sdl_image on mac
koda
parents: 2567
diff changeset
    70
	SDL_SRCALPHA      = $00010000;
d06e0e829828 update color management for new sdl_image on mac
koda
parents: 2567
diff changeset
    71
	SDL_INIT_VIDEO    = $00000020;
d06e0e829828 update color management for new sdl_image on mac
koda
parents: 2567
diff changeset
    72
	SDL_INIT_AUDIO    = $00000010;
2428
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2390
diff changeset
    73
	SDL_INIT_JOYSTICK = $00000200;
2240
7ce9e6b7be3b -Removal of older WAV files, now useless thanks to OpenAL
koda
parents: 2200
diff changeset
    74
2575
d06e0e829828 update color management for new sdl_image on mac
koda
parents: 2567
diff changeset
    75
	SDL_APPINPUTFOCUS = 2;
2591
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
    76
	SDL_BUTTON_WHEELDUP = 4;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
    77
	SDL_BUTTON_WHEELDOWN = 5;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
    78
		
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
    79
{*begin sdl_event binding*}
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
    80
	SDL_NOEVENT = 0;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
    81
	SDL_KEYDOWN = 2;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
    82
	SDL_KEYUP = 3;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
    83
{$IFDEF SDL13}
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
    84
        SDL_WINDOWEVENT = 1;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
    85
        SDL_TEXTINPUT = 4;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
    86
        SDL_TEXTEDITING = 5;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
    87
	SDL_MOUSEMOTION  = 6;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
    88
        SDL_MOUSEBUTTONDOWN = 7;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
    89
	SDL_MOUSEBUTTONUP   = 8;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
    90
        SDL_MOUSEWHEEL = 9;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
    91
	SDL_JOYAXISMOTION = 10;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
    92
	SDL_JOYBALLMOTION = 11;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
    93
	SDL_JOYHATMOTION = 12;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
    94
	SDL_JOYBUTTONDOWN = 13;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
    95
	SDL_JOYBUTTONUP = 14;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
    96
	SDL_QUITEV = 15;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
    97
{$ELSE}
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
    98
        SDL_ACTIVEEVENT = 1;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
    99
	SDL_MOUSEMOTION  = 4;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   100
       	SDL_MOUSEBUTTONDOWN = 5;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   101
	SDL_MOUSEBUTTONUP   = 6;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   102
	SDL_JOYAXISMOTION = 7;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   103
	SDL_JOYBALLMOTION = 8;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   104
	SDL_JOYHATMOTION = 9;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   105
	SDL_JOYBUTTONDOWN = 10;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   106
	SDL_JOYBUTTONUP = 11;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   107
	SDL_QUITEV = 12;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   108
	SDL_VIDEORESIZE = 16; // TODO: outdated? no longer in SDL 1.3?
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   109
{$ENDIF}
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   110
{*end sdl_event binding*}
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   111
		
2241
7992f7ba388d completes removal of wav files, updates SDLh and adds DEBUGFILE to hwengine when compiled in Debug mode
koda
parents: 2240
diff changeset
   112
{$IFDEF SDL13}
2379
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   113
	SDL_ASYNCBLIT   = $08000000;
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   114
	SDL_ANYFORMAT   = $10000000;
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   115
	SDL_HWPALETTE   = $00200000;
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   116
	SDL_DOUBLEBUF   = $00400000;
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   117
	SDL_FULLSCREEN  = $00800000;
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   118
	SDL_HWACCEL     = $08000000;
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   119
	SDL_SRCCOLORKEY = $00020000;
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   120
	SDL_RLEACCEL    = $08000000;
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   121
	SDL_NOFRAME     = $02000000;
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   122
	SDL_OPENGL      = $04000000;
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   123
	SDL_RESIZABLE   = $01000000;
2241
7992f7ba388d completes removal of wav files, updates SDLh and adds DEBUGFILE to hwengine when compiled in Debug mode
koda
parents: 2240
diff changeset
   124
{$ELSE}
2379
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   125
	SDL_ASYNCBLIT   = $00000004;
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   126
	SDL_ANYFORMAT   = $00100000;
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   127
	SDL_HWPALETTE   = $20000000;
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   128
	SDL_DOUBLEBUF   = $40000000;
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   129
	SDL_FULLSCREEN  = $80000000;
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   130
	SDL_HWACCEL     = $00000100;
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   131
	SDL_SRCCOLORKEY = $00001000;
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   132
	SDL_RLEACCEL    = $00004000;
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   133
	SDL_NOFRAME     = $00000020;
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   134
	SDL_OPENGL      = $00000002;
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   135
	SDL_RESIZABLE   = $00000010;
2241
7992f7ba388d completes removal of wav files, updates SDLh and adds DEBUGFILE to hwengine when compiled in Debug mode
koda
parents: 2240
diff changeset
   136
{$ENDIF}
945
4ead9cde4e14 - Start chat implementation: chat strings are on the screen
unc0rr
parents: 883
diff changeset
   137
2567
02ff5f9510b5 WE HAVE TOUCH INPUT
koda
parents: 2525
diff changeset
   138
2586
204e6b2885bc added little/big endian checks, added symbol for touch input, simplified iphoneos definitions
koda
parents: 2579
diff changeset
   139
{$IFDEF ENDIAN_LITTLE}
2379
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   140
	RMask = $000000FF;
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   141
	GMask = $0000FF00;
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   142
	BMask = $00FF0000;
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   143
	AMask = $FF000000;
2586
204e6b2885bc added little/big endian checks, added symbol for touch input, simplified iphoneos definitions
koda
parents: 2579
diff changeset
   144
{$ELSE}
204e6b2885bc added little/big endian checks, added symbol for touch input, simplified iphoneos definitions
koda
parents: 2579
diff changeset
   145
	RMask = $FF000000;
204e6b2885bc added little/big endian checks, added symbol for touch input, simplified iphoneos definitions
koda
parents: 2579
diff changeset
   146
	GMask = $00FF0000;
204e6b2885bc added little/big endian checks, added symbol for touch input, simplified iphoneos definitions
koda
parents: 2579
diff changeset
   147
	BMask = $0000FF00;
204e6b2885bc added little/big endian checks, added symbol for touch input, simplified iphoneos definitions
koda
parents: 2579
diff changeset
   148
	AMask = $000000FF;
204e6b2885bc added little/big endian checks, added symbol for touch input, simplified iphoneos definitions
koda
parents: 2579
diff changeset
   149
{$ENDIF}
2575
d06e0e829828 update color management for new sdl_image on mac
koda
parents: 2567
diff changeset
   150
754
94ac14829085 Some further work on switching to OpenGL rendering
unc0rr
parents: 753
diff changeset
   151
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   152
type PSDL_Rect = ^TSDL_Rect;
2379
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   153
	TSDL_Rect = record
2390
57fb33ab04a4 converts some gl calls to gles
koda
parents: 2379
diff changeset
   154
{$IFDEF SDL13}
2379
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   155
		x, y, w, h: LongInt;
2390
57fb33ab04a4 converts some gl calls to gles
koda
parents: 2379
diff changeset
   156
{$ELSE}
2379
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   157
		x, y: SmallInt;
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   158
		w, h: Word;
2390
57fb33ab04a4 converts some gl calls to gles
koda
parents: 2379
diff changeset
   159
{$ENDIF}
2379
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   160
		end;
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   161
2379
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   162
	TPoint = record
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   163
		X: LongInt;
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   164
		Y: LongInt;
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   165
		end;
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   166
2379
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   167
	PSDL_PixelFormat = ^TSDL_PixelFormat;
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   168
	TSDL_PixelFormat = record
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   169
		palette: Pointer;
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   170
		BitsPerPixel : Byte;
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   171
		BytesPerPixel: Byte;
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   172
		Rloss : Byte;
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   173
		Gloss : Byte;
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   174
		Bloss : Byte;
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   175
		Aloss : Byte;
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   176
		Rshift: Byte;
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   177
		Gshift: Byte;
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   178
		Bshift: Byte;
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   179
		Ashift: Byte;
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   180
		RMask : Longword;
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   181
		GMask : Longword;
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   182
		BMask : Longword;
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   183
		AMask : Longword;
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   184
		colorkey: Longword;
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   185
		alpha : Byte;
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   186
		end;
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   187
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   188
2379
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   189
	PSDL_Surface = ^TSDL_Surface;
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   190
	TSDL_Surface = record
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   191
		flags : Longword;
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   192
		format: PSDL_PixelFormat;
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   193
		w, h  : LongInt;
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   194
		pitch : Word;
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   195
		pixels: Pointer;
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   196
		offset: LongInt;
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   197
		end;
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   198
2248
26e11cb27c61 real fix for iphone color (reverting previous commit)
koda
parents: 2242
diff changeset
   199
2379
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   200
	PSDL_Color = ^TSDL_Color;
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   201
	TSDL_Color = record
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   202
		case byte of
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   203
			0: (r: Byte;
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   204
				g: Byte;
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   205
				b: Byte;
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   206
				unused: Byte;
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   207
				);
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   208
			1: (value: Longword);
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   209
		end;
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   210
2248
26e11cb27c61 real fix for iphone color (reverting previous commit)
koda
parents: 2242
diff changeset
   211
2379
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   212
	PSDL_RWops = ^TSDL_RWops;
2599
c7153d2348f3 move compiler directives to standard pascal
koda
parents: 2592
diff changeset
   213
	TSeek  = function( context: PSDL_RWops; offset: LongInt; whence: LongInt ): LongInt; cdecl;
c7153d2348f3 move compiler directives to standard pascal
koda
parents: 2592
diff changeset
   214
	TRead  = function( context: PSDL_RWops; Ptr: Pointer; size: LongInt; maxnum : LongInt ): LongInt;  cdecl;
2379
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   215
	TWrite = function( context: PSDL_RWops; Ptr: Pointer; size: LongInt; num: LongInt ): LongInt; cdecl;
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   216
	TClose = function( context: PSDL_RWops ): LongInt; cdecl;
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   217
2379
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   218
	TStdio = record
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   219
		autoclose: LongInt;
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   220
		fp: pointer;
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   221
		end;
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   222
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   223
	TMem = record
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   224
		base: PByte;
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   225
		here: PByte;
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   226
		stop: PByte;
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   227
		end;
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   228
2379
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   229
	TUnknown = record
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   230
		data1: Pointer;
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   231
		end;
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   232
2379
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   233
	TSDL_RWops = record
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   234
		seek: TSeek;
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   235
		read: TRead;
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   236
		write: TWrite;
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   237
		close: TClose;
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   238
		type_: Longword;
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   239
		case Byte of
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   240
			0: (stdio: TStdio);
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   241
			1: (mem: TMem);
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   242
			2: (unknown: TUnknown);
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   243
			end;
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   244
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   245
	TSDL_KeySym = record
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   246
		scancode: Byte;
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   247
		sym: Longword;
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   248
		modifier: Longword;
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   249
		unicode: Word;
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   250
		end;
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   251
2591
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   252
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   253
{* SDL_event type definition *}
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   254
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   255
{$IFDEF SDL13}
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   256
	TSDL_WindowID = LongInt;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   257
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   258
	TSDL_WindowEvent = record
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   259
{$ELSE}
2379
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   260
	TSDL_ActiveEvent = record
2591
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   261
{$ENDIF}
2379
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   262
		type_: byte;
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   263
		gain: byte;
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   264
		state: byte;
2591
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   265
{$IFDEF SDL13}
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   266
		windowID: TSDL_WindowID;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   267
		data1, data2: LongInt;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   268
{$ENDIF}
2379
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   269
		end;
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   270
2591
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   271
//SDL_TextEditingEvent + SDL_TextInputEvent for sdl13
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   272
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   273
	TSDL_MouseMotionEvent = record
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   274
                             type_: byte;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   275
                             which: byte;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   276
                             state: byte;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   277
{$IFDEF SDL13}
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   278
                             x, y, xrel, yrel : LongInt;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   279
			     pressure, pressure_max, pressure_min,
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   280
			     rotation, tilt, cursor: LongInt; 
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   281
{$ELSE}
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   282
                             x, y, xrel, yrel : word;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   283
{$ENDIF}
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   284
                             end;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   285
2379
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   286
	TSDL_KeyboardEvent = record
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   287
		type_: Byte;
2591
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   288
{$IFDEF SDL13}
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   289
		windowID: TSDL_WindowID;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   290
{$ENDIF}
2379
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   291
		which: Byte;
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   292
		state: Byte;
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   293
		keysym: TSDL_KeySym;
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   294
		end;
308
806c3b55500d Release mouse when keyboard focus lost
unc0rr
parents: 206
diff changeset
   295
2379
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   296
	TSDL_MouseButtonEvent = record
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   297
		_type,
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   298
		which,
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   299
		button,
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   300
		state: byte;
2591
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   301
{$IFDEF SDL13}
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   302
		x, y: LongInt;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   303
{$ELSE}
2379
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   304
		x, y: word;
2591
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   305
{$ENDIF}
2379
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   306
		end;
2376
ece7b87f1334 Strip trailing spaces
nemo
parents: 2254
diff changeset
   307
2591
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   308
{$IFDEF SDL13}
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   309
	TSDL_MouseWheelEvent = record
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   310
		type_: Byte;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   311
		windowID: TSDL_WindowID;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   312
		which: Byte;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   313
		x, y: LongInt;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   314
		end;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   315
{$ENDIF}
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   316
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   317
     TSDL_JoyAxisEvent = record
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   318
		type_: Byte;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   319
		which: Byte;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   320
		axis: Byte;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   321
{$IFDEF SDL13}
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   322
		value: LongInt;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   323
{$ELSE}
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   324
		value: word;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   325
{$ENDIF}	
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   326
		end;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   327
			
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   328
     TSDL_JoyBallEvent = record
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   329
		type_: Byte;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   330
		which: Byte;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   331
		ball: Byte;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   332
{$IFDEF SDL13}
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   333
		xrel, yrel: LongInt;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   334
{$ELSE}
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   335
		xrel, yrel: word;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   336
{$ENDIF}
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   337
		end;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   338
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   339
     TSDL_JoyHatEvent = record
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   340
		type_: Byte;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   341
		which: Byte;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   342
		hat: Byte;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   343
		value: Byte;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   344
		end;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   345
	
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   346
     TSDL_JoyButtonEvent = record
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   347
		type_: Byte;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   348
		which: Byte;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   349
		button: Byte;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   350
		state: Byte;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   351
		end;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   352
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   353
     TSDL_QuitEvent = record
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   354
                type_: Byte;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   355
                end;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   356
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   357
{$IFNDEF SDL13}
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   358
     TSDL_ResizeEvent = record
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   359
		type_: Byte;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   360
		w, h: LongInt;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   361
		end;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   362
{$ENDIF}
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   363
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   364
	PSDL_Event = ^TSDL_Event;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   365
	TSDL_Event = record
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   366
                  case Byte of
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   367
	SDL_NOEVENT: (type_: byte);
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   368
{$IFDEF SDL13}
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   369
	SDL_WINDOWEVENT: (active: TSDL_WindowEvent);
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   370
	SDL_KEYDOWN,
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   371
        SDL_KEYUP: (key: TSDL_KeyboardEvent);
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   372
	SDL_TEXTEDITING,
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   373
	SDL_TEXTINPUT: (txtin: byte);
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   374
	SDL_MOUSEMOTION: (motion: TSDL_MouseMotionEvent);
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   375
	SDL_MOUSEBUTTONDOWN,
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   376
	SDL_MOUSEBUTTONUP: (button: TSDL_MouseButtonEvent);
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   377
        SDL_MOUSEWHEEL: (wheel: TSDL_MouseWheelEvent);
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   378
	SDL_JOYAXISMOTION: (jaxis: TSDL_JoyAxisEvent);
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   379
	SDL_JOYHATMOTION: (jhat: TSDL_JoyHatEvent);
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   380
	SDL_JOYBALLMOTION: (jball: TSDL_JoyBallEvent);
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   381
	SDL_JOYBUTTONDOWN,
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   382
	SDL_JOYBUTTONUP: (jbutton: TSDL_JoyButtonEvent);
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   383
	SDL_QUITEV: (quit: TSDL_QuitEvent);
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   384
{$ELSE}
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   385
        SDL_ACTIVEEVENT: (active: TSDL_ActiveEvent);
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   386
	SDL_KEYDOWN,
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   387
        SDL_KEYUP: (key: TSDL_KeyboardEvent);
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   388
	SDL_MOUSEMOTION: (motion: TSDL_MouseMotionEvent);
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   389
	SDL_MOUSEBUTTONDOWN,
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   390
	SDL_MOUSEBUTTONUP: (button: TSDL_MouseButtonEvent);
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   391
	SDL_JOYAXISMOTION: (jaxis: TSDL_JoyAxisEvent);
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   392
	SDL_JOYHATMOTION: (jhat: TSDL_JoyHatEvent);
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   393
	SDL_JOYBALLMOTION: (jball: TSDL_JoyBallEvent);
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   394
	SDL_JOYBUTTONDOWN,
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   395
	SDL_JOYBUTTONUP: (jbutton: TSDL_JoyButtonEvent);
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   396
	SDL_QUITEV: (quit: TSDL_QuitEvent);
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   397
	//SDL_SYSWMEVENT,SDL_EVENT_RESERVEDA,SDL_EVENT_RESERVEDB
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   398
	//SDL_VIDEORESIZE: (resize: TSDL_ResizeEvent);
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   399
{$ENDIF}
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   400
		end;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   401
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   402
     PByteArray = ^TByteArray;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   403
     TByteArray = array[0..65535] of Byte;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   404
     PLongWordArray = ^TLongWordArray;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   405
     TLongWordArray = array[0..16383] of LongWord;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   406
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   407
     PSDL_Thread = Pointer;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   408
     PSDL_mutex = Pointer;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   409
2379
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   410
	TSDL_GLattr = (
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   411
		SDL_GL_RED_SIZE,
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   412
		SDL_GL_GREEN_SIZE,
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   413
		SDL_GL_BLUE_SIZE,
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   414
		SDL_GL_ALPHA_SIZE,
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   415
		SDL_GL_BUFFER_SIZE,
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   416
		SDL_GL_DOUBLEBUFFER,
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   417
		SDL_GL_DEPTH_SIZE,
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   418
		SDL_GL_STENCIL_SIZE,
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   419
		SDL_GL_ACCUM_RED_SIZE,
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   420
		SDL_GL_ACCUM_GREEN_SIZE,
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   421
		SDL_GL_ACCUM_BLUE_SIZE,
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   422
		SDL_GL_ACCUM_ALPHA_SIZE,
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   423
		SDL_GL_STEREO,
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   424
		SDL_GL_MULTISAMPLEBUFFERS,
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   425
		SDL_GL_MULTISAMPLESAMPLES,
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   426
		SDL_GL_ACCELERATED_VISUAL,
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   427
		SDL_GL_RETAINED_BACKING,
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   428
		SDL_GL_CONTEXT_MAJOR_VERSION,
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   429
		SDL_GL_CONTEXT_MINOR_VERSION
d62b1f224982 - Implement zoom reset
unc0rr
parents: 2376
diff changeset
   430
		);
2376
ece7b87f1334 Strip trailing spaces
nemo
parents: 2254
diff changeset
   431
2252
03fd99dff989 accessory stuff for iphone
koda
parents: 2251
diff changeset
   432
{$IFDEF SDL13}
2586
204e6b2885bc added little/big endian checks, added symbol for touch input, simplified iphoneos definitions
koda
parents: 2579
diff changeset
   433
	TSDL_ArrayByteOrder = (  // array component order, low byte -> high byte 
204e6b2885bc added little/big endian checks, added symbol for touch input, simplified iphoneos definitions
koda
parents: 2579
diff changeset
   434
		SDL_ARRAYORDER_NONE,
204e6b2885bc added little/big endian checks, added symbol for touch input, simplified iphoneos definitions
koda
parents: 2579
diff changeset
   435
		SDL_ARRAYORDER_RGB,
204e6b2885bc added little/big endian checks, added symbol for touch input, simplified iphoneos definitions
koda
parents: 2579
diff changeset
   436
		SDL_ARRAYORDER_RGBA,
204e6b2885bc added little/big endian checks, added symbol for touch input, simplified iphoneos definitions
koda
parents: 2579
diff changeset
   437
		SDL_ARRAYORDER_ARGB,
204e6b2885bc added little/big endian checks, added symbol for touch input, simplified iphoneos definitions
koda
parents: 2579
diff changeset
   438
		SDL_ARRAYORDER_BGR,
204e6b2885bc added little/big endian checks, added symbol for touch input, simplified iphoneos definitions
koda
parents: 2579
diff changeset
   439
		SDL_ARRAYORDER_BGRA,
204e6b2885bc added little/big endian checks, added symbol for touch input, simplified iphoneos definitions
koda
parents: 2579
diff changeset
   440
		SDL_ARRAYORDER_ABGR
204e6b2885bc added little/big endian checks, added symbol for touch input, simplified iphoneos definitions
koda
parents: 2579
diff changeset
   441
		);
2252
03fd99dff989 accessory stuff for iphone
koda
parents: 2251
diff changeset
   442
{$ENDIF}
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   443
432
b0f693024b50 Delphi mode off
unc0rr
parents: 377
diff changeset
   444
function  SDL_Init(flags: Longword): LongInt; cdecl; external SDLLibName;
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   445
procedure SDL_Quit; cdecl; external SDLLibName;
432
b0f693024b50 Delphi mode off
unc0rr
parents: 377
diff changeset
   446
function  SDL_VideoDriverName(var namebuf; maxlen: LongInt): PChar; cdecl; external SDLLibName;
b0f693024b50 Delphi mode off
unc0rr
parents: 377
diff changeset
   447
procedure SDL_EnableUNICODE(enable: LongInt); cdecl; external SDLLibName;
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   448
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   449
procedure SDL_Delay(msec: Longword); cdecl; external SDLLibName;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   450
function  SDL_GetTicks: Longword; cdecl; external SDLLibName;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   451
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   452
function  SDL_MustLock(Surface: PSDL_Surface): Boolean;
432
b0f693024b50 Delphi mode off
unc0rr
parents: 377
diff changeset
   453
function  SDL_LockSurface(Surface: PSDL_Surface): LongInt; cdecl; external SDLLibName;
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   454
procedure SDL_UnlockSurface(Surface: PSDL_Surface); cdecl; external SDLLibName;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   455
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   456
function  SDL_GetError: PChar; cdecl; external SDLLibName;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   457
432
b0f693024b50 Delphi mode off
unc0rr
parents: 377
diff changeset
   458
function  SDL_SetVideoMode(width, height, bpp: LongInt; flags: Longword): PSDL_Surface; cdecl; external SDLLibName;
b0f693024b50 Delphi mode off
unc0rr
parents: 377
diff changeset
   459
function  SDL_CreateRGBSurface(flags: Longword; Width, Height, Depth: LongInt; RMask, GMask, BMask, AMask: Longword): PSDL_Surface; cdecl; external SDLLibName;
b0f693024b50 Delphi mode off
unc0rr
parents: 377
diff changeset
   460
function  SDL_CreateRGBSurfaceFrom(pixels: Pointer; width, height, depth, pitch: LongInt; RMask, GMask, BMask, AMask: Longword): PSDL_Surface; cdecl; external SDLLibName;
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   461
procedure SDL_FreeSurface(Surface: PSDL_Surface); cdecl; external SDLLibName;
105
e7cb9bb4a9de - Fixed integer->longint
unc0rr
parents: 95
diff changeset
   462
function  SDL_SetColorKey(surface: PSDL_Surface; flag, key: Longword): LongInt; cdecl; external SDLLibName;
2017
7845c77c8d31 nemo's great patch:
unc0rr
parents: 1997
diff changeset
   463
function  SDL_SetAlpha(surface: PSDL_Surface; flag, key: Longword): LongInt; cdecl; external SDLLibName;
2248
26e11cb27c61 real fix for iphone color (reverting previous commit)
koda
parents: 2242
diff changeset
   464
function  SDL_ConvertSurface(src: PSDL_Surface; fmt: PSDL_PixelFormat; flags: LongInt): PSDL_Surface; cdecl; external SDLLibName;
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   465
105
e7cb9bb4a9de - Fixed integer->longint
unc0rr
parents: 95
diff changeset
   466
function  SDL_UpperBlit(src: PSDL_Surface; srcrect: PSDL_Rect; dst: PSDL_Surface; dstrect: PSDL_Rect): LongInt; cdecl; external SDLLibName;
e7cb9bb4a9de - Fixed integer->longint
unc0rr
parents: 95
diff changeset
   467
function  SDL_FillRect(dst: PSDL_Surface; dstrect: PSDL_Rect; color: Longword): LongInt; cdecl; external SDLLibName;
e7cb9bb4a9de - Fixed integer->longint
unc0rr
parents: 95
diff changeset
   468
procedure SDL_UpdateRect(Screen: PSDL_Surface; x, y: LongInt; w, h: Longword); cdecl; external SDLLibName;
432
b0f693024b50 Delphi mode off
unc0rr
parents: 377
diff changeset
   469
function  SDL_Flip(Screen: PSDL_Surface): LongInt; cdecl; external SDLLibName;
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   470
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   471
procedure SDL_GetRGB(pixel: Longword; fmt: PSDL_PixelFormat; r, g, b: PByte); cdecl; external SDLLibName;
107
b08ce0293a51 - Many type fixes
unc0rr
parents: 106
diff changeset
   472
function  SDL_MapRGB(format: PSDL_PixelFormat; r, g, b: Byte): Longword; cdecl; external SDLLibName;
2575
d06e0e829828 update color management for new sdl_image on mac
koda
parents: 2567
diff changeset
   473
function  SDL_MapRGBA(format: PSDL_PixelFormat; r, g, b, a: Byte): Longword; cdecl; external SDLLibName;
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   474
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   475
function  SDL_DisplayFormat(Surface: PSDL_Surface): PSDL_Surface; cdecl; external SDLLibName;
35
9367f246fb5f - New rope
unc0rr
parents: 11
diff changeset
   476
function  SDL_DisplayFormatAlpha(Surface: PSDL_Surface): PSDL_Surface; cdecl; external SDLLibName;
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   477
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   478
function  SDL_RWFromFile(filename, mode: PChar): PSDL_RWops; cdecl; external SDLLibName;
432
b0f693024b50 Delphi mode off
unc0rr
parents: 377
diff changeset
   479
function  SDL_SaveBMP_RW(surface: PSDL_Surface; dst: PSDL_RWops; freedst: LongInt): LongInt; cdecl; external SDLLibName;
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   480
2152
a2811690da1b Patch by koda:
unc0rr
parents: 2017
diff changeset
   481
{$IFDEF SDL13}
a2811690da1b Patch by koda:
unc0rr
parents: 2017
diff changeset
   482
function  SDL_GetKeyboardState(numkeys: PLongInt): PByteArray; cdecl; external SDLLibName;
2242
2e8251933b71 initial support for touch input
koda
parents: 2241
diff changeset
   483
function  SDL_GetMouseState(index: LongInt; x, y: PLongInt): Byte; cdecl; external SDLLibName;
2e8251933b71 initial support for touch input
koda
parents: 2241
diff changeset
   484
function  SDL_SelectMouse(index: LongInt): LongInt; cdecl; external SDLLibName;
2e8251933b71 initial support for touch input
koda
parents: 2241
diff changeset
   485
function  SDL_GetRelativeMouseState(index: LongInt; x, y: PLongInt): Byte; cdecl; external SDLLibName;
2579
e5e4ebf528b5 more updates on touch input/control
koda
parents: 2575
diff changeset
   486
function  SDL_GetNumMice: LongInt; cdecl; external SDLLibName;
2586
204e6b2885bc added little/big endian checks, added symbol for touch input, simplified iphoneos definitions
koda
parents: 2579
diff changeset
   487
function  SDL_PixelFormatEnumToMasks(format: TSDL_ArrayByteOrder; bpp: PLongInt; Rmask, Gmask, Bmask, Amask: PLongInt): boolean; cdecl; external SDLLibName;
2152
a2811690da1b Patch by koda:
unc0rr
parents: 2017
diff changeset
   488
{$ELSE}
105
e7cb9bb4a9de - Fixed integer->longint
unc0rr
parents: 95
diff changeset
   489
function  SDL_GetKeyState(numkeys: PLongInt): PByteArray; cdecl; external SDLLibName;
2242
2e8251933b71 initial support for touch input
koda
parents: 2241
diff changeset
   490
function  SDL_GetMouseState(x, y: PLongInt): Byte; cdecl; external SDLLibName;
2152
a2811690da1b Patch by koda:
unc0rr
parents: 2017
diff changeset
   491
{$ENDIF}
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   492
function  SDL_GetKeyName(key: Longword): PChar; cdecl; external SDLLibName;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   493
procedure SDL_WarpMouse(x, y: Word); cdecl; external SDLLibName;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   494
2428
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2390
diff changeset
   495
procedure SDL_PumpEvents; cdecl; external SDLLibName;
432
b0f693024b50 Delphi mode off
unc0rr
parents: 377
diff changeset
   496
function  SDL_PollEvent(event: PSDL_Event): LongInt; cdecl; external SDLLibName;
2590
e7e87e3c67db touch control completely revamped
koda
parents: 2586
diff changeset
   497
function  SDL_WaitEvent(event: PSDL_Event): LongInt; cdecl; external SDLLibName;
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   498
432
b0f693024b50 Delphi mode off
unc0rr
parents: 377
diff changeset
   499
function  SDL_ShowCursor(toggle: LongInt): LongInt; cdecl; external SDLLibName;
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   500
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   501
procedure SDL_WM_SetCaption(title: PChar; icon: PChar); cdecl; external SDLLibName;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   502
433
9f8f22094c0e AI thinks in separate thread
unc0rr
parents: 432
diff changeset
   503
function  SDL_CreateMutex: PSDL_mutex; cdecl; external SDLLibName;
9f8f22094c0e AI thinks in separate thread
unc0rr
parents: 432
diff changeset
   504
procedure SDL_DestroyMutex(mutex: PSDL_mutex); cdecl; external SDLLibName;
9f8f22094c0e AI thinks in separate thread
unc0rr
parents: 432
diff changeset
   505
function  SDL_LockMutex(mutex: PSDL_mutex): LongInt; cdecl; external SDLLibName name 'SDL_mutexP';
9f8f22094c0e AI thinks in separate thread
unc0rr
parents: 432
diff changeset
   506
function  SDL_UnlockMutex(mutex: PSDL_mutex): LongInt; cdecl; external SDLLibName name 'SDL_mutexV';
9f8f22094c0e AI thinks in separate thread
unc0rr
parents: 432
diff changeset
   507
2252
03fd99dff989 accessory stuff for iphone
koda
parents: 2251
diff changeset
   508
function  SDL_GL_SetAttribute(attr: TSDL_GLattr; value: LongInt): LongInt; cdecl; external SDLLibName;
753
40fc0deb388f Start conversion to OpenGL rendering
unc0rr
parents: 500
diff changeset
   509
procedure SDL_GL_SwapBuffers(); cdecl; external SDLLibName;
40fc0deb388f Start conversion to OpenGL rendering
unc0rr
parents: 500
diff changeset
   510
2254
bb68e5a5be56 -fix bamboo theme (unsupported color profile)
koda
parents: 2253
diff changeset
   511
{$IFDEF SDL13}
bb68e5a5be56 -fix bamboo theme (unsupported color profile)
koda
parents: 2253
diff changeset
   512
{$IFDEF IPHONEOS}
bb68e5a5be56 -fix bamboo theme (unsupported color profile)
koda
parents: 2253
diff changeset
   513
function  SDL_iPhoneKeyboardShow(windowID: LongInt): LongInt; cdecl; external SDLLibName;
bb68e5a5be56 -fix bamboo theme (unsupported color profile)
koda
parents: 2253
diff changeset
   514
function  SDL_iPhoneKeyboardHide(windowID: LongInt): LongInt; cdecl; external SDLLibName;
bb68e5a5be56 -fix bamboo theme (unsupported color profile)
koda
parents: 2253
diff changeset
   515
function  SDL_iPhoneKeyboardIsShown(windowID: LongInt): boolean; cdecl; external SDLLibName;
bb68e5a5be56 -fix bamboo theme (unsupported color profile)
koda
parents: 2253
diff changeset
   516
function  SDL_iPhoneKeyboardToggle(windowID: LongInt): LongInt; cdecl; external SDLLibName;
bb68e5a5be56 -fix bamboo theme (unsupported color profile)
koda
parents: 2253
diff changeset
   517
{$ENDIF}
bb68e5a5be56 -fix bamboo theme (unsupported color profile)
koda
parents: 2253
diff changeset
   518
{$ENDIF}
bb68e5a5be56 -fix bamboo theme (unsupported color profile)
koda
parents: 2253
diff changeset
   519
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   520
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   521
2428
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2390
diff changeset
   522
// Joystick/Controller support
2591
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   523
type PSDL_Joystick = ^TSDL_Joystick;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   524
     TSDL_Joystick = record
2428
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2390
diff changeset
   525
	                end;
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2390
diff changeset
   526
2591
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   527
const	SDL_HAT_CENTERED  = $00;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   528
	SDL_HAT_UP        = $01;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   529
	SDL_HAT_RIGHT     = $02;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   530
	SDL_HAT_DOWN      = $04;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   531
	SDL_HAT_LEFT      = $08;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   532
	SDL_HAT_RIGHTUP   = SDL_HAT_RIGHT or SDL_HAT_UP;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   533
	SDL_HAT_RIGHTDOWN = SDL_HAT_RIGHT or SDL_HAT_DOWN;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   534
	SDL_HAT_LEFTUP    = SDL_HAT_LEFT or SDL_HAT_UP;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   535
	SDL_HAT_LEFTDOWN  = SDL_HAT_LEFT or SDL_HAT_DOWN;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   536
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   537
function  SDL_NumJoysticks: LongInt; cdecl; external SDLLibName;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   538
function  SDL_JoystickName(idx: LongInt): PChar; cdecl; external SDLLibName;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   539
function  SDL_JoystickOpen(idx: LongInt): PSDL_Joystick; cdecl; external SDLLibName;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   540
function  SDL_JoystickOpened(idx: LongInt): LongInt; cdecl; external SDLLibName;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   541
function  SDL_JoystickIndex(joy: PSDL_Joystick): LongInt; cdecl; external SDLLibName;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   542
function  SDL_JoystickNumAxes(joy: PSDL_Joystick): LongInt; cdecl; external SDLLibName;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   543
function  SDL_JoystickNumBalls(joy: PSDL_Joystick): LongInt; cdecl; external SDLLibName;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   544
function  SDL_JoystickNumHats(joy: PSDL_Joystick): LongInt; cdecl; external SDLLibName;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   545
function  SDL_JoystickNumButtons(joy: PSDL_Joystick): LongInt; cdecl; external SDLLibName;
2428
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2390
diff changeset
   546
procedure SDL_JoystickUpdate; cdecl; external SDLLibName;
2591
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   547
function  SDL_JoystickEventState(state: LongInt): LongInt; cdecl; external SDLLibName;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   548
function  SDL_JoystickGetAxis(joy: PSDL_Joystick; axis: LongInt): LongInt; cdecl; external SDLLibName;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   549
function  SDL_JoystickGetBall(joy: PSDL_Joystick; ball: LongInt; dx: PInteger; dy: PInteger): Word; cdecl; external SDLLibName;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   550
function  SDL_JoystickGetHat(joy: PSDL_Joystick; hat: LongInt): Byte; cdecl; external SDLLibName;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   551
function  SDL_JoystickGetButton(joy: PSDL_Joystick; button: LongInt): Byte; cdecl; external SDLLibName;
c6597b65caea other controls implementation + sdlh revisited (once again)
koda
parents: 2590
diff changeset
   552
procedure SDL_JoystickClose(joy: PSDL_Joystick); cdecl; external SDLLibName;
2428
6800f8aa0184 Huge Smaxx patch with some fixes by me:
unc0rr
parents: 2390
diff changeset
   553
2515
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   554
(*  TTF  *)
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   555
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   556
const {$IFDEF WIN32}
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   557
      SDL_TTFLibName = 'SDL_ttf.dll';
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   558
      {$ENDIF}
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   559
      {$IFDEF UNIX}
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   560
	{$IFDEF DARWIN}
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   561
	  SDL_TTFLibName = 'SDL_ttf';
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   562
	{$ELSE}
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   563
          SDL_TTFLibName = 'libSDL_ttf.so';
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   564
        {$ENDIF}
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   565
      {$ENDIF}
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   566
      TTF_STYLE_NORMAL = 0;
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   567
      TTF_STYLE_BOLD   = 1;
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   568
      TTF_STYLE_ITALIC = 2;
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   569
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   570
type PTTF_Font = ^TTTF_font;
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   571
     TTTF_Font = record
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   572
                 end;
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   573
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   574
function TTF_Init: LongInt; cdecl; external SDL_TTFLibName;
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   575
procedure TTF_Quit; cdecl; external SDL_TTFLibName;
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   576
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   577
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   578
function TTF_SizeUTF8(font: PTTF_Font; const text: PChar; var w, h: LongInt): LongInt; cdecl; external SDL_TTFLibName;
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   579
(* TSDL_Color -> Longword conversion is workaround over freepascal bug.
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   580
   See http://www.freepascal.org/mantis/view.php?id=7613 for details *)
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   581
function TTF_RenderUTF8_Solid(font: PTTF_Font; const text: PChar; fg: Longword): PSDL_Surface; cdecl; external SDL_TTFLibName;
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   582
function TTF_RenderUTF8_Blended(font: PTTF_Font; const text: PChar; fg: Longword): PSDL_Surface; cdecl; external SDL_TTFLibName;
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   583
function TTF_RenderUTF8_Shaded(font: PTTF_Font; const text: PChar; fg, bg: Longword): PSDL_Surface; cdecl; external SDL_TTFLibName;
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   584
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   585
function TTF_OpenFont(const filename: PChar; size: LongInt): PTTF_Font; cdecl; external SDL_TTFLibName;
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   586
procedure TTF_SetFontStyle(font: PTTF_Font; style: LongInt); cdecl; external SDL_TTFLibName;
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   587
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   588
(*  SDL_mixer  *)
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   589
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   590
const {$IFDEF WIN32}
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   591
      SDL_MixerLibName = 'SDL_mixer.dll';
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   592
      {$ENDIF}
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   593
      {$IFDEF UNIX}
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   594
	{$IFDEF DARWIN}
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   595
	  SDL_MixerLibName = 'SDL_mixer';
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   596
	{$ELSE}
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   597
          SDL_MixerLibName = 'libSDL_mixer.so';
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   598
	{$ENDIF}
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   599
      {$ENDIF}
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   600
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   601
const MIX_MAX_VOLUME = 128;
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   602
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   603
type PMixChunk = ^TMixChunk;
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   604
     TMixChunk = record
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   605
                 allocated: Longword;
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   606
                 abuf     : PByte;
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   607
                 alen     : Longword;
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   608
                 volume   : PByte;
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   609
                 end;
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   610
     TMusic = (MUS_CMD, MUS_WAV, MUS_MOD, MUS_MID, MUS_OGG, MUS_MP3);
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   611
     TMix_Fading = (MIX_NO_FADING, MIX_FADING_OUT, MIX_FADING_IN);
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   612
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   613
     TMidiSong = record
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   614
               samples : LongInt;
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   615
               events  : pointer;
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   616
               end;
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   617
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   618
     TMusicUnion = record
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   619
        case Byte of
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   620
             0: ( midi : TMidiSong );
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   621
             1: ( ogg  : pointer);
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   622
             end;
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   623
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   624
     PMixMusic = ^TMixMusic;
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   625
     TMixMusic = record
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   626
                 end;
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   627
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   628
function  Mix_OpenAudio(frequency: LongInt; format: Word; channels: LongInt; chunksize: LongInt): LongInt; cdecl; external SDL_MixerLibName;
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   629
procedure Mix_CloseAudio; cdecl; external SDL_MixerLibName;
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   630
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   631
function  Mix_Volume(channel: LongInt; volume: LongInt): LongInt; cdecl; external SDL_MixerLibName;
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   632
function  Mix_SetDistance(channel: LongInt; distance: Byte): LongInt;  cdecl; external SDL_MixerLibName;
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   633
function  Mix_VolumeMusic(volume: LongInt): LongInt; cdecl; external SDL_MixerLibName;
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   634
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   635
function  Mix_AllocateChannels(numchans: LongInt): LongInt; cdecl; external SDL_MixerLibName;
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   636
procedure Mix_FreeChunk(chunk: PMixChunk); cdecl; external SDL_MixerLibName;
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   637
procedure Mix_FreeMusic(music: PMixMusic); cdecl; external SDL_MixerLibName;
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   638
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   639
function  Mix_LoadWAV_RW(src: PSDL_RWops; freesrc: LongInt): PMixChunk; cdecl; external SDL_MixerLibName;
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   640
function  Mix_LoadMUS(const filename: PChar): PMixMusic; cdecl; external SDL_MixerLibName;
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   641
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   642
function  Mix_Playing(channel: LongInt): LongInt; cdecl; external SDL_MixerLibName;
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   643
function  Mix_PlayingMusic: LongInt; cdecl; external SDL_MixerLibName;
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   644
function  Mix_FadeInMusic(music: PMixMusic; loops: LongInt; ms: LongInt): LongInt; cdecl; external SDL_MixerLibName;
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   645
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   646
function  Mix_PlayChannelTimed(channel: LongInt; chunk: PMixChunk; loops: LongInt; ticks: LongInt): LongInt; cdecl; external SDL_MixerLibName;
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   647
function  Mix_PlayMusic(music: PMixMusic; loops: LongInt): LongInt; cdecl; external SDL_MixerLibName;
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   648
function  Mix_PausedMusic(music: PMixMusic): LongInt; cdecl; external SDL_MixerLibName;
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   649
function  Mix_PauseMusic(music: PMixMusic): LongInt; cdecl; external SDL_MixerLibName;
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   650
function  Mix_ResumeMusic(music: PMixMusic): LongInt; cdecl; external SDL_MixerLibName;
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   651
function  Mix_HaltChannel(channel: LongInt): LongInt; cdecl; external SDL_MixerLibName;
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   652
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   653
(*  SDL_image  *)
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   654
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   655
const {$IFDEF WIN32}
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   656
      SDL_ImageLibName = 'SDL_image.dll';
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   657
      {$ENDIF}
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   658
      {$IFDEF UNIX}
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   659
	{$IFDEF DARWIN}
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   660
	  SDL_ImageLibName = 'SDL_image';
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   661
	{$ELSE}
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   662
           SDL_ImageLibName = 'libSDL_image.so';
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   663
	{$ENDIF}
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   664
      {$ENDIF}
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   665
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   666
function IMG_Load(const _file: PChar): PSDL_Surface; cdecl; external SDL_ImageLibName;
2575
d06e0e829828 update color management for new sdl_image on mac
koda
parents: 2567
diff changeset
   667
function IMG_LoadPNG_RW(rwop: PSDL_RWops): PSDL_Surface; cdecl; external SDL_ImageLibName;
2592
d86618629e20 fix missing land on ppc
koda
parents: 2591
diff changeset
   668
2515
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   669
(*  SDL_net  *)
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   670
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   671
const {$IFDEF WIN32}
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   672
      SDL_NetLibName = 'SDL_net.dll';
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   673
      {$ENDIF}
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   674
      {$IFDEF UNIX}
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   675
	{$IFDEF DARWIN}
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   676
	  SDL_NetLibName = 'SDL_net';
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   677
	{$ELSE}
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   678
          SDL_NetLibName = 'libSDL_net.so';
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   679
	{$ENDIF}
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   680
      {$ENDIF}
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   681
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   682
type TIPAddress = record
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   683
                  host: Longword;
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   684
                  port: Word;
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   685
                  end;
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   686
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   687
     PTCPSocket = ^TTCPSocket;
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   688
     TTCPSocket = record
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   689
                  ready: LongInt;
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   690
                  channel: LongInt;
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   691
                  remoteAddress: TIPaddress;
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   692
                  localAddress: TIPaddress;
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   693
                  sflag: LongInt;
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   694
                  end;
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   695
     PSDLNet_SocketSet = ^TSDLNet_SocketSet;
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   696
     TSDLNet_SocketSet = record
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   697
                         numsockets,
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   698
                         maxsockets: LongInt;
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   699
                         sockets: PTCPSocket;
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   700
                         end;
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   701
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   702
function SDLNet_Init: LongInt; cdecl; external SDL_NetLibName;
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   703
procedure SDLNet_Quit; cdecl; external SDL_NetLibName;
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   704
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   705
function SDLNet_AllocSocketSet(maxsockets: LongInt): PSDLNet_SocketSet; cdecl; external SDL_NetLibName;
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   706
function SDLNet_ResolveHost(var address: TIPaddress; host: PCHar; port: Word): LongInt; cdecl; external SDL_NetLibName;
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   707
function SDLNet_TCP_Accept(server: PTCPsocket): PTCPSocket; cdecl; external SDL_NetLibName;
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   708
function SDLNet_TCP_Open(var ip: TIPaddress): PTCPSocket; cdecl; external SDL_NetLibName;
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   709
function SDLNet_TCP_Send(sock: PTCPsocket; data: Pointer; len: LongInt): LongInt; cdecl; external SDL_NetLibName;
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   710
function SDLNet_TCP_Recv(sock: PTCPsocket; data: Pointer; len: LongInt): LongInt; cdecl; external SDL_NetLibName;
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   711
procedure SDLNet_TCP_Close(sock: PTCPsocket); cdecl; external SDL_NetLibName;
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   712
procedure SDLNet_FreeSocketSet(_set: PSDLNet_SocketSet); cdecl; external SDL_NetLibName;
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   713
function SDLNet_AddSocket(_set: PSDLNet_SocketSet; sock: PTCPSocket): LongInt; cdecl; external SDL_NetLibName;
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   714
function SDLNet_CheckSockets(_set: PSDLNet_SocketSet; timeout: LongInt): LongInt; cdecl; external SDL_NetLibName;
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   715
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   716
procedure SDLNet_Write16(value: Word; buf: pointer);
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   717
procedure SDLNet_Write32(value: LongWord; buf: pointer);
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   718
function SDLNet_Read16(buf: pointer): Word;
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   719
function SDLNet_Read32(buf: pointer): LongWord;
51d3f4b6293a revert audio to use SDL_mixer -- also frontend uses it, so it needs sdlmixer sources
koda
parents: 2477
diff changeset
   720
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   721
implementation
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   722
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   723
function SDL_MustLock(Surface: PSDL_Surface): Boolean;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   724
begin
432
b0f693024b50 Delphi mode off
unc0rr
parents: 377
diff changeset
   725
SDL_MustLock:= ( surface^.offset <> 0 )
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   726
       or(( surface^.flags and (SDL_HWSURFACE or SDL_ASYNCBLIT or SDL_RLEACCEL)) <> 0)
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   727
end;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   728
459
95163c6efa69 Do not use SDL_Net's to/from network byte order conversion functions
unc0rr
parents: 433
diff changeset
   729
procedure SDLNet_Write16(value: Word; buf: pointer);
95163c6efa69 Do not use SDL_Net's to/from network byte order conversion functions
unc0rr
parents: 433
diff changeset
   730
begin
95163c6efa69 Do not use SDL_Net's to/from network byte order conversion functions
unc0rr
parents: 433
diff changeset
   731
  PByteArray(buf)^[1]:= value;
95163c6efa69 Do not use SDL_Net's to/from network byte order conversion functions
unc0rr
parents: 433
diff changeset
   732
  PByteArray(buf)^[0]:= value shr 8
95163c6efa69 Do not use SDL_Net's to/from network byte order conversion functions
unc0rr
parents: 433
diff changeset
   733
end;
95163c6efa69 Do not use SDL_Net's to/from network byte order conversion functions
unc0rr
parents: 433
diff changeset
   734
95163c6efa69 Do not use SDL_Net's to/from network byte order conversion functions
unc0rr
parents: 433
diff changeset
   735
procedure SDLNet_Write32(value: LongWord; buf: pointer);
95163c6efa69 Do not use SDL_Net's to/from network byte order conversion functions
unc0rr
parents: 433
diff changeset
   736
begin
95163c6efa69 Do not use SDL_Net's to/from network byte order conversion functions
unc0rr
parents: 433
diff changeset
   737
  PByteArray(buf)^[3]:= value;
95163c6efa69 Do not use SDL_Net's to/from network byte order conversion functions
unc0rr
parents: 433
diff changeset
   738
  PByteArray(buf)^[2]:= value shr  8;
95163c6efa69 Do not use SDL_Net's to/from network byte order conversion functions
unc0rr
parents: 433
diff changeset
   739
  PByteArray(buf)^[1]:= value shr 16;
95163c6efa69 Do not use SDL_Net's to/from network byte order conversion functions
unc0rr
parents: 433
diff changeset
   740
  PByteArray(buf)^[0]:= value shr 24
95163c6efa69 Do not use SDL_Net's to/from network byte order conversion functions
unc0rr
parents: 433
diff changeset
   741
end;
95163c6efa69 Do not use SDL_Net's to/from network byte order conversion functions
unc0rr
parents: 433
diff changeset
   742
95163c6efa69 Do not use SDL_Net's to/from network byte order conversion functions
unc0rr
parents: 433
diff changeset
   743
function SDLNet_Read16(buf: pointer): Word;
95163c6efa69 Do not use SDL_Net's to/from network byte order conversion functions
unc0rr
parents: 433
diff changeset
   744
begin
95163c6efa69 Do not use SDL_Net's to/from network byte order conversion functions
unc0rr
parents: 433
diff changeset
   745
  SDLNet_Read16:= PByteArray(buf)^[1] or
95163c6efa69 Do not use SDL_Net's to/from network byte order conversion functions
unc0rr
parents: 433
diff changeset
   746
                 (PByteArray(buf)^[0] shl 8)
95163c6efa69 Do not use SDL_Net's to/from network byte order conversion functions
unc0rr
parents: 433
diff changeset
   747
end;
95163c6efa69 Do not use SDL_Net's to/from network byte order conversion functions
unc0rr
parents: 433
diff changeset
   748
95163c6efa69 Do not use SDL_Net's to/from network byte order conversion functions
unc0rr
parents: 433
diff changeset
   749
function SDLNet_Read32(buf: pointer): LongWord;
95163c6efa69 Do not use SDL_Net's to/from network byte order conversion functions
unc0rr
parents: 433
diff changeset
   750
begin
95163c6efa69 Do not use SDL_Net's to/from network byte order conversion functions
unc0rr
parents: 433
diff changeset
   751
  SDLNet_Read32:=  PByteArray(buf)^[3] or
95163c6efa69 Do not use SDL_Net's to/from network byte order conversion functions
unc0rr
parents: 433
diff changeset
   752
                  (PByteArray(buf)^[2] shl  8) or
95163c6efa69 Do not use SDL_Net's to/from network byte order conversion functions
unc0rr
parents: 433
diff changeset
   753
                  (PByteArray(buf)^[1] shl 16) or
95163c6efa69 Do not use SDL_Net's to/from network byte order conversion functions
unc0rr
parents: 433
diff changeset
   754
                  (PByteArray(buf)^[0] shl 24)
95163c6efa69 Do not use SDL_Net's to/from network byte order conversion functions
unc0rr
parents: 433
diff changeset
   755
end;
95163c6efa69 Do not use SDL_Net's to/from network byte order conversion functions
unc0rr
parents: 433
diff changeset
   756
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   757
end.
2241
7992f7ba388d completes removal of wav files, updates SDLh and adds DEBUGFILE to hwengine when compiled in Debug mode
koda
parents: 2240
diff changeset
   758