Some patches to make SDL compile with armcc (ARM's C compiler).

This commit is contained in:
Ryan C. Gordon 2017-03-02 13:33:04 -05:00
parent 94a69443c7
commit d526b8a1e9
5 changed files with 15 additions and 6 deletions

View File

@ -111,7 +111,7 @@
#elif defined(_MSC_VER) || defined(__BORLANDC__) || \ #elif defined(_MSC_VER) || defined(__BORLANDC__) || \
defined(__DMC__) || defined(__SC__) || \ defined(__DMC__) || defined(__SC__) || \
defined(__WATCOMC__) || defined(__LCC__) || \ defined(__WATCOMC__) || defined(__LCC__) || \
defined(__DECC) defined(__DECC) || defined(__CC_ARM)
#define SDL_INLINE __inline #define SDL_INLINE __inline
#ifndef __inline__ #ifndef __inline__
#define __inline__ __inline #define __inline__ __inline

View File

@ -78,7 +78,7 @@ SDL_PrivateShouldInitSubsystem(Uint32 subsystem)
{ {
int subsystem_index = SDL_MostSignificantBitIndex32(subsystem); int subsystem_index = SDL_MostSignificantBitIndex32(subsystem);
SDL_assert(SDL_SubsystemRefCount[subsystem_index] < 255); SDL_assert(SDL_SubsystemRefCount[subsystem_index] < 255);
return (SDL_SubsystemRefCount[subsystem_index] == 0); return (SDL_SubsystemRefCount[subsystem_index] == 0) ? SDL_TRUE : SDL_FALSE;
} }
/* Private helper to check if a system needs to be quit. */ /* Private helper to check if a system needs to be quit. */
@ -92,7 +92,7 @@ SDL_PrivateShouldQuitSubsystem(Uint32 subsystem) {
/* If we're in SDL_Quit, we shut down every subsystem, even if refcount /* If we're in SDL_Quit, we shut down every subsystem, even if refcount
* isn't zero. * isn't zero.
*/ */
return SDL_SubsystemRefCount[subsystem_index] == 1 || SDL_bInMainQuit; return (SDL_SubsystemRefCount[subsystem_index] == 1 || SDL_bInMainQuit) ? SDL_TRUE : SDL_FALSE;
} }
void void

View File

@ -29,7 +29,7 @@
/* This is for a variable-length array at the end of a struct: /* This is for a variable-length array at the end of a struct:
struct x { int y; char z[SDL_VARIABLE_LENGTH_ARRAY]; }; struct x { int y; char z[SDL_VARIABLE_LENGTH_ARRAY]; };
Use this because GCC 2 needs different magic than other compilers. */ Use this because GCC 2 needs different magic than other compilers. */
#if (defined(__GNUC__) && (__GNUC__ <= 2)) #if (defined(__GNUC__) && (__GNUC__ <= 2)) || defined(__CC_ARM)
#define SDL_VARIABLE_LENGTH_ARRAY 1 #define SDL_VARIABLE_LENGTH_ARRAY 1
#else #else
#define SDL_VARIABLE_LENGTH_ARRAY #define SDL_VARIABLE_LENGTH_ARRAY

View File

@ -439,7 +439,10 @@ SDL_ResampleCVT_si16_c2(SDL_AudioCVT *cvt, SDL_AudioFormat format)
const int srclen = cvt->len_cvt; const int srclen = cvt->len_cvt;
Sint16 *dst = (Sint16 *) cvt->buf; Sint16 *dst = (Sint16 *) cvt->buf;
const int dstlen = (cvt->len * cvt->len_mult); const int dstlen = (cvt->len * cvt->len_mult);
Sint16 state[2] = { src[0], src[1] }; Sint16 state[2];
state[0] = src[0];
state[1] = src[1];
SDL_assert(format == AUDIO_S16SYS); SDL_assert(format == AUDIO_S16SYS);

View File

@ -206,8 +206,14 @@ RecursivelyCalculateShapeTree(SDL_WindowShapeMode mode,SDL_Surface* mask,SDL_Rec
SDL_ShapeTree* SDL_ShapeTree*
SDL_CalculateShapeTree(SDL_WindowShapeMode mode,SDL_Surface* shape) SDL_CalculateShapeTree(SDL_WindowShapeMode mode,SDL_Surface* shape)
{ {
SDL_Rect dimensions = {0,0,shape->w,shape->h}; SDL_Rect dimensions;
SDL_ShapeTree* result = NULL; SDL_ShapeTree* result = NULL;
dimensions.x = 0;
dimensions.y = 0;
dimensions.w = shape->w;
dimensions.h = shape->h;
if(SDL_MUSTLOCK(shape)) if(SDL_MUSTLOCK(shape))
SDL_LockSurface(shape); SDL_LockSurface(shape);
result = RecursivelyCalculateShapeTree(mode,shape,dimensions); result = RecursivelyCalculateShapeTree(mode,shape,dimensions);