Browse Source

+ adapted SDL package to user PowerSDL headers on MorphOS.

git-svn-id: trunk@16205 -
Károly Balogh 14 years ago
parent
commit
2d9d71e976

+ 13 - 0
packages/sdl/src/sdl_gfx.pas

@@ -23,6 +23,9 @@ unit sdl_gfx;
 interface
 
 uses
+{$IFDEF MORPHOS}
+  exec,
+{$ENDIF}
   sdl;
 
 const
@@ -42,6 +45,10 @@ const
   SDLgfxLibName = 'SDL_gfx';
 {$ENDIF}
 
+{$IFDEF MORPHOS}
+  SDLgfxLibName = 'powersdl_gfx.library';
+{$ENDIF}
+
   // Some rates in Hz
   FPS_UPPER_LIMIT	= 200;
   FPS_LOWER_LIMIT	= 1;
@@ -77,6 +84,10 @@ type
     y :	Uint8;
   end;
 
+{$IFDEF MORPHOS}
+{$INCLUDE powersdl_gfx.inc}
+{$ELSE MORPHOS}
+
 {
 
  SDL_framerate: framerate manager
@@ -686,6 +697,8 @@ procedure zoomSurfaceSize( width : integer; height : integer; zoomx : double; zo
 cdecl; external {$IFDEF __GPC__}name 'zoomSurfaceSize'{$ELSE} SDLgfxLibName{$ENDIF __GPC__};
 {$EXTERNALSYM zoomSurfaceSize}
 
+{$ENDIF MORPHOS}
+
 implementation
 
 end.

+ 25 - 0
packages/sdl/src/sdl_mixer.pas

@@ -161,6 +161,9 @@ uses
 {$IFNDEF no_smpeg}
   smpeg,
 {$ENDIF}
+{$ENDIF}
+{$IFDEF MORPHOS}
+  exec,
 {$ENDIF}
   sdl;
 
@@ -185,6 +188,10 @@ const
   SDL_MixerLibName = 'SDL_mixer';
 {$ENDIF}
 
+{$IFDEF MACOS}
+  SDL_MixerLibName = 'powersdl_mixer.library';
+{$ENDIF}
+
   {* Printable format: "%d.%d.%d", MAJOR, MINOR, PATCHLEVEL *}
   SDL_MIXER_MAJOR_VERSION = 1;
 {$EXTERNALSYM MIX_MAJOR_VERSION}
@@ -478,6 +485,10 @@ type
 procedure SDL_MIXER_VERSION(var X: TSDL_Version);
 {$EXTERNALSYM SDL_MIXER_VERSION}
 
+{$IFDEF MORPHOS}
+{$INCLUDE powersdl_mixer.inc}
+{$ELSE MORPHOS}
+
 { This function gets the version of the dynamically linked SDL_mixer library.
      It should NOT be used to fill a version structure, instead you should use the
      SDL_MIXER_VERSION() macro. }
@@ -570,6 +581,8 @@ function Mix_GetMusicHookData : Pointer;
 cdecl; external {$IFDEF __GPC__}name 'Mix_GetMusicHookData'{$ELSE} SDL_MixerLibName{$ENDIF __GPC__};
 {$EXTERNALSYM Mix_GetMusicHookData}
 
+{$ENDIF MORPHOS}
+
 {* Add your own callback when a channel has finished playing. NULL
  * to disable callback.*}
 type
@@ -579,10 +592,14 @@ type
   TChannel_finished = procedure( channel: Integer );
   {$ENDIF}
 
+{$IFNDEF MORPHOS}
+
 procedure Mix_ChannelFinished( channel_finished : TChannel_finished );
 cdecl; external {$IFDEF __GPC__}name 'Mix_ChannelFinished'{$ELSE} SDL_MixerLibName{$ENDIF __GPC__};
 {$EXTERNALSYM Mix_ChannelFinished}
 
+{$ENDIF MORPHOS}
+
 const
   MIX_CHANNEL_POST = -2;
 
@@ -663,6 +680,9 @@ type
   * returns zero if error (no such channel), nonzero if added.
   *  Error messages can be retrieved from Mix_GetError().
   *}
+
+{$IFNDEF MORPHOS}
+
 function Mix_RegisterEffect( chan : integer; f : TMix_EffectFunc; d : TMix_EffectDone; arg : Pointer ) : integer;
 cdecl; external {$IFDEF __GPC__}name 'Mix_RegisterEffect'{$ELSE} SDL_MixerLibName{$ENDIF __GPC__};
 {$EXTERNALSYM Mix_RegisterEffect}
@@ -694,9 +714,12 @@ function Mix_UnregisterAllEffects( channel : integer ) : integer;
 cdecl; external {$IFDEF __GPC__}name 'Mix_UnregisterAllEffects'{$ELSE} SDL_MixerLibName{$ENDIF __GPC__};
 {$EXTERNALSYM Mix_UnregisterAllEffects}
 
+{$ENDIF MORPHOS}
+
 const
   MIX_EFFECTSMAXSPEED = 'MIX_EFFECTSMAXSPEED';
 
+{$IFNDEF MORPHOS}
   {*
   * These are the internally - defined mixing effects.They use the same API that
   * effects defined in the application use, but are provided here as a
@@ -1069,6 +1092,8 @@ procedure Mix_CloseAudio;
 cdecl; external {$IFDEF __GPC__}name 'Mix_CloseAudio'{$ELSE} SDL_MixerLibName{$ENDIF __GPC__};
 {$EXTERNALSYM Mix_CloseAudio}
 
+{$ENDIF MORPHOS}
+
 { We'll use SDL for reporting errors }
 procedure Mix_SetError( fmt : PChar );
 

+ 24 - 0
packages/sdl/src/sdl_mixer_nosmpeg.pas

@@ -10,6 +10,9 @@ interface
 uses
 {$IFDEF __GPC__}
   gpc,
+{$ENDIF}
+{$IFDEF MORPHOS}
+  exec,
 {$ENDIF}
   sdl;
 
@@ -34,6 +37,10 @@ const
   SDL_MixerLibName = 'SDL_mixer';
 {$ENDIF}
 
+{$IFDEF MORPHOS}
+  SDL_MixerLibName = 'powersdl_mixer.library';
+{$ENDIF}
+
   {* Printable format: "%d.%d.%d", MAJOR, MINOR, PATCHLEVEL *}
   SDL_MIXER_MAJOR_VERSION = 1;
 {$EXTERNALSYM MIX_MAJOR_VERSION}
@@ -323,6 +330,10 @@ type
 procedure SDL_MIXER_VERSION(var X: TSDL_Version);
 {$EXTERNALSYM SDL_MIXER_VERSION}
 
+{$IFDEF MORPHOS}
+{$INCLUDE powersdl_mixer.inc}
+{$ELSE MORPHOS}
+
 { This function gets the version of the dynamically linked SDL_mixer library.
      It should NOT be used to fill a version structure, instead you should use the
      SDL_MIXER_VERSION() macro. }
@@ -415,6 +426,8 @@ function Mix_GetMusicHookData : Pointer;
 cdecl; external {$IFDEF __GPC__}name 'Mix_GetMusicHookData'{$ELSE} SDL_MixerLibName{$ENDIF __GPC__};
 {$EXTERNALSYM Mix_GetMusicHookData}
 
+{$ENDIF MORPHOS}
+
 {* Add your own callback when a channel has finished playing. NULL
  * to disable callback.*}
 type
@@ -424,10 +437,14 @@ type
   TChannel_finished = procedure( channel: Integer );
   {$ENDIF}
 
+{$IFNDEF MORPHOS}
+
 procedure Mix_ChannelFinished( channel_finished : TChannel_finished );
 cdecl; external {$IFDEF __GPC__}name 'Mix_ChannelFinished'{$ELSE} SDL_MixerLibName{$ENDIF __GPC__};
 {$EXTERNALSYM Mix_ChannelFinished}
 
+{$ENDIF MORPHOS}
+
 const
   MIX_CHANNEL_POST = -2;
 
@@ -508,6 +525,8 @@ type
   * returns zero if error (no such channel), nonzero if added.
   *  Error messages can be retrieved from Mix_GetError().
   *}
+{$IFNDEF MORPHOS}
+
 function Mix_RegisterEffect( chan : integer; f : TMix_EffectFunc; d : TMix_EffectDone; arg : Pointer ) : integer;
 cdecl; external {$IFDEF __GPC__}name 'Mix_RegisterEffect'{$ELSE} SDL_MixerLibName{$ENDIF __GPC__};
 {$EXTERNALSYM Mix_RegisterEffect}
@@ -539,9 +558,12 @@ function Mix_UnregisterAllEffects( channel : integer ) : integer;
 cdecl; external {$IFDEF __GPC__}name 'Mix_UnregisterAllEffects'{$ELSE} SDL_MixerLibName{$ENDIF __GPC__};
 {$EXTERNALSYM Mix_UnregisterAllEffects}
 
+{$ENDIF MORPHOS}
+
 const
   MIX_EFFECTSMAXSPEED = 'MIX_EFFECTSMAXSPEED';
 
+{$IFNDEF MORPHOS}
   {*
   * These are the internally - defined mixing effects.They use the same API that
   * effects defined in the application use, but are provided here as a
@@ -914,6 +936,8 @@ procedure Mix_CloseAudio;
 cdecl; external {$IFDEF __GPC__}name 'Mix_CloseAudio'{$ELSE} SDL_MixerLibName{$ENDIF __GPC__};
 {$EXTERNALSYM Mix_CloseAudio}
 
+{$ENDIF MORPHOS}
+
 { We'll use SDL for reporting errors }
 procedure Mix_SetError( fmt : PChar );
 

+ 19 - 1
packages/sdl/src/sdl_net.pas

@@ -124,6 +124,10 @@ uses
 {$IFNDEF __GPC__}
   Windows,
 {$ENDIF}
+{$ENDIF}
+
+{$IFDEF MORPHOS}
+  exec,
 {$ENDIF}
   sdl;
 
@@ -144,6 +148,10 @@ const
   SDLNetLibName = 'SDL_net';
 {$ENDIF}
 
+{$IFDEF MACOS}
+  SDLNetLibName = 'powersdl_net.library';
+{$ENDIF}
+
   {* Printable format: "%d.%d.%d", MAJOR, MINOR, PATCHLEVEL *}
   SDL_NET_MAJOR_VERSION = 1;
 {$EXTERNALSYM SDL_NET_MAJOR_VERSION}
@@ -268,6 +276,10 @@ type
 procedure SDL_NET_VERSION( var X : TSDL_version );
 {$EXTERNALSYM SDL_NET_VERSION}
 
+{$IFDEF MORPHOS}
+{$INCLUDE powersdl_net.inc}
+{$ELSE MORPHOS}
+
 {* Initialize/Cleanup the network API
    SDL must be initialized before calls to functions in this library,
    because this library uses utility functions from the SDL library.
@@ -494,10 +506,11 @@ function SDLNet_AddSocket( set_ : PSDLNet_SocketSet; sock : PSDLNet_GenericSocke
 cdecl; external{$IFDEF __GPC__}name 'SDLNet_AddSocket'{$ELSE}SDLNetLibName{$ENDIF __GPC__};
 {$EXTERNALSYM SDLNet_AddSocket}
 
+{$ENDIF MORPHOS}
 function SDLNet_TCP_AddSocket( set_ : PSDLNet_SocketSet; sock : PTCPSocket ) : integer;
 
 function SDLNet_UDP_AddSocket( set_ : PSDLNet_SocketSet; sock : PUDPSocket ) : integer;
-
+{$IFNDEF MORPHOS}
 
 {* Remove a socket from a set of sockets to be checked for available data *}
 function SDLNet_DelSocket( set_ : PSDLNet_SocketSet; sock : PSDLNet_GenericSocket ) : integer;
@@ -523,7 +536,10 @@ cdecl; external{$IFDEF __GPC__}name 'SDLNet_CheckSockets'{$ELSE}SDLNetLibName{$E
    socket that was in the socket set, to find out if data is available
    for reading.
 *}
+
+{$ENDIF MORPHOS}
 function SDLNet_SocketReady( sock : PSDLNet_GenericSocket ) : boolean;
+{$IFNDEF MORPHOS}
 
 {* Free a set of sockets allocated by SDL_NetAllocSocketSet() *}
 procedure SDLNet_FreeSocketSet( set_ : PSDLNet_SocketSet );
@@ -556,6 +572,8 @@ cdecl; external{$IFDEF __GPC__}name 'SDLNet_Read32'{$ELSE}SDLNetLibName{$ENDIF _
 {* Error reporting functions                                           *}
 {***********************************************************************}
 
+{$ENDIF MORPHOS}
+
 {* We'll use SDL's functions for error reporting *}
 procedure SDLNet_SetError( fmt : PChar );
 function SDLNet_GetError : PChar;

+ 13 - 0
packages/sdl/src/sdl_ttf.pas

@@ -171,6 +171,9 @@ uses
   {$IFNDEF __GPC__}
   Windows,
   {$ENDIF}
+{$ENDIF}
+{$IFDEF MORPHOS}
+  exec,
 {$ENDIF}
   sdl;
 
@@ -195,6 +198,10 @@ const
   SDLttfLibName = 'SDL_ttf';
 {$ENDIF}
 
+{$IFDEF MACOS}
+  SDLttfLibName = 'powersdl_ttf.library';
+{$ENDIF}
+
   {* Printable format: "%d.%d.%d", MAJOR, MINOR, PATCHLEVEL *}
   SDL_TTF_MAJOR_VERSION = 2;
 {$EXTERNALSYM SDL_TTF_MAJOR_VERSION}
@@ -232,6 +239,10 @@ type
 procedure SDL_TTF_VERSION( var X : TSDL_version );
 {$EXTERNALSYM SDL_TTF_VERSION}
 
+{$IFDEF MORPHOS}
+{$INCLUDE powersdl_ttf.inc}
+{$ELSE MORPHOS}
+
 { This function gets the version of the dynamically linked SDL_ttf library.
      It should NOT be used to fill a version structure, instead you should use the
      SDL_TTF_VERSION() macro. }
@@ -460,6 +471,8 @@ function TTF_WasInit : integer;
 cdecl; external {$IFDEF __GPC__}name 'TTF_WasInit'{$ELSE} SDLttfLibName{$ENDIF __GPC__};
 {$EXTERNALSYM TTF_WasInit}
 
+{$ENDIF MORPHOS}
+
 // We'll use SDL for reporting errors
 procedure TTF_SetError( fmt : PChar );
 

+ 17 - 3
packages/sdl/src/smpeg.pas

@@ -134,7 +134,9 @@ uses
 {$IFDEF __GPC__}
   gpc,
 {$ENDIF}
-
+{$IFDEF MORPHOS}
+  exec,
+{$ENDIF}
   sdl;
 
 const
@@ -154,6 +156,10 @@ const
   SmpegLibName = 'smpeg';
 {$ENDIF}
 
+{$IFDEF MORPHOS}
+  SmpegLibName = 'smpeg.library';
+{$ENDIF}
+
 //------------------------------------------------------------------------------
 // MPEGFilter.h
 //------------------------------------------------------------------------------
@@ -195,6 +201,8 @@ type
     destroy: TSMPEG_FilterDestroy;
   end;
 
+{$IFNDEF MORPHOS}
+{* This part is a bit confusing in PowerSDL includes, fix later. KB *}
 { The null filter (default). It simply copies the source rectangle to the video overlay. }
 function SMPEGfilter_null: PSMPEG_Filter;
 cdecl; external {$IFDEF __GPC__}name 'SMPEGfilter_null'{$ELSE} SmpegLibName{$ENDIF __GPC__};
@@ -206,6 +214,7 @@ cdecl; external {$IFDEF __GPC__}name 'SMPEGfilter_bilinear'{$ELSE} SmpegLibName{
 { The deblocking filter. It filters block borders and non-intra coded blocks to reduce blockiness }
 function SMPEGfilter_deblocking: PSMPEG_Filter;
 cdecl; external {$IFDEF __GPC__}name 'SMPEGfilter_deblocking'{$ELSE} SmpegLibName{$ENDIF __GPC__};
+{$ENDIF}
 
 //------------------------------------------------------------------------------
 // SMPEG.h
@@ -269,6 +278,9 @@ type
   TSMPEG_DisplayCallback = function( dst: PSDL_Surface; x, y: Integer; w, h: Cardinal ): Pointer;
   {$ENDIF}
 
+{$IFDEF MORPHOS}
+{$INCLUDE powersdl_smpeg.inc}
+{$ELSE MORPHOS}
 
 { Create a new SMPEG object from an MPEG file.
   On return, if 'info' is not NULL, it will be filled with information
@@ -334,8 +346,6 @@ cdecl; external {$IFDEF __GPC__}name 'SMPEG_scaleXY'{$ELSE} SmpegLibName{$ENDIF
 procedure SMPEG_scale(mpeg: PSMPEG; scale: Integer);
 cdecl; external {$IFDEF __GPC__}name 'SMPEG_scale'{$ELSE} SmpegLibName{$ENDIF __GPC__};
 
-procedure SMPEG_Double(mpeg : PSMPEG; doubleit : Boolean );
-
 { Move the video display area within the destination surface }
 procedure SMPEG_move(mpeg: PSMPEG; x, y: Integer);
 cdecl; external {$IFDEF __GPC__}name 'SMPEG_move'{$ELSE} SmpegLibName{$ENDIF __GPC__};
@@ -407,10 +417,14 @@ cdecl; external {$IFDEF __GPC__}name 'SMPEG_wantedSpec'{$ELSE} SmpegLibName{$END
 procedure SMPEG_actualSpec(mpeg: PSMPEG; spec: PSDL_AudioSpec);
 cdecl; external {$IFDEF __GPC__}name 'SMPEG_actualSpec'{$ELSE} SmpegLibName{$ENDIF __GPC__};
 
+{$ENDIF MORPHOS}
+
 { This macro can be used to fill a version structure with the compile-time
   version of the SDL library. }
 procedure SMPEG_GETVERSION( var X : TSMPEG_version );
 
+procedure SMPEG_Double(mpeg : PSMPEG; doubleit : Boolean );
+
 implementation
 
 {$IFDEF __GPC__}