hedgewars/SDLh.pas
author nemo
Tue, 08 Sep 2009 19:44:49 +0000
changeset 2357 babe1a55e284
parent 2254 bb68e5a5be56
child 2376 ece7b87f1334
permissions -rw-r--r--
Add an empty weapon to avoid selection of weapons which aren't yet ready. Might all be useful to switch to amNothing in certain situations, like after using up all ropes, instead of bazooka.
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
2241
7992f7ba388d completes removal of wav files, updates SDLh and adds DEBUGFILE to hwengine when compiled in Debug mode
koda
parents: 2240
diff changeset
    22
{$IFDEF LINUX or FREEBSD}
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
    23
{$DEFINE UNIX}
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
    24
{$ENDIF}
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
    25
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
    26
{$IFDEF UNIX}
1903
64e56f19d6d6 Patch by koda
unc0rr
parents: 1880
diff changeset
    27
  {$IFNDEF DARWIN}
1556
3369f016b79d Patch for engine to successfully build on Mac OS X by Michael Schindler
unc0rr
parents: 1225
diff changeset
    28
    {$linklib c}
3369f016b79d Patch for engine to successfully build on Mac OS X by Michael Schindler
unc0rr
parents: 1225
diff changeset
    29
  {$ENDIF}
3369f016b79d Patch for engine to successfully build on Mac OS X by Michael Schindler
unc0rr
parents: 1225
diff changeset
    30
  {$linklib pthread}
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
    31
{$ENDIF}
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
    32
432
b0f693024b50 Delphi mode off
unc0rr
parents: 377
diff changeset
    33
{$PACKRECORDS C}
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
    34
1819
17dac76954d1 Patch by koda to better support Mac OS X
unc0rr
parents: 1712
diff changeset
    35
{$IFDEF DARWIN}
2200
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents: 2191
diff changeset
    36
	{$PASCALMAINNAME SDL_main}
2152
a2811690da1b Patch by koda:
unc0rr
parents: 2017
diff changeset
    37
{$IFNDEF IPHONEOS}
2200
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents: 2191
diff changeset
    38
	{$linkframework Cocoa}
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents: 2191
diff changeset
    39
	{$linkframework SDL}
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents: 2191
diff changeset
    40
	{$linkframework SDL_net}
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents: 2191
diff changeset
    41
	{$linkframework SDL_image}
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents: 2191
diff changeset
    42
	{$linkframework SDL_ttf}
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents: 2191
diff changeset
    43
	{$linklib openalbridge}
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents: 2191
diff changeset
    44
	{$linklib SDLmain}
8192be6e3aef koda/Smaxx changes to openal for crossplatform building
nemo
parents: 2191
diff changeset
    45
	{$linklib gcc}
1819
17dac76954d1 Patch by koda to better support Mac OS X
unc0rr
parents: 1712
diff changeset
    46
{$ENDIF}
1916
9c3d0e3df6bb patch by koda:
unc0rr
parents: 1906
diff changeset
    47
{$ENDIF}
1819
17dac76954d1 Patch by koda to better support Mac OS X
unc0rr
parents: 1712
diff changeset
    48
1997
cd66434351cf koda's patch
unc0rr
parents: 1947
diff changeset
    49
(*  SDL  *)
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
    50
const {$IFDEF WIN32}
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
    51
      SDLLibName = 'SDL.dll';
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
    52
      {$ENDIF}
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
    53
      {$IFDEF UNIX}
2241
7992f7ba388d completes removal of wav files, updates SDLh and adds DEBUGFILE to hwengine when compiled in Debug mode
koda
parents: 2240
diff changeset
    54
            {$IFDEF DARWIN}
7992f7ba388d completes removal of wav files, updates SDLh and adds DEBUGFILE to hwengine when compiled in Debug mode
koda
parents: 2240
diff changeset
    55
            SDLLibName = 'SDL';
7992f7ba388d completes removal of wav files, updates SDLh and adds DEBUGFILE to hwengine when compiled in Debug mode
koda
parents: 2240
diff changeset
    56
            {$ELSE}
7992f7ba388d completes removal of wav files, updates SDLh and adds DEBUGFILE to hwengine when compiled in Debug mode
koda
parents: 2240
diff changeset
    57
            SDLLibName = 'libSDL.so';
7992f7ba388d completes removal of wav files, updates SDLh and adds DEBUGFILE to hwengine when compiled in Debug mode
koda
parents: 2240
diff changeset
    58
            {$ENDIF}
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
    59
      {$ENDIF}
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
    60
      SDL_SWSURFACE   = $00000000;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
    61
      SDL_HWSURFACE   = $00000001;
2240
7ce9e6b7be3b -Removal of older WAV files, now useless thanks to OpenAL
koda
parents: 2200
diff changeset
    62
      SDL_SRCALPHA    = $00010000;
7ce9e6b7be3b -Removal of older WAV files, now useless thanks to OpenAL
koda
parents: 2200
diff changeset
    63
      SDL_INIT_VIDEO  = $00000020;
7ce9e6b7be3b -Removal of older WAV files, now useless thanks to OpenAL
koda
parents: 2200
diff changeset
    64
      SDL_INIT_AUDIO  = $00000010;
7ce9e6b7be3b -Removal of older WAV files, now useless thanks to OpenAL
koda
parents: 2200
diff changeset
    65
2241
7992f7ba388d completes removal of wav files, updates SDLh and adds DEBUGFILE to hwengine when compiled in Debug mode
koda
parents: 2240
diff changeset
    66
{$IFDEF SDL13}
7992f7ba388d completes removal of wav files, updates SDLh and adds DEBUGFILE to hwengine when compiled in Debug mode
koda
parents: 2240
diff changeset
    67
      SDL_ASYNCBLIT   = $08000000;
7992f7ba388d completes removal of wav files, updates SDLh and adds DEBUGFILE to hwengine when compiled in Debug mode
koda
parents: 2240
diff changeset
    68
      SDL_ANYFORMAT   = $10000000;
2240
7ce9e6b7be3b -Removal of older WAV files, now useless thanks to OpenAL
koda
parents: 2200
diff changeset
    69
      SDL_HWPALETTE   = $00200000;
7ce9e6b7be3b -Removal of older WAV files, now useless thanks to OpenAL
koda
parents: 2200
diff changeset
    70
      SDL_DOUBLEBUF   = $00400000;
7ce9e6b7be3b -Removal of older WAV files, now useless thanks to OpenAL
koda
parents: 2200
diff changeset
    71
      SDL_FULLSCREEN  = $00800000;
7ce9e6b7be3b -Removal of older WAV files, now useless thanks to OpenAL
koda
parents: 2200
diff changeset
    72
      SDL_HWACCEL     = $08000000;
7ce9e6b7be3b -Removal of older WAV files, now useless thanks to OpenAL
koda
parents: 2200
diff changeset
    73
      SDL_SRCCOLORKEY = $00020000;
7ce9e6b7be3b -Removal of older WAV files, now useless thanks to OpenAL
koda
parents: 2200
diff changeset
    74
      SDL_RLEACCEL    = $08000000;
2241
7992f7ba388d completes removal of wav files, updates SDLh and adds DEBUGFILE to hwengine when compiled in Debug mode
koda
parents: 2240
diff changeset
    75
      SDL_NOFRAME     = $02000000;
7992f7ba388d completes removal of wav files, updates SDLh and adds DEBUGFILE to hwengine when compiled in Debug mode
koda
parents: 2240
diff changeset
    76
      SDL_OPENGL      = $04000000;
2240
7ce9e6b7be3b -Removal of older WAV files, now useless thanks to OpenAL
koda
parents: 2200
diff changeset
    77
      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
    78
{$ELSE}
7992f7ba388d completes removal of wav files, updates SDLh and adds DEBUGFILE to hwengine when compiled in Debug mode
koda
parents: 2240
diff changeset
    79
      SDL_ASYNCBLIT   = $00000004;
7992f7ba388d completes removal of wav files, updates SDLh and adds DEBUGFILE to hwengine when compiled in Debug mode
koda
parents: 2240
diff changeset
    80
      SDL_ANYFORMAT   = $00100000;
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
    81
      SDL_HWPALETTE   = $20000000;
358
236bbd12d4d9 - New Land Generator
unc0rr
parents: 351
diff changeset
    82
      SDL_DOUBLEBUF   = $40000000;
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
    83
      SDL_FULLSCREEN  = $80000000;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
    84
      SDL_HWACCEL     = $00000100;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
    85
      SDL_SRCCOLORKEY = $00001000;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
    86
      SDL_RLEACCEL    = $00004000;
2240
7ce9e6b7be3b -Removal of older WAV files, now useless thanks to OpenAL
koda
parents: 2200
diff changeset
    87
      SDL_NOFRAME     = $00000020;
2241
7992f7ba388d completes removal of wav files, updates SDLh and adds DEBUGFILE to hwengine when compiled in Debug mode
koda
parents: 2240
diff changeset
    88
      SDL_OPENGL      = $00000002;
2240
7ce9e6b7be3b -Removal of older WAV files, now useless thanks to OpenAL
koda
parents: 2200
diff changeset
    89
      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
    90
{$ENDIF}
945
4ead9cde4e14 - Start chat implementation: chat strings are on the screen
unc0rr
parents: 883
diff changeset
    91
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
    92
      SDL_NOEVENT     = 0;
308
806c3b55500d Release mouse when keyboard focus lost
unc0rr
parents: 206
diff changeset
    93
      SDL_ACTIVEEVENT = 1;
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
    94
      SDL_KEYDOWN     = 2;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
    95
      SDL_KEYUP       = 3;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
    96
      SDL_QUITEV      = 12;
1120
eb5a9f86f9c6 Add ability to resize engine's window
unc0rr
parents: 1066
diff changeset
    97
      SDL_VIDEORESIZE = 16;
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
    98
2242
2e8251933b71 initial support for touch input
koda
parents: 2241
diff changeset
    99
{$IFDEF SDL13}
2e8251933b71 initial support for touch input
koda
parents: 2241
diff changeset
   100
      SDL_MOUSEMOTION  = 5;
2e8251933b71 initial support for touch input
koda
parents: 2241
diff changeset
   101
{$ENDIF}
2e8251933b71 initial support for touch input
koda
parents: 2241
diff changeset
   102
308
806c3b55500d Release mouse when keyboard focus lost
unc0rr
parents: 206
diff changeset
   103
      SDL_APPINPUTFOCUS = 2;
753
40fc0deb388f Start conversion to OpenGL rendering
unc0rr
parents: 500
diff changeset
   104
2240
7ce9e6b7be3b -Removal of older WAV files, now useless thanks to OpenAL
koda
parents: 2200
diff changeset
   105
      RMask = $000000FF;
7ce9e6b7be3b -Removal of older WAV files, now useless thanks to OpenAL
koda
parents: 2200
diff changeset
   106
      GMask = $0000FF00;
7ce9e6b7be3b -Removal of older WAV files, now useless thanks to OpenAL
koda
parents: 2200
diff changeset
   107
      BMask = $00FF0000;
754
94ac14829085 Some further work on switching to OpenGL rendering
unc0rr
parents: 753
diff changeset
   108
      AMask = $FF000000;
94ac14829085 Some further work on switching to OpenGL rendering
unc0rr
parents: 753
diff changeset
   109
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   110
type PSDL_Rect = ^TSDL_Rect;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   111
     TSDL_Rect = record
2251
bf0b59d3536a fix a binding that was preveting to display anything else besides hogs on iphone
koda
parents: 2248
diff changeset
   112
		    {$IFDEF SDL13}
bf0b59d3536a fix a binding that was preveting to display anything else besides hogs on iphone
koda
parents: 2248
diff changeset
   113
                 x, y, w, h: LongInt;
bf0b59d3536a fix a binding that was preveting to display anything else besides hogs on iphone
koda
parents: 2248
diff changeset
   114
		    {$ELSE}
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   115
                 x, y: SmallInt;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   116
                 w, h: Word;
2251
bf0b59d3536a fix a binding that was preveting to display anything else besides hogs on iphone
koda
parents: 2248
diff changeset
   117
            {$ENDIF}
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   118
                 end;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   119
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   120
     TPoint = record
105
e7cb9bb4a9de - Fixed integer->longint
unc0rr
parents: 95
diff changeset
   121
              X: LongInt;
e7cb9bb4a9de - Fixed integer->longint
unc0rr
parents: 95
diff changeset
   122
              Y: LongInt;
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   123
              end;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   124
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   125
     PSDL_PixelFormat = ^TSDL_PixelFormat;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   126
     TSDL_PixelFormat = record
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   127
                        palette: Pointer;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   128
                        BitsPerPixel : Byte;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   129
                        BytesPerPixel: Byte;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   130
                        Rloss : Byte;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   131
                        Gloss : Byte;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   132
                        Bloss : Byte;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   133
                        Aloss : Byte;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   134
                        Rshift: Byte;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   135
                        Gshift: Byte;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   136
                        Bshift: Byte;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   137
                        Ashift: Byte;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   138
                        RMask : Longword;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   139
                        GMask : Longword;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   140
                        BMask : Longword;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   141
                        AMask : Longword;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   142
                        colorkey: Longword;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   143
                        alpha : Byte;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   144
                        end;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   145
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   146
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   147
     PSDL_Surface = ^TSDL_Surface;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   148
     TSDL_Surface = record
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   149
                    flags : Longword;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   150
                    format: PSDL_PixelFormat;
432
b0f693024b50 Delphi mode off
unc0rr
parents: 377
diff changeset
   151
                    w, h  : LongInt;
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   152
                    pitch : Word;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   153
                    pixels: Pointer;
432
b0f693024b50 Delphi mode off
unc0rr
parents: 377
diff changeset
   154
                    offset: LongInt;
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   155
                    end;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   156
2248
26e11cb27c61 real fix for iphone color (reverting previous commit)
koda
parents: 2242
diff changeset
   157
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   158
     PSDL_Color = ^TSDL_Color;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   159
     TSDL_Color = record
206
32fa6282efe2 Add workaround over freepascal bug (http://www.freepascal.org/mantis/view.php?id=7613)
unc0rr
parents: 202
diff changeset
   160
                  case byte of
32fa6282efe2 Add workaround over freepascal bug (http://www.freepascal.org/mantis/view.php?id=7613)
unc0rr
parents: 202
diff changeset
   161
                       0: (r: Byte;
32fa6282efe2 Add workaround over freepascal bug (http://www.freepascal.org/mantis/view.php?id=7613)
unc0rr
parents: 202
diff changeset
   162
                           g: Byte;
32fa6282efe2 Add workaround over freepascal bug (http://www.freepascal.org/mantis/view.php?id=7613)
unc0rr
parents: 202
diff changeset
   163
                           b: Byte;
32fa6282efe2 Add workaround over freepascal bug (http://www.freepascal.org/mantis/view.php?id=7613)
unc0rr
parents: 202
diff changeset
   164
                           unused: Byte;
32fa6282efe2 Add workaround over freepascal bug (http://www.freepascal.org/mantis/view.php?id=7613)
unc0rr
parents: 202
diff changeset
   165
                          );
32fa6282efe2 Add workaround over freepascal bug (http://www.freepascal.org/mantis/view.php?id=7613)
unc0rr
parents: 202
diff changeset
   166
                       1: (value: Longword);
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   167
                  end;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   168
2248
26e11cb27c61 real fix for iphone color (reverting previous commit)
koda
parents: 2242
diff changeset
   169
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   170
     PSDL_RWops = ^TSDL_RWops;
105
e7cb9bb4a9de - Fixed integer->longint
unc0rr
parents: 95
diff changeset
   171
     TSeek = function( context: PSDL_RWops; offset: LongInt; whence: LongInt ): LongInt; cdecl;
e7cb9bb4a9de - Fixed integer->longint
unc0rr
parents: 95
diff changeset
   172
     TRead = function( context: PSDL_RWops; Ptr: Pointer; size: LongInt; maxnum : LongInt ): LongInt;  cdecl;
e7cb9bb4a9de - Fixed integer->longint
unc0rr
parents: 95
diff changeset
   173
     TWrite = function( context: PSDL_RWops; Ptr: Pointer; size: LongInt; num: LongInt ): LongInt; cdecl;
e7cb9bb4a9de - Fixed integer->longint
unc0rr
parents: 95
diff changeset
   174
     TClose = function( context: PSDL_RWops ): LongInt; cdecl;
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   175
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   176
     TStdio = record
105
e7cb9bb4a9de - Fixed integer->longint
unc0rr
parents: 95
diff changeset
   177
              autoclose: LongInt;
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   178
              fp: pointer;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   179
              end;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   180
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   181
     TMem = record
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   182
            base: PByte;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   183
            here: PByte;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   184
            stop: PByte;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   185
            end;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   186
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   187
     TUnknown = record
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   188
                data1: Pointer;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   189
                end;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   190
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   191
     TSDL_RWops = record
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   192
                  seek: TSeek;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   193
                  read: TRead;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   194
                  write: TWrite;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   195
                  close: TClose;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   196
                  type_: Longword;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   197
                  case Byte of
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   198
                       0: (stdio: TStdio);
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   199
                       1: (mem: TMem);
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   200
                       2: (unknown: TUnknown);
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   201
                       end;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   202
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   203
     TSDL_KeySym = record
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   204
                   scancode: Byte;
106
98cb6606bf67 Small fix for 64bit compatibility
unc0rr
parents: 105
diff changeset
   205
                   sym: Longword;
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   206
                   modifier: Longword;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   207
                   unicode: Word;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   208
                   end;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   209
308
806c3b55500d Release mouse when keyboard focus lost
unc0rr
parents: 206
diff changeset
   210
     TSDL_ActiveEvent = record
806c3b55500d Release mouse when keyboard focus lost
unc0rr
parents: 206
diff changeset
   211
	                type_: byte;
1120
eb5a9f86f9c6 Add ability to resize engine's window
unc0rr
parents: 1066
diff changeset
   212
                    gain: byte;
eb5a9f86f9c6 Add ability to resize engine's window
unc0rr
parents: 1066
diff changeset
   213
                    state: byte;
eb5a9f86f9c6 Add ability to resize engine's window
unc0rr
parents: 1066
diff changeset
   214
                    end;
308
806c3b55500d Release mouse when keyboard focus lost
unc0rr
parents: 206
diff changeset
   215
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   216
     TSDL_KeyboardEvent = record
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   217
                          type_: Byte;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   218
                          which: Byte;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   219
                          state: Byte;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   220
                          keysym: TSDL_KeySym;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   221
                          end;
2253
ecd10eaa5daf hypothetical opengles improvements
koda
parents: 2252
diff changeset
   222
                          
ecd10eaa5daf hypothetical opengles improvements
koda
parents: 2252
diff changeset
   223
     TSDL_GLattr = ( SDL_GL_RED_SIZE,
ecd10eaa5daf hypothetical opengles improvements
koda
parents: 2252
diff changeset
   224
                     SDL_GL_GREEN_SIZE,
ecd10eaa5daf hypothetical opengles improvements
koda
parents: 2252
diff changeset
   225
                     SDL_GL_BLUE_SIZE,
ecd10eaa5daf hypothetical opengles improvements
koda
parents: 2252
diff changeset
   226
                     SDL_GL_ALPHA_SIZE,
ecd10eaa5daf hypothetical opengles improvements
koda
parents: 2252
diff changeset
   227
                     SDL_GL_BUFFER_SIZE,
ecd10eaa5daf hypothetical opengles improvements
koda
parents: 2252
diff changeset
   228
                     SDL_GL_DOUBLEBUFFER,
ecd10eaa5daf hypothetical opengles improvements
koda
parents: 2252
diff changeset
   229
                     SDL_GL_DEPTH_SIZE,
ecd10eaa5daf hypothetical opengles improvements
koda
parents: 2252
diff changeset
   230
                     SDL_GL_STENCIL_SIZE,
ecd10eaa5daf hypothetical opengles improvements
koda
parents: 2252
diff changeset
   231
                     SDL_GL_ACCUM_RED_SIZE,
ecd10eaa5daf hypothetical opengles improvements
koda
parents: 2252
diff changeset
   232
                     SDL_GL_ACCUM_GREEN_SIZE,
ecd10eaa5daf hypothetical opengles improvements
koda
parents: 2252
diff changeset
   233
                     SDL_GL_ACCUM_BLUE_SIZE,
ecd10eaa5daf hypothetical opengles improvements
koda
parents: 2252
diff changeset
   234
                     SDL_GL_ACCUM_ALPHA_SIZE,
ecd10eaa5daf hypothetical opengles improvements
koda
parents: 2252
diff changeset
   235
                     SDL_GL_STEREO,
ecd10eaa5daf hypothetical opengles improvements
koda
parents: 2252
diff changeset
   236
                     SDL_GL_MULTISAMPLEBUFFERS,
ecd10eaa5daf hypothetical opengles improvements
koda
parents: 2252
diff changeset
   237
                     SDL_GL_MULTISAMPLESAMPLES,
ecd10eaa5daf hypothetical opengles improvements
koda
parents: 2252
diff changeset
   238
                     SDL_GL_ACCELERATED_VISUAL,
ecd10eaa5daf hypothetical opengles improvements
koda
parents: 2252
diff changeset
   239
                     SDL_GL_RETAINED_BACKING,
ecd10eaa5daf hypothetical opengles improvements
koda
parents: 2252
diff changeset
   240
                     SDL_GL_CONTEXT_MAJOR_VERSION,
ecd10eaa5daf hypothetical opengles improvements
koda
parents: 2252
diff changeset
   241
                     SDL_GL_CONTEXT_MINOR_VERSION );
2252
03fd99dff989 accessory stuff for iphone
koda
parents: 2251
diff changeset
   242
	  
03fd99dff989 accessory stuff for iphone
koda
parents: 2251
diff changeset
   243
{$IFDEF SDL13}
03fd99dff989 accessory stuff for iphone
koda
parents: 2251
diff changeset
   244
     TSDL_MouseMotionEvent = record
03fd99dff989 accessory stuff for iphone
koda
parents: 2251
diff changeset
   245
                             type_: byte;
03fd99dff989 accessory stuff for iphone
koda
parents: 2251
diff changeset
   246
                             which: byte;
03fd99dff989 accessory stuff for iphone
koda
parents: 2251
diff changeset
   247
                             state: byte;
03fd99dff989 accessory stuff for iphone
koda
parents: 2251
diff changeset
   248
                             x    : LongInt;
03fd99dff989 accessory stuff for iphone
koda
parents: 2251
diff changeset
   249
                             y    : LongInt;
03fd99dff989 accessory stuff for iphone
koda
parents: 2251
diff changeset
   250
                             xrel : LongInt;
03fd99dff989 accessory stuff for iphone
koda
parents: 2251
diff changeset
   251
                             yrel : LongInt;
03fd99dff989 accessory stuff for iphone
koda
parents: 2251
diff changeset
   252
                             end;
03fd99dff989 accessory stuff for iphone
koda
parents: 2251
diff changeset
   253
{$ENDIF}
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   254
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   255
     TSDL_QuitEvent = record
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   256
                      type_: Byte;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   257
                      end;
2252
03fd99dff989 accessory stuff for iphone
koda
parents: 2251
diff changeset
   258
     TSDL_ResizeEvent = record
1120
eb5a9f86f9c6 Add ability to resize engine's window
unc0rr
parents: 1066
diff changeset
   259
			type_: Byte;
eb5a9f86f9c6 Add ability to resize engine's window
unc0rr
parents: 1066
diff changeset
   260
			w, h: LongInt;
eb5a9f86f9c6 Add ability to resize engine's window
unc0rr
parents: 1066
diff changeset
   261
			end;
eb5a9f86f9c6 Add ability to resize engine's window
unc0rr
parents: 1066
diff changeset
   262
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   263
     PSDL_Event = ^TSDL_Event;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   264
     TSDL_Event = record
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   265
                  case Byte of
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   266
                       SDL_NOEVENT: (type_: byte);
308
806c3b55500d Release mouse when keyboard focus lost
unc0rr
parents: 206
diff changeset
   267
                       SDL_ACTIVEEVENT: (active: TSDL_ActiveEvent);
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   268
                       SDL_KEYDOWN, SDL_KEYUP: (key: TSDL_KeyboardEvent);
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   269
                       SDL_QUITEV: (quit: TSDL_QuitEvent);
1120
eb5a9f86f9c6 Add ability to resize engine's window
unc0rr
parents: 1066
diff changeset
   270
                       SDL_VIDEORESIZE: (resize: TSDL_ResizeEvent);
2252
03fd99dff989 accessory stuff for iphone
koda
parents: 2251
diff changeset
   271
{$IFDEF SDL13}
03fd99dff989 accessory stuff for iphone
koda
parents: 2251
diff changeset
   272
                       SDL_MOUSEMOTION: (motion: TSDL_MouseMotionEvent);
03fd99dff989 accessory stuff for iphone
koda
parents: 2251
diff changeset
   273
{$ENDIF}
03fd99dff989 accessory stuff for iphone
koda
parents: 2251
diff changeset
   274
     end;
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   275
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   276
     PByteArray = ^TByteArray;
316
57d50189ad86 Calculate land digest
unc0rr
parents: 308
diff changeset
   277
     TByteArray = array[0..65535] of Byte;
57d50189ad86 Calculate land digest
unc0rr
parents: 308
diff changeset
   278
     PLongWordArray = ^TLongWordArray;
57d50189ad86 Calculate land digest
unc0rr
parents: 308
diff changeset
   279
     TLongWordArray = array[0..16383] of LongWord;
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   280
433
9f8f22094c0e AI thinks in separate thread
unc0rr
parents: 432
diff changeset
   281
     PSDL_Thread = Pointer;
9f8f22094c0e AI thinks in separate thread
unc0rr
parents: 432
diff changeset
   282
     PSDL_mutex = Pointer;
945
4ead9cde4e14 - Start chat implementation: chat strings are on the screen
unc0rr
parents: 883
diff changeset
   283
432
b0f693024b50 Delphi mode off
unc0rr
parents: 377
diff changeset
   284
function  SDL_Init(flags: Longword): LongInt; cdecl; external SDLLibName;
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   285
procedure SDL_Quit; cdecl; external SDLLibName;
432
b0f693024b50 Delphi mode off
unc0rr
parents: 377
diff changeset
   286
function  SDL_VideoDriverName(var namebuf; maxlen: LongInt): PChar; cdecl; external SDLLibName;
b0f693024b50 Delphi mode off
unc0rr
parents: 377
diff changeset
   287
procedure SDL_EnableUNICODE(enable: LongInt); cdecl; external SDLLibName;
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   288
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   289
procedure SDL_Delay(msec: Longword); cdecl; external SDLLibName;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   290
function  SDL_GetTicks: Longword; cdecl; external SDLLibName;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   291
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   292
function  SDL_MustLock(Surface: PSDL_Surface): Boolean;
432
b0f693024b50 Delphi mode off
unc0rr
parents: 377
diff changeset
   293
function  SDL_LockSurface(Surface: PSDL_Surface): LongInt; cdecl; external SDLLibName;
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   294
procedure SDL_UnlockSurface(Surface: PSDL_Surface); cdecl; external SDLLibName;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   295
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   296
function  SDL_GetError: PChar; cdecl; external SDLLibName;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   297
432
b0f693024b50 Delphi mode off
unc0rr
parents: 377
diff changeset
   298
function  SDL_SetVideoMode(width, height, bpp: LongInt; flags: Longword): PSDL_Surface; cdecl; external SDLLibName;
b0f693024b50 Delphi mode off
unc0rr
parents: 377
diff changeset
   299
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
   300
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
   301
procedure SDL_FreeSurface(Surface: PSDL_Surface); cdecl; external SDLLibName;
105
e7cb9bb4a9de - Fixed integer->longint
unc0rr
parents: 95
diff changeset
   302
function  SDL_SetColorKey(surface: PSDL_Surface; flag, key: Longword): LongInt; cdecl; external SDLLibName;
2017
7845c77c8d31 nemo's great patch:
unc0rr
parents: 1997
diff changeset
   303
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
   304
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
   305
105
e7cb9bb4a9de - Fixed integer->longint
unc0rr
parents: 95
diff changeset
   306
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
   307
function  SDL_FillRect(dst: PSDL_Surface; dstrect: PSDL_Rect; color: Longword): LongInt; cdecl; external SDLLibName;
e7cb9bb4a9de - Fixed integer->longint
unc0rr
parents: 95
diff changeset
   308
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
   309
function  SDL_Flip(Screen: PSDL_Surface): LongInt; cdecl; external SDLLibName;
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   310
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   311
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
   312
function  SDL_MapRGB(format: PSDL_PixelFormat; r, g, b: Byte): Longword; cdecl; external SDLLibName;
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   313
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   314
function  SDL_DisplayFormat(Surface: PSDL_Surface): PSDL_Surface; cdecl; external SDLLibName;
35
9367f246fb5f - New rope
unc0rr
parents: 11
diff changeset
   315
function  SDL_DisplayFormatAlpha(Surface: PSDL_Surface): PSDL_Surface; cdecl; external SDLLibName;
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   316
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   317
function  SDL_RWFromFile(filename, mode: PChar): PSDL_RWops; cdecl; external SDLLibName;
432
b0f693024b50 Delphi mode off
unc0rr
parents: 377
diff changeset
   318
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
   319
2152
a2811690da1b Patch by koda:
unc0rr
parents: 2017
diff changeset
   320
{$IFDEF SDL13}
a2811690da1b Patch by koda:
unc0rr
parents: 2017
diff changeset
   321
function  SDL_GetKeyboardState(numkeys: PLongInt): PByteArray; cdecl; external SDLLibName;
2242
2e8251933b71 initial support for touch input
koda
parents: 2241
diff changeset
   322
function  SDL_GetMouseState(index: LongInt; x, y: PLongInt): Byte; cdecl; external SDLLibName;
2e8251933b71 initial support for touch input
koda
parents: 2241
diff changeset
   323
function  SDL_SelectMouse(index: LongInt): LongInt; cdecl; external SDLLibName;
2e8251933b71 initial support for touch input
koda
parents: 2241
diff changeset
   324
function  SDL_GetRelativeMouseState(index: LongInt; x, y: PLongInt): Byte; cdecl; external SDLLibName;
2e8251933b71 initial support for touch input
koda
parents: 2241
diff changeset
   325
function  SDL_GetNumMice : LongInt; cdecl; external SDLLibName;
2152
a2811690da1b Patch by koda:
unc0rr
parents: 2017
diff changeset
   326
{$ELSE}
105
e7cb9bb4a9de - Fixed integer->longint
unc0rr
parents: 95
diff changeset
   327
function  SDL_GetKeyState(numkeys: PLongInt): PByteArray; cdecl; external SDLLibName;
2242
2e8251933b71 initial support for touch input
koda
parents: 2241
diff changeset
   328
function  SDL_GetMouseState(x, y: PLongInt): Byte; cdecl; external SDLLibName;
2152
a2811690da1b Patch by koda:
unc0rr
parents: 2017
diff changeset
   329
{$ENDIF}
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   330
function  SDL_GetKeyName(key: Longword): PChar; cdecl; external SDLLibName;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   331
procedure SDL_WarpMouse(x, y: Word); cdecl; external SDLLibName;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   332
432
b0f693024b50 Delphi mode off
unc0rr
parents: 377
diff changeset
   333
function  SDL_PollEvent(event: PSDL_Event): LongInt; cdecl; external SDLLibName;
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   334
432
b0f693024b50 Delphi mode off
unc0rr
parents: 377
diff changeset
   335
function  SDL_ShowCursor(toggle: LongInt): LongInt; cdecl; external SDLLibName;
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   336
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   337
procedure SDL_WM_SetCaption(title: PChar; icon: PChar); cdecl; external SDLLibName;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   338
433
9f8f22094c0e AI thinks in separate thread
unc0rr
parents: 432
diff changeset
   339
function  SDL_CreateMutex: PSDL_mutex; cdecl; external SDLLibName;
9f8f22094c0e AI thinks in separate thread
unc0rr
parents: 432
diff changeset
   340
procedure SDL_DestroyMutex(mutex: PSDL_mutex); cdecl; external SDLLibName;
9f8f22094c0e AI thinks in separate thread
unc0rr
parents: 432
diff changeset
   341
function  SDL_LockMutex(mutex: PSDL_mutex): LongInt; cdecl; external SDLLibName name 'SDL_mutexP';
9f8f22094c0e AI thinks in separate thread
unc0rr
parents: 432
diff changeset
   342
function  SDL_UnlockMutex(mutex: PSDL_mutex): LongInt; cdecl; external SDLLibName name 'SDL_mutexV';
9f8f22094c0e AI thinks in separate thread
unc0rr
parents: 432
diff changeset
   343
2252
03fd99dff989 accessory stuff for iphone
koda
parents: 2251
diff changeset
   344
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
   345
procedure SDL_GL_SwapBuffers(); cdecl; external SDLLibName;
40fc0deb388f Start conversion to OpenGL rendering
unc0rr
parents: 500
diff changeset
   346
2254
bb68e5a5be56 -fix bamboo theme (unsupported color profile)
koda
parents: 2253
diff changeset
   347
{$IFDEF SDL13}
bb68e5a5be56 -fix bamboo theme (unsupported color profile)
koda
parents: 2253
diff changeset
   348
{$IFDEF IPHONEOS}
bb68e5a5be56 -fix bamboo theme (unsupported color profile)
koda
parents: 2253
diff changeset
   349
function  SDL_iPhoneKeyboardShow(windowID: LongInt): LongInt; cdecl; external SDLLibName;
bb68e5a5be56 -fix bamboo theme (unsupported color profile)
koda
parents: 2253
diff changeset
   350
function  SDL_iPhoneKeyboardHide(windowID: LongInt): LongInt; cdecl; external SDLLibName;
bb68e5a5be56 -fix bamboo theme (unsupported color profile)
koda
parents: 2253
diff changeset
   351
function  SDL_iPhoneKeyboardIsShown(windowID: LongInt): boolean; cdecl; external SDLLibName;
bb68e5a5be56 -fix bamboo theme (unsupported color profile)
koda
parents: 2253
diff changeset
   352
function  SDL_iPhoneKeyboardToggle(windowID: LongInt): LongInt; cdecl; external SDLLibName;
bb68e5a5be56 -fix bamboo theme (unsupported color profile)
koda
parents: 2253
diff changeset
   353
{$ENDIF}
bb68e5a5be56 -fix bamboo theme (unsupported color profile)
koda
parents: 2253
diff changeset
   354
{$ENDIF}
bb68e5a5be56 -fix bamboo theme (unsupported color profile)
koda
parents: 2253
diff changeset
   355
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   356
(*  TTF  *)
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   357
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   358
const {$IFDEF WIN32}
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   359
      SDL_TTFLibName = 'SDL_ttf.dll';
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   360
      {$ENDIF}
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   361
      {$IFDEF UNIX}
2241
7992f7ba388d completes removal of wav files, updates SDLh and adds DEBUGFILE to hwengine when compiled in Debug mode
koda
parents: 2240
diff changeset
   362
            {$IFDEF DARWIN}
7992f7ba388d completes removal of wav files, updates SDLh and adds DEBUGFILE to hwengine when compiled in Debug mode
koda
parents: 2240
diff changeset
   363
            SDL_TTFLibName = 'SDL_ttf';
7992f7ba388d completes removal of wav files, updates SDLh and adds DEBUGFILE to hwengine when compiled in Debug mode
koda
parents: 2240
diff changeset
   364
            {$ELSE}
7992f7ba388d completes removal of wav files, updates SDLh and adds DEBUGFILE to hwengine when compiled in Debug mode
koda
parents: 2240
diff changeset
   365
            SDL_TTFLibName = 'libSDL_ttf.so';
7992f7ba388d completes removal of wav files, updates SDLh and adds DEBUGFILE to hwengine when compiled in Debug mode
koda
parents: 2240
diff changeset
   366
            {$ENDIF}
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   367
      {$ENDIF}
202
8603c0420461 Support font styles
unc0rr
parents: 201
diff changeset
   368
      TTF_STYLE_NORMAL = 0;
8603c0420461 Support font styles
unc0rr
parents: 201
diff changeset
   369
      TTF_STYLE_BOLD   = 1;
8603c0420461 Support font styles
unc0rr
parents: 201
diff changeset
   370
      TTF_STYLE_ITALIC = 2;
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   371
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   372
type PTTF_Font = ^TTTF_font;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   373
     TTTF_Font = record
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   374
                 end;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   375
2254
bb68e5a5be56 -fix bamboo theme (unsupported color profile)
koda
parents: 2253
diff changeset
   376
function  TTF_Init: LongInt; cdecl; external SDL_TTFLibName;
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   377
procedure TTF_Quit; cdecl; external SDL_TTFLibName;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   378
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   379
2254
bb68e5a5be56 -fix bamboo theme (unsupported color profile)
koda
parents: 2253
diff changeset
   380
function  TTF_SizeUTF8(font: PTTF_Font; const text: PChar; var w, h: LongInt): LongInt; cdecl; external SDL_TTFLibName;
206
32fa6282efe2 Add workaround over freepascal bug (http://www.freepascal.org/mantis/view.php?id=7613)
unc0rr
parents: 202
diff changeset
   381
(* TSDL_Color -> Longword conversion is workaround over freepascal bug.
32fa6282efe2 Add workaround over freepascal bug (http://www.freepascal.org/mantis/view.php?id=7613)
unc0rr
parents: 202
diff changeset
   382
   See http://www.freepascal.org/mantis/view.php?id=7613 for details *)
2254
bb68e5a5be56 -fix bamboo theme (unsupported color profile)
koda
parents: 2253
diff changeset
   383
function  TTF_RenderUTF8_Solid(font: PTTF_Font; const text: PChar; fg: Longword): PSDL_Surface; cdecl; external SDL_TTFLibName;
bb68e5a5be56 -fix bamboo theme (unsupported color profile)
koda
parents: 2253
diff changeset
   384
function  TTF_RenderUTF8_Blended(font: PTTF_Font; const text: PChar; fg: Longword): PSDL_Surface; cdecl; external SDL_TTFLibName;
bb68e5a5be56 -fix bamboo theme (unsupported color profile)
koda
parents: 2253
diff changeset
   385
function  TTF_RenderUTF8_Shaded(font: PTTF_Font; const text: PChar; fg, bg: Longword): PSDL_Surface; cdecl; external SDL_TTFLibName;
206
32fa6282efe2 Add workaround over freepascal bug (http://www.freepascal.org/mantis/view.php?id=7613)
unc0rr
parents: 202
diff changeset
   386
2254
bb68e5a5be56 -fix bamboo theme (unsupported color profile)
koda
parents: 2253
diff changeset
   387
function  TTF_OpenFont(const filename: PChar; size: LongInt): PTTF_Font; cdecl; external SDL_TTFLibName;
432
b0f693024b50 Delphi mode off
unc0rr
parents: 377
diff changeset
   388
procedure TTF_SetFontStyle(font: PTTF_Font; style: LongInt); cdecl; external SDL_TTFLibName;
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   389
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   390
1997
cd66434351cf koda's patch
unc0rr
parents: 1947
diff changeset
   391
(*  SDL_image  *)
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   392
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   393
const {$IFDEF WIN32}
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   394
      SDL_ImageLibName = 'SDL_image.dll';
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   395
      {$ENDIF}
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   396
      {$IFDEF UNIX}
2241
7992f7ba388d completes removal of wav files, updates SDLh and adds DEBUGFILE to hwengine when compiled in Debug mode
koda
parents: 2240
diff changeset
   397
            {$IFDEF DARWIN}
7992f7ba388d completes removal of wav files, updates SDLh and adds DEBUGFILE to hwengine when compiled in Debug mode
koda
parents: 2240
diff changeset
   398
            SDL_ImageLibName = 'SDL_image';
7992f7ba388d completes removal of wav files, updates SDLh and adds DEBUGFILE to hwengine when compiled in Debug mode
koda
parents: 2240
diff changeset
   399
            {$ELSE}
7992f7ba388d completes removal of wav files, updates SDLh and adds DEBUGFILE to hwengine when compiled in Debug mode
koda
parents: 2240
diff changeset
   400
            SDL_ImageLibName = 'libSDL_image.so';
7992f7ba388d completes removal of wav files, updates SDLh and adds DEBUGFILE to hwengine when compiled in Debug mode
koda
parents: 2240
diff changeset
   401
            {$ENDIF}
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   402
      {$ENDIF}
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   403
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   404
function IMG_Load(const _file: PChar): PSDL_Surface; cdecl; external SDL_ImageLibName;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   405
1997
cd66434351cf koda's patch
unc0rr
parents: 1947
diff changeset
   406
(*  SDL_net  *)
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   407
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   408
const {$IFDEF WIN32}
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   409
      SDL_NetLibName = 'SDL_net.dll';
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   410
      {$ENDIF}
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   411
      {$IFDEF UNIX}
2241
7992f7ba388d completes removal of wav files, updates SDLh and adds DEBUGFILE to hwengine when compiled in Debug mode
koda
parents: 2240
diff changeset
   412
            {$IFDEF DARWIN}
7992f7ba388d completes removal of wav files, updates SDLh and adds DEBUGFILE to hwengine when compiled in Debug mode
koda
parents: 2240
diff changeset
   413
	        SDL_NetLibName = 'SDL_net';
7992f7ba388d completes removal of wav files, updates SDLh and adds DEBUGFILE to hwengine when compiled in Debug mode
koda
parents: 2240
diff changeset
   414
            {$ELSE}
7992f7ba388d completes removal of wav files, updates SDLh and adds DEBUGFILE to hwengine when compiled in Debug mode
koda
parents: 2240
diff changeset
   415
            SDL_NetLibName = 'libSDL_net.so';
7992f7ba388d completes removal of wav files, updates SDLh and adds DEBUGFILE to hwengine when compiled in Debug mode
koda
parents: 2240
diff changeset
   416
            {$ENDIF}
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   417
      {$ENDIF}
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   418
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   419
type TIPAddress = record
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   420
                  host: Longword;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   421
                  port: Word;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   422
                  end;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   423
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   424
     PTCPSocket = ^TTCPSocket;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   425
     TTCPSocket = record
106
98cb6606bf67 Small fix for 64bit compatibility
unc0rr
parents: 105
diff changeset
   426
                  ready: LongInt;
105
e7cb9bb4a9de - Fixed integer->longint
unc0rr
parents: 95
diff changeset
   427
                  channel: LongInt;
106
98cb6606bf67 Small fix for 64bit compatibility
unc0rr
parents: 105
diff changeset
   428
                  remoteAddress: TIPaddress;
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   429
                  localAddress: TIPaddress;
105
e7cb9bb4a9de - Fixed integer->longint
unc0rr
parents: 95
diff changeset
   430
                  sflag: LongInt;
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   431
                  end;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   432
     PSDLNet_SocketSet = ^TSDLNet_SocketSet;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   433
     TSDLNet_SocketSet = record
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   434
                         numsockets,
105
e7cb9bb4a9de - Fixed integer->longint
unc0rr
parents: 95
diff changeset
   435
                         maxsockets: LongInt;
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   436
                         sockets: PTCPSocket;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   437
                         end;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   438
2254
bb68e5a5be56 -fix bamboo theme (unsupported color profile)
koda
parents: 2253
diff changeset
   439
function  SDLNet_Init: LongInt; cdecl; external SDL_NetLibName;
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   440
procedure SDLNet_Quit; cdecl; external SDL_NetLibName;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   441
2254
bb68e5a5be56 -fix bamboo theme (unsupported color profile)
koda
parents: 2253
diff changeset
   442
function  SDLNet_AllocSocketSet(maxsockets: LongInt): PSDLNet_SocketSet; cdecl; external SDL_NetLibName;
bb68e5a5be56 -fix bamboo theme (unsupported color profile)
koda
parents: 2253
diff changeset
   443
function  SDLNet_ResolveHost(var address: TIPaddress; host: PCHar; port: Word): LongInt; cdecl; external SDL_NetLibName;
bb68e5a5be56 -fix bamboo theme (unsupported color profile)
koda
parents: 2253
diff changeset
   444
function  SDLNet_TCP_Accept(server: PTCPsocket): PTCPSocket; cdecl; external SDL_NetLibName;
bb68e5a5be56 -fix bamboo theme (unsupported color profile)
koda
parents: 2253
diff changeset
   445
function  SDLNet_TCP_Open(var ip: TIPaddress): PTCPSocket; cdecl; external SDL_NetLibName;
bb68e5a5be56 -fix bamboo theme (unsupported color profile)
koda
parents: 2253
diff changeset
   446
function  SDLNet_TCP_Send(sock: PTCPsocket; data: Pointer; len: LongInt): LongInt; cdecl; external SDL_NetLibName;
bb68e5a5be56 -fix bamboo theme (unsupported color profile)
koda
parents: 2253
diff changeset
   447
function  SDLNet_TCP_Recv(sock: PTCPsocket; data: Pointer; len: LongInt): LongInt; cdecl; external SDL_NetLibName;
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   448
procedure SDLNet_TCP_Close(sock: PTCPsocket); cdecl; external SDL_NetLibName;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   449
procedure SDLNet_FreeSocketSet(_set: PSDLNet_SocketSet); cdecl; external SDL_NetLibName;
2254
bb68e5a5be56 -fix bamboo theme (unsupported color profile)
koda
parents: 2253
diff changeset
   450
function  SDLNet_AddSocket(_set: PSDLNet_SocketSet; sock: PTCPSocket): LongInt; cdecl; external SDL_NetLibName;
bb68e5a5be56 -fix bamboo theme (unsupported color profile)
koda
parents: 2253
diff changeset
   451
function  SDLNet_CheckSockets(_set: PSDLNet_SocketSet; timeout: LongInt): LongInt; cdecl; external SDL_NetLibName;
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   452
459
95163c6efa69 Do not use SDL_Net's to/from network byte order conversion functions
unc0rr
parents: 433
diff changeset
   453
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
   454
procedure SDLNet_Write32(value: LongWord; buf: pointer);
2254
bb68e5a5be56 -fix bamboo theme (unsupported color profile)
koda
parents: 2253
diff changeset
   455
function  SDLNet_Read16(buf: pointer): Word;
bb68e5a5be56 -fix bamboo theme (unsupported color profile)
koda
parents: 2253
diff changeset
   456
function  SDLNet_Read32(buf: pointer): LongWord;
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   457
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   458
implementation
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   459
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   460
function SDL_MustLock(Surface: PSDL_Surface): Boolean;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   461
begin
432
b0f693024b50 Delphi mode off
unc0rr
parents: 377
diff changeset
   462
SDL_MustLock:= ( surface^.offset <> 0 )
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   463
       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
   464
end;
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   465
459
95163c6efa69 Do not use SDL_Net's to/from network byte order conversion functions
unc0rr
parents: 433
diff changeset
   466
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
   467
begin
95163c6efa69 Do not use SDL_Net's to/from network byte order conversion functions
unc0rr
parents: 433
diff changeset
   468
  PByteArray(buf)^[1]:= value;
95163c6efa69 Do not use SDL_Net's to/from network byte order conversion functions
unc0rr
parents: 433
diff changeset
   469
  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
   470
end;
95163c6efa69 Do not use SDL_Net's to/from network byte order conversion functions
unc0rr
parents: 433
diff changeset
   471
95163c6efa69 Do not use SDL_Net's to/from network byte order conversion functions
unc0rr
parents: 433
diff changeset
   472
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
   473
begin
95163c6efa69 Do not use SDL_Net's to/from network byte order conversion functions
unc0rr
parents: 433
diff changeset
   474
  PByteArray(buf)^[3]:= value;
95163c6efa69 Do not use SDL_Net's to/from network byte order conversion functions
unc0rr
parents: 433
diff changeset
   475
  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
   476
  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
   477
  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
   478
end;
95163c6efa69 Do not use SDL_Net's to/from network byte order conversion functions
unc0rr
parents: 433
diff changeset
   479
95163c6efa69 Do not use SDL_Net's to/from network byte order conversion functions
unc0rr
parents: 433
diff changeset
   480
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
   481
begin
95163c6efa69 Do not use SDL_Net's to/from network byte order conversion functions
unc0rr
parents: 433
diff changeset
   482
  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
   483
                 (PByteArray(buf)^[0] shl 8)
95163c6efa69 Do not use SDL_Net's to/from network byte order conversion functions
unc0rr
parents: 433
diff changeset
   484
end;
95163c6efa69 Do not use SDL_Net's to/from network byte order conversion functions
unc0rr
parents: 433
diff changeset
   485
95163c6efa69 Do not use SDL_Net's to/from network byte order conversion functions
unc0rr
parents: 433
diff changeset
   486
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
   487
begin
95163c6efa69 Do not use SDL_Net's to/from network byte order conversion functions
unc0rr
parents: 433
diff changeset
   488
  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
   489
                  (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
   490
                  (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
   491
                  (PByteArray(buf)^[0] shl 24)
95163c6efa69 Do not use SDL_Net's to/from network byte order conversion functions
unc0rr
parents: 433
diff changeset
   492
end;
95163c6efa69 Do not use SDL_Net's to/from network byte order conversion functions
unc0rr
parents: 433
diff changeset
   493
4
bcbd7adb4e4b - set svn:eol-style to native
unc0rr
parents: 1
diff changeset
   494
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
   495