mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-13 17:59:27 +02:00
+ adapted SDL package to user PowerSDL headers on MorphOS.
git-svn-id: trunk@16205 -
This commit is contained in:
parent
56913ebf91
commit
2d9d71e976
@ -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.
|
@ -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 );
|
||||
|
||||
|
@ -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 );
|
||||
|
||||
|
@ -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;
|
||||
|
@ -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 );
|
||||
|
||||
|
@ -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__}
|
||||
|
Loading…
Reference in New Issue
Block a user