Simple Directmedia Layer
Go to file
Sam Lantinga 9fff05f8d6 Fixed bug 3352 - Adding alpha mask support to SDL_SaveBMP_RW
Simon Hug

The current SDL_SaveBMP_RW function that saves surfaces to a BMP uses an old bitmap header which doesn't officially support alpha channels. Applications just ignore the byte where the alpha is stored. This can easily be extended by using a newer header version and setting the alpha mask.

The attached patch has these changes:

- Extending the description of the function in the SDL_surface.h header with the supported formats.
- Refining when surfaces get stored to a 32-bit BMP. (Must have bit depth of 8 or higher and must have an alpha mask or colorkey.)
- Fixing a small bug that saves 24-bit BGR surfaces with a colorkey in a 24-bit BMP.
- Adding code that switches to the bitmap header version 4 if the surface has an alpha mask or colorkey. (I chose version 4 because Microsoft didn't lose its documentation behind a file cabinet like they did with version 3.)
- Adding a hint that can disable the use of the version 4 header. This is for people that need the legacy header or like the old behavior better. (I'm not sure about the hint name, though. May need changing if there are any rules to that.)
2016-10-01 11:29:13 -07:00
acinclude Fixed crash if initialization of EGL failed but was tried again later. 2015-06-21 17:33:46 +02:00
android-project Commit KEYCODE_SPACE as text input on Android 2016-07-04 10:39:32 -04:00
build-scripts emscripten-buildbot.sh: exit with an error if configure/make fail. 2016-09-06 12:18:52 -04:00
cmake Fix CMake CMAKE_REQUIRED_FLAGS handling to preserve existing CMake flags required by Emscripten toolchain. 2016-09-13 00:03:50 -07:00
debian Replaced SDL_qsort with public domain code from PDCLib: http://pdclib.e43.eu/ 2016-02-15 03:16:46 -05:00
docs Updated Linux notes on building with Mir and Wayland support. 2016-09-29 12:04:07 -04:00
include Fixed bug 3352 - Adding alpha mask support to SDL_SaveBMP_RW 2016-10-01 11:29:13 -07:00
premake Enable SDL_LoadObject on iOS 8+ and tvOS. 2016-09-25 15:02:06 -03:00
src Fixed bug 3352 - Adding alpha mask support to SDL_SaveBMP_RW 2016-10-01 11:29:13 -07:00
test Fixed compiling of three test programs with C++. 2016-09-21 23:06:38 +02:00
VisualC audio: Removed internal SDL_audiomem.h and macros. 2016-08-05 01:44:15 -04:00
VisualC-WinRT Merge audio capture work back into the mainline. 2016-08-28 13:36:13 -04:00
visualtest Fixed crash if initialization of EGL failed but was tried again later. 2015-06-21 17:33:46 +02:00
Xcode Updated version to 2.0.5 in preparation for release 2016-09-28 22:24:01 -07:00
Xcode-iOS iOS: Removed unused constant in demo. 2016-09-30 23:31:24 +02:00
.hgignore audio: Initial bits to enable audio capture support. 2016-08-01 00:18:56 -04:00
Android.mk Fixed crash if initialization of EGL failed but was tried again later. 2015-06-21 17:33:46 +02:00
autogen.sh Fix running autogen.sh out-of-tree 2016-10-01 10:39:03 -07:00
BUGS.txt BUGS.txt: Bugzilla supports SSL; changed link to https:// ... 2016-08-01 13:36:43 -04:00
cmake_uninstall.cmake.in Fixed crash if initialization of EGL failed but was tried again later. 2015-06-21 17:33:46 +02:00
CMakeLists.txt Updated version to 2.0.5 in preparation for release 2016-09-28 22:24:01 -07:00
configure Updated version to 2.0.5 in preparation for release 2016-09-28 22:24:01 -07:00
configure.in Updated version to 2.0.5 in preparation for release 2016-09-28 22:24:01 -07:00
COPYING.txt Updated copyright to 2016 2016-01-02 10:10:34 -08:00
CREDITS.txt Fixed crash if initialization of EGL failed but was tried again later. 2015-06-21 17:33:46 +02:00
INSTALL.txt Fixed crash if initialization of EGL failed but was tried again later. 2015-06-21 17:33:46 +02:00
Makefile.in wayland: Build own version of core protocol 2016-06-23 18:39:05 +08:00
Makefile.minimal Fixed crash if initialization of EGL failed but was tried again later. 2015-06-21 17:33:46 +02:00
Makefile.pandora Pandora: Fixed referring to no more existing atomic source file in Makefile. 2016-07-19 21:01:13 +02:00
Makefile.psp PSP: Added missing object for generic TLS to Makefile. 2016-02-13 17:34:14 +01:00
Makefile.wiz Pandora: Updated SDL version in Makefile. 2016-07-19 21:01:30 +02:00
README-SDL.txt Another commit to test revision control. 2016-03-08 20:26:26 -05:00
README.txt Fixed crash if initialization of EGL failed but was tried again later. 2015-06-21 17:33:46 +02:00
sdl2-config.cmake.in Fixed typo in sdl2-config.cmake.in (thanks, Rafal!). 2015-12-28 23:29:11 -05:00
sdl2-config.in Fixed crash if initialization of EGL failed but was tried again later. 2015-06-21 17:33:46 +02:00
sdl2.m4 Fixed bug 3429 - Update AM_PATH_SDL2() to also check for SDL2.framework 2016-09-29 16:37:08 -07:00
sdl2.pc.in Fixed crash if initialization of EGL failed but was tried again later. 2015-06-21 17:33:46 +02:00
SDL2.spec.in Fixed crash if initialization of EGL failed but was tried again later. 2015-06-21 17:33:46 +02:00
TODO.txt Fixed crash if initialization of EGL failed but was tried again later. 2015-06-21 17:33:46 +02:00
VisualC.html Fixed two typos in documentation. 2016-01-12 22:23:53 +01:00
WhatsNew.txt Updated some header comments and iOS documentation to better clarify high-dpi / retina support and screen-coordinate sizes versus pixel sizes. 2015-12-31 21:16:43 -04:00

                         Simple DirectMedia Layer

                                  (SDL)

                                Version 2.0

---
http://www.libsdl.org/

Simple DirectMedia Layer is a cross-platform development library designed
to provide low level access to audio, keyboard, mouse, joystick, and graphics
hardware via OpenGL and Direct3D. It is used by video playback software,
emulators, and popular games including Valve's award winning catalog
and many Humble Bundle games.

More extensive documentation is available in the docs directory, starting
with README.md

Enjoy!
	Sam Lantinga				(slouken@libsdl.org)