Skip to content

Commit

Permalink
Added a single SDL_LEAN_AND_MEAN define to turn on minimal SDL builds
Browse files Browse the repository at this point in the history
Protected more code with #ifdefs to reduce the size of minimal shared library builds
  • Loading branch information
slouken committed Jan 23, 2020
1 parent b1c6e7c commit b5e3d26
Show file tree
Hide file tree
Showing 21 changed files with 108 additions and 21 deletions.
39 changes: 30 additions & 9 deletions src/SDL_internal.h
Expand Up @@ -54,46 +54,67 @@
/* A few #defines to reduce SDL2 footprint.
Only effective when library is statically linked.
You have to manually edit this file. */
#ifndef SDL_LEAN_AND_MEAN
#define SDL_LEAN_AND_MEAN 1
#endif

/* Optimized functions from 'SDL_blit_0.c'
- blit with source BitsPerPixel < 8, palette */
#define SDL_HAVE_BLIT_0 1
#ifndef SDL_HAVE_BLIT_0
#define SDL_HAVE_BLIT_0 !SDL_LEAN_AND_MEAN
#endif

/* Optimized functions from 'SDL_blit_1.c'
- blit with source BytesPerPixel == 1, palette */
#define SDL_HAVE_BLIT_1 1
#ifndef SDL_HAVE_BLIT_1
#define SDL_HAVE_BLIT_1 !SDL_LEAN_AND_MEAN
#endif

/* Optimized functions from 'SDL_blit_A.c'
- blit with 'SDL_BLENDMODE_BLEND' blending mode */
#define SDL_HAVE_BLIT_A 1
#ifndef SDL_HAVE_BLIT_A
#define SDL_HAVE_BLIT_A !SDL_LEAN_AND_MEAN
#endif

/* Optimized functions from 'SDL_blit_N.c'
- blit with COLORKEY mode, or nothing */
#define SDL_HAVE_BLIT_N 1
#ifndef SDL_HAVE_BLIT_N
#define SDL_HAVE_BLIT_N !SDL_LEAN_AND_MEAN
#endif

/* Optimized functions from 'SDL_blit_N.c'
- RGB565 conversion with Lookup tables */
#define SDL_HAVE_BLIT_N_RGB565 1
#ifndef SDL_HAVE_BLIT_N_RGB565
#define SDL_HAVE_BLIT_N_RGB565 !SDL_LEAN_AND_MEAN
#endif

/* Optimized functions from 'SDL_blit_AUTO.c'
- blit with modulate color, modulate alpha, any blending mode
- scaling or not */
#define SDL_HAVE_BLIT_AUTO 1
#ifndef SDL_HAVE_BLIT_AUTO
#define SDL_HAVE_BLIT_AUTO !SDL_LEAN_AND_MEAN
#endif

/* Run-Length-Encoding
- SDL_SetColorKey() called with SDL_RLEACCEL flag */
#define SDL_HAVE_RLE 1
#ifndef SDL_HAVE_RLE
#define SDL_HAVE_RLE !SDL_LEAN_AND_MEAN
#endif

/* Software SDL_Renderer
- creation of software renderer
- *not* general blitting functions
- {blend,draw}{fillrect,line,point} internal functions */
#define SDL_VIDEO_RENDER_SW 1
#ifndef SDL_VIDEO_RENDER_SW
#define SDL_VIDEO_RENDER_SW !SDL_LEAN_AND_MEAN
#endif

/* YUV formats
- handling of YUV surfaces
- blitting and conversion functions */
#define SDL_HAVE_YUV 1
#ifndef SDL_HAVE_YUV
#define SDL_HAVE_YUV !SDL_LEAN_AND_MEAN
#endif

#endif /* SDL_internal_h_ */

Expand Down
8 changes: 8 additions & 0 deletions src/render/SDL_render.c
Expand Up @@ -1426,6 +1426,7 @@ SDL_GetTextureScaleMode(SDL_Texture * texture, SDL_ScaleMode *scaleMode)
return 0;
}

#if SDL_HAVE_YUV
static int
SDL_UpdateTextureYUV(SDL_Texture * texture, const SDL_Rect * rect,
const void *pixels, int pitch)
Expand Down Expand Up @@ -1471,6 +1472,7 @@ SDL_UpdateTextureYUV(SDL_Texture * texture, const SDL_Rect * rect,
}
return 0;
}
#endif /* SDL_HAVE_YUV */

static int
SDL_UpdateTextureNative(SDL_Texture * texture, const SDL_Rect * rect,
Expand Down Expand Up @@ -1553,6 +1555,7 @@ SDL_UpdateTexture(SDL_Texture * texture, const SDL_Rect * rect,
}
}

#if SDL_HAVE_YUV
static int
SDL_UpdateTextureYUVPlanar(SDL_Texture * texture, const SDL_Rect * rect,
const Uint8 *Yplane, int Ypitch,
Expand Down Expand Up @@ -1604,6 +1607,7 @@ SDL_UpdateTextureYUVPlanar(SDL_Texture * texture, const SDL_Rect * rect,
}
return 0;
}
#endif /* SDL_HAVE_YUV */

int SDL_UpdateYUVTexture(SDL_Texture * texture, const SDL_Rect * rect,
const Uint8 *Yplane, int Ypitch,
Expand Down Expand Up @@ -1672,12 +1676,14 @@ int SDL_UpdateYUVTexture(SDL_Texture * texture, const SDL_Rect * rect,
#endif
}

#if SDL_HAVE_YUV
static int
SDL_LockTextureYUV(SDL_Texture * texture, const SDL_Rect * rect,
void **pixels, int *pitch)
{
return SDL_SW_LockYUVTexture(texture->yuv, rect, pixels, pitch);
}
#endif /* SDL_HAVE_YUV */

static int
SDL_LockTextureNative(SDL_Texture * texture, const SDL_Rect * rect,
Expand Down Expand Up @@ -1767,6 +1773,7 @@ SDL_LockTextureToSurface(SDL_Texture *texture, const SDL_Rect *rect,
return 0;
}

#if SDL_HAVE_YUV
static void
SDL_UnlockTextureYUV(SDL_Texture * texture)
{
Expand All @@ -1787,6 +1794,7 @@ SDL_UnlockTextureYUV(SDL_Texture * texture)
rect.w, rect.h, native_pixels, native_pitch);
SDL_UnlockTexture(native);
}
#endif /* SDL_HAVE_YUV */

static void
SDL_UnlockTextureNative(SDL_Texture * texture)
Expand Down
4 changes: 4 additions & 0 deletions src/render/SDL_yuv_sw.c
Expand Up @@ -22,6 +22,8 @@

/* This is the software implementation of the YUV texture support */

#if SDL_HAVE_YUV

#include "SDL_assert.h"

#include "SDL_yuv_sw_c.h"
Expand Down Expand Up @@ -411,4 +413,6 @@ SDL_SW_DestroyYUVTexture(SDL_SW_YUVTexture * swdata)
}
}

#endif /* SDL_HAVE_YUV */

/* vi: set ts=4 sw=4 expandtab: */
4 changes: 2 additions & 2 deletions src/render/software/SDL_blendfillrect.c
Expand Up @@ -20,7 +20,7 @@
*/
#include "../../SDL_internal.h"

#if !SDL_RENDER_DISABLED
#if SDL_VIDEO_RENDER_SW && !SDL_RENDER_DISABLED

#include "SDL_draw.h"
#include "SDL_blendfillrect.h"
Expand Down Expand Up @@ -352,6 +352,6 @@ SDL_BlendFillRects(SDL_Surface * dst, const SDL_Rect * rects, int count,
return status;
}

#endif /* !SDL_RENDER_DISABLED */
#endif /* SDL_VIDEO_RENDER_SW && !SDL_RENDER_DISABLED */

/* vi: set ts=4 sw=4 expandtab: */
4 changes: 2 additions & 2 deletions src/render/software/SDL_blendline.c
Expand Up @@ -20,7 +20,7 @@
*/
#include "../../SDL_internal.h"

#if !SDL_RENDER_DISABLED
#if SDL_VIDEO_RENDER_SW && !SDL_RENDER_DISABLED

#include "SDL_draw.h"
#include "SDL_blendline.h"
Expand Down Expand Up @@ -870,6 +870,6 @@ SDL_BlendLines(SDL_Surface * dst, const SDL_Point * points, int count,
return 0;
}

#endif /* !SDL_RENDER_DISABLED */
#endif /* SDL_VIDEO_RENDER_SW && !SDL_RENDER_DISABLED */

/* vi: set ts=4 sw=4 expandtab: */
4 changes: 2 additions & 2 deletions src/render/software/SDL_blendpoint.c
Expand Up @@ -20,7 +20,7 @@
*/
#include "../../SDL_internal.h"

#if !SDL_RENDER_DISABLED
#if SDL_VIDEO_RENDER_SW && !SDL_RENDER_DISABLED

#include "SDL_draw.h"
#include "SDL_blendpoint.h"
Expand Down Expand Up @@ -357,6 +357,6 @@ SDL_BlendPoints(SDL_Surface * dst, const SDL_Point * points, int count,
return status;
}

#endif /* !SDL_RENDER_DISABLED */
#endif /* SDL_VIDEO_RENDER_SW && !SDL_RENDER_DISABLED */

/* vi: set ts=4 sw=4 expandtab: */
4 changes: 2 additions & 2 deletions src/render/software/SDL_drawline.c
Expand Up @@ -20,7 +20,7 @@
*/
#include "../../SDL_internal.h"

#if !SDL_RENDER_DISABLED
#if SDL_VIDEO_RENDER_SW && !SDL_RENDER_DISABLED

#include "SDL_draw.h"
#include "SDL_drawline.h"
Expand Down Expand Up @@ -204,6 +204,6 @@ SDL_DrawLines(SDL_Surface * dst, const SDL_Point * points, int count,
return 0;
}

#endif /* !SDL_RENDER_DISABLED */
#endif /* SDL_VIDEO_RENDER_SW && !SDL_RENDER_DISABLED */

/* vi: set ts=4 sw=4 expandtab: */
4 changes: 2 additions & 2 deletions src/render/software/SDL_drawpoint.c
Expand Up @@ -20,7 +20,7 @@
*/
#include "../../SDL_internal.h"

#if !SDL_RENDER_DISABLED
#if SDL_VIDEO_RENDER_SW && !SDL_RENDER_DISABLED

#include "SDL_draw.h"
#include "SDL_drawpoint.h"
Expand Down Expand Up @@ -109,6 +109,6 @@ SDL_DrawPoints(SDL_Surface * dst, const SDL_Point * points, int count,
return 0;
}

#endif /* !SDL_RENDER_DISABLED */
#endif /* SDL_VIDEO_RENDER_SW && !SDL_RENDER_DISABLED */

/* vi: set ts=4 sw=4 expandtab: */
4 changes: 2 additions & 2 deletions src/render/software/SDL_render_sw.c
Expand Up @@ -20,7 +20,7 @@
*/
#include "../../SDL_internal.h"

#if !SDL_RENDER_DISABLED
#if SDL_VIDEO_RENDER_SW && !SDL_RENDER_DISABLED

#include "../SDL_sysrender.h"
#include "SDL_render_sw_c.h"
Expand Down Expand Up @@ -889,6 +889,6 @@ SDL_RenderDriver SW_RenderDriver = {
0}
};

#endif /* !SDL_RENDER_DISABLED */
#endif /* SDL_VIDEO_RENDER_SW && !SDL_RENDER_DISABLED */

/* vi: set ts=4 sw=4 expandtab: */
4 changes: 4 additions & 0 deletions src/render/software/SDL_rotate.c
Expand Up @@ -30,6 +30,8 @@ Andreas Schiffler -- aschiffler at ferzkopp dot net
*/
#include "../../SDL_internal.h"

#if SDL_VIDEO_RENDER_SW && !SDL_RENDER_DISABLED

#if defined(__WIN32__)
#include "../../core/windows/SDL_windows.h"
#endif
Expand Down Expand Up @@ -532,3 +534,5 @@ SDLgfx_rotateSurface(SDL_Surface * src, double angle, int centerx, int centery,
/* Return rotated surface */
return rz_dst;
}

#endif /* SDL_VIDEO_RENDER_SW && !SDL_RENDER_DISABLED */
4 changes: 4 additions & 0 deletions src/video/SDL_RLEaccel.c
Expand Up @@ -20,6 +20,8 @@
*/
#include "../SDL_internal.h"

#if SDL_HAVE_RLE

/*
* RLE encoding for software colorkey and alpha-channel acceleration
*
Expand Down Expand Up @@ -1584,4 +1586,6 @@ SDL_UnRLESurface(SDL_Surface * surface, int recode)
}
}

#endif /* SDL_HAVE_RLE */

/* vi: set ts=4 sw=4 expandtab: */
3 changes: 3 additions & 0 deletions src/video/SDL_blit.c
Expand Up @@ -99,6 +99,8 @@ SDL_SoftBlit(SDL_Surface * src, SDL_Rect * srcrect,
return (okay ? 0 : -1);
}

#if SDL_HAVE_BLIT_AUTO

#ifdef __MACOSX__
#include <sys/sysctl.h>

Expand Down Expand Up @@ -187,6 +189,7 @@ SDL_ChooseBlitFunc(Uint32 src_format, Uint32 dst_format, int flags,
}
return NULL;
}
#endif /* SDL_HAVE_BLIT_AUTO */

/* Figure out which of many blit routines to set up on a surface */
int
Expand Down
4 changes: 4 additions & 0 deletions src/video/SDL_blit_0.c
Expand Up @@ -20,6 +20,8 @@
*/
#include "../SDL_internal.h"

#if SDL_HAVE_BLIT_0

#include "SDL_video.h"
#include "SDL_blit.h"

Expand Down Expand Up @@ -480,4 +482,6 @@ SDL_CalculateBlit0(SDL_Surface * surface)
return (SDL_BlitFunc) NULL;
}

#endif /* SDL_HAVE_BLIT_0 */

/* vi: set ts=4 sw=4 expandtab: */
4 changes: 4 additions & 0 deletions src/video/SDL_blit_1.c
Expand Up @@ -20,6 +20,8 @@
*/
#include "../SDL_internal.h"

#if SDL_HAVE_BLIT_1

#include "SDL_video.h"
#include "SDL_blit.h"
#include "SDL_sysvideo.h"
Expand Down Expand Up @@ -549,4 +551,6 @@ SDL_CalculateBlit1(SDL_Surface * surface)
return (SDL_BlitFunc) NULL;
}

#endif /* SDL_HAVE_BLIT_1 */

/* vi: set ts=4 sw=4 expandtab: */
4 changes: 4 additions & 0 deletions src/video/SDL_blit_A.c
Expand Up @@ -20,6 +20,8 @@
*/
#include "../SDL_internal.h"

#if SDL_HAVE_BLIT_A

#include "SDL_video.h"
#include "SDL_blit.h"

Expand Down Expand Up @@ -1489,4 +1491,6 @@ SDL_CalculateBlitA(SDL_Surface * surface)
return NULL;
}

#endif /* SDL_HAVE_BLIT_A */

/* vi: set ts=4 sw=4 expandtab: */
8 changes: 8 additions & 0 deletions src/video/SDL_blit_N.c
Expand Up @@ -20,6 +20,8 @@
*/
#include "../SDL_internal.h"

#if SDL_HAVE_BLIT_N

#include "SDL_video.h"
#include "SDL_endian.h"
#include "SDL_cpuinfo.h"
Expand Down Expand Up @@ -1450,6 +1452,8 @@ Blit_RGB888_RGB565(SDL_BlitInfo * info)
}


#if SDL_HAVE_BLIT_N_RGB565

/* Special optimized blit for RGB 5-6-5 --> 32-bit RGB surfaces */
#define RGB565_32(dst, src, map) (map[src[LO]*2] + map[src[HI]*2+1])
static void
Expand Down Expand Up @@ -2068,6 +2072,8 @@ Blit_RGB565_BGRA8888(SDL_BlitInfo * info)
Blit_RGB565_32(info, RGB565_BGRA8888_LUT);
}

#endif /* SDL_HAVE_BLIT_N_RGB565 */

static void
BlitNto1(SDL_BlitInfo * info)
{
Expand Down Expand Up @@ -3461,4 +3467,6 @@ SDL_CalculateBlitN(SDL_Surface * surface)
return NULL;
}

#endif /* SDL_HAVE_BLIT_N */

/* vi: set ts=4 sw=4 expandtab: */

0 comments on commit b5e3d26

Please sign in to comment.