return surface;
}
-Bitmap *SDLGetBitmapFromSurface(SDL_Surface *surface)
+Bitmap *SDLGetBitmapFromSurface_WithMaskedColor(SDL_Surface *surface, int r, int g, int b)
{
int width = surface->w;
int height = surface->h;
if (!SDLHasAlpha(bitmap->surface_masked) &&
!SDLHasColorKey(bitmap->surface_masked))
SDL_SetColorKey(bitmap->surface_masked, SET_TRANSPARENT_PIXEL,
- SDL_MapRGB(bitmap->surface_masked->format, 0x00, 0x00, 0x00));
+ SDL_MapRGB(bitmap->surface_masked->format, r, g, b));
return bitmap;
}
+Bitmap *SDLGetBitmapFromSurface(SDL_Surface *surface)
+{
+ return SDLGetBitmapFromSurface_WithMaskedColor(surface, 0x00, 0x00, 0x00);
+}
+
static SDL_Texture *SDLCreateTextureFromSurface(SDL_Surface *surface)
{
if (program.headless)
return;
}
- if (Mix_OpenAudio(DEFAULT_AUDIO_SAMPLE_RATE, MIX_DEFAULT_FORMAT,
- AUDIO_NUM_CHANNELS_STEREO,
+ // set audio sample rate for mixer
+ audio.sample_rate = (setup.audio_sample_rate_44100 ? 44100 : 22050);
+
+ if (Mix_OpenAudio(audio.sample_rate, MIX_DEFAULT_FORMAT, AUDIO_NUM_CHANNELS_STEREO,
setup.system.audio_fragment_size) < 0)
{
Warn("Mix_OpenAudio() failed: %s", SDL_GetError());
SDL_QuitSubSystem(SDL_INIT_AUDIO);
}
+void SDLReopenAudio(void)
+{
+ SDLCloseAudio();
+ SDLOpenAudio();
+}
+
// ============================================================================
// event functions