+ adapted SDL package to user PowerSDL headers on MorphOS.

git-svn-id: trunk@16205 -
This commit is contained in:
Károly Balogh 2010-10-23 12:35:49 +00:00
parent 56913ebf91
commit 2d9d71e976
6 changed files with 111 additions and 4 deletions

View File

@ -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.

View File

@ -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 );

View File

@ -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 );

View File

@ -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;

View File

@ -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 );

View File

@ -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__}