I notice in the very latest source code that a few #defines have been added to reduce footprint for static builds. One is SDL_VIDEO_RENDER_SW, which I’m excited about. Excluding the software renderer for Android builds will help reduce the APK size.
Two questions:
How do we use them? I’m a bit ignorant to how this works. I added -USDL_VIDEO_RENDER_SW
to ‘APP_CFLAGS’, but it didn’t seem to work.
Are there more defines like this? How can we find out what they are and what they do?
Thanks in advance
1 Like
Hi,
This is recent and may change.
Currently, you need need to manually edit the file and replace ‘1’ by ‘0’, so that modules gets compiled out.
In order to see a real change in size, you need to statically link to SDL2 library, so that the linker prune every unused function in the end.
(SDL2 library can be built with PREBUILT_STATIC_LIBRARY or BUILD_STATIC_LIBRARY)
RENDER_SW is some part of the renderer software, not used elsewhere. (mostly blend_line/point function).
BLIT_0/1/N/A/AUTO are the software blitting function which are also shared with the software rendered, but which can be used while using the Blit surface functions.
RLE is some run-lenght-encoding function.
YUV is for the YUV Blit functions
Some doc added: https://hg.libsdl.org/SDL/rev/fe0c632448f0
Hope it helps
1 Like
I’ve just tried the recently added #define SDL_LEAN_AND_MEAN
and it works really well! on Android. I’m very pleased with this feature, thank you for adding it.
arm64-v8a libs 298,056 bytes smaller!
armeabi-v7a libs 260,680 bytes smaller!
1 Like