diff --git a/media-libs/libmikmod/libmikmod-3.3.3.recipe b/media-libs/libmikmod/libmikmod-3.3.3.recipe index 778d62c29..3840f27ed 100644 --- a/media-libs/libmikmod/libmikmod-3.3.3.recipe +++ b/media-libs/libmikmod/libmikmod-3.3.3.recipe @@ -20,6 +20,7 @@ PROVIDES=" REQUIRES=" haiku${secondaryArchSuffix} lib:libsdl$secondaryArchSuffix + lib:libGL$secondaryArchSuffix " BUILD_REQUIRES=" diff --git a/media-libs/libsdl/libsdl-1.2.15.recipe b/media-libs/libsdl/libsdl-1.2.15.recipe index 8c6e5657e..5c54fa62b 100644 --- a/media-libs/libsdl/libsdl-1.2.15.recipe +++ b/media-libs/libsdl/libsdl-1.2.15.recipe @@ -7,13 +7,14 @@ OpenGL. HOMEPAGE="http://www.libsdl.org/" SRC_URI="http://www.libsdl.org/release/SDL-1.2.15.tar.gz" CHECKSUM_MD5="9d96df8417572a2afb781a7c4c811a85" -REVISION="3" +REVISION="4" LICENSE="GNU LGPL v2.1" COPYRIGHT="1997-2012 Sam Lantinga" ARCHITECTURES="x86_gcc2 x86 x86_64" SECONDARY_ARCHITECTURES="x86_gcc2 x86" +PATCHES="libsdl-1.2.15.patchset" PROVIDES=" libsdl$secondaryArchSuffix = $portVersion lib:libSDL$secondaryArchSuffix = 1.2_0.11.4 compat >= 1.2_0 @@ -161,4 +162,5 @@ PROVIDES_devel=" REQUIRES_devel=" libsdl${secondaryArchSuffix} == $portVersion base + devel:libGL$secondaryArchSuffix " diff --git a/media-libs/libsdl/patches/libsdl_x86-1.2.15.patchset b/media-libs/libsdl/patches/libsdl_x86-1.2.15.patchset new file mode 100644 index 000000000..fa82bad92 --- /dev/null +++ b/media-libs/libsdl/patches/libsdl_x86-1.2.15.patchset @@ -0,0 +1,249 @@ +From ca09de99c346e44cdd1f578848b4958067b5fb06 Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +Date: Fri, 22 Nov 2013 23:38:56 +0100 +Subject: Remove Alsa and ESD detection + +These will fail on Haiku, and we don't need them anyway. + +diff --git a/configure.in b/configure.in +index 08c8e1e..84d9a55 100644 +--- a/configure.in ++++ b/configure.in +@@ -361,7 +361,7 @@ CheckALSA() + AC_HELP_STRING([--enable-alsa], [support the ALSA audio API [[default=yes]]]), + , enable_alsa=yes) + if test x$enable_audio = xyes -a x$enable_alsa = xyes; then +- AM_PATH_ALSA(0.9.0, have_alsa=yes, have_alsa=no) ++ have_alsa=no + # Restore all flags from before the ALSA detection runs + CFLAGS="$alsa_save_CFLAGS" + LDFLAGS="$alsa_save_LDFLAGS" +@@ -460,7 +460,7 @@ CheckESD() + AC_HELP_STRING([--enable-esd], [support the Enlightened Sound Daemon [[default=yes]]]), + , enable_esd=yes) + if test x$enable_audio = xyes -a x$enable_esd = xyes; then +- AM_PATH_ESD(0.2.8, have_esd=yes, have_esd=no) ++ have_esd=no + if test x$have_esd = xyes; then + AC_ARG_ENABLE(esd-shared, + AC_HELP_STRING([--enable-esd-shared], [dynamically load ESD audio support [[default=yes]]]), +@@ -2963,3 +2963,4 @@ AC_OUTPUT([ + : >build-deps + if test x"$MAKE" = x; then MAKE=make; fi; $MAKE depend + ]) ++AC_CONFIG_MACRO_DIR([acinclude]) +-- +1.8.3.4 + + +From 735586f7d0600476b0b02206daa76926193da957 Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +Date: Fri, 22 Nov 2013 23:39:26 +0100 +Subject: Fix samples vs bytes issues + +This was particularly noticeable in Milkytracker (SDL version) and +Hivelytracker, where all the audio timing relies on the buffer being +played during the right time. + +diff --git a/src/audio/baudio/SDL_beaudio.cc b/src/audio/baudio/SDL_beaudio.cc +index de635f8..7faf571 100644 +--- a/src/audio/baudio/SDL_beaudio.cc ++++ b/src/audio/baudio/SDL_beaudio.cc +@@ -199,11 +199,11 @@ int BE_OpenAudio(_THIS, SDL_AudioSpec *spec) + return (-1); + } + +- format.buffer_size = spec->samples; +- + /* Calculate the final parameters for this audio specification */ + SDL_CalculateAudioSpec(spec); + ++ format.buffer_size = spec->samples; ++ + /* Subscribe to the audio stream (creates a new thread) */ + { sigset_t omask; + SDL_MaskSignals(&omask); +-- +1.8.3.4 + + +From 164201f49d1310bdd229feaf33c1f0e988a89f49 Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +Date: Fri, 22 Nov 2013 23:40:12 +0100 +Subject: Various fixes to the video code + +* Do not center the window each time it is resized +* Do not reset video mode if we didn't enter fullscreen +* remove annoying debug print + +diff --git a/src/video/bwindow/SDL_sysvideo.cc b/src/video/bwindow/SDL_sysvideo.cc +index c32b661..a26f18b 100644 +--- a/src/video/bwindow/SDL_sysvideo.cc ++++ b/src/video/bwindow/SDL_sysvideo.cc +@@ -406,6 +406,7 @@ static int BE_SetFullScreen(_THIS, SDL_Surface *screen, int fullscreen) + { + // printf("SetFullScreen(%d)\n", fullscreen); + BScreen bscreen; ++ static bool firstTime = true; + + // SetFullSscreen() does not work as expected if called in a window + // that was never shown. This is probably a bug in the Haiku Game Kit that needs +@@ -425,6 +426,8 @@ static int BE_SetFullScreen(_THIS, SDL_Surface *screen, int fullscreen) + int width = screen->w; + int height = screen->h; + ++ bool wasFullScreen = SDL_Win->IsFullScreen(); ++ + if (fullscreen) { + // Set resolution to the closest available one that matches the + // current SDL resolution. +@@ -444,7 +447,8 @@ static int BE_SetFullScreen(_THIS, SDL_Surface *screen, int fullscreen) + } else { + // Reset to the previous known resolution as we are now in window + // mode. +- bscreen.SetMode(&saved_mode); ++ if(wasFullScreen) ++ bscreen.SetMode(&saved_mode); + } + + // Effectivelly set/reset full screen mode. If we are already in +@@ -456,14 +460,6 @@ static int BE_SetFullScreen(_THIS, SDL_Surface *screen, int fullscreen) + // printf("Going windowed\n"); + SDL_Win->SetFullScreen(fullscreen); + +- // Calculate offsets for centering the window (in window mode) and for +- // dentering the bitmap (in full screen mode). +- BRect bounds = bscreen.Frame(); +- bounds.PrintToStream(); +- int32 cx = (bounds.IntegerWidth() - width)/2; +- int32 cy = (bounds.IntegerHeight() - height)/2; +- +- // printf ("cx = %d, cy = %d\n", cx, cy); + if (!SDL_Win->IsFullScreen()) { + // printf("Doing not fullscreen stuff.\n"); + // We are not in full screen mode, so we want to change the window +@@ -471,10 +467,18 @@ static int BE_SetFullScreen(_THIS, SDL_Surface *screen, int fullscreen) + SDL_Win->ResizeTo(width, height); + + // And also center the window and reset the drawing offset. +- SDL_Win->MoveTo(cx, cy); ++ if(firstTime || wasFullScreen) { ++ SDL_Win->CenterOnScreen(); ++ firstTime = false; ++ } + SDL_Win->SetXYOffset(0, 0); + } else { +- // printf("Doing fullscreen stuff."); ++ // Calculate offsets for centering the bitmap. ++ ++ BRect bounds = bscreen.Frame(); ++ int cx = (bounds.Width() - width) / 2; ++ int cy = (bounds.Height() - height) / 2; ++ + // Center the bitmap whenever we are in full screen mode. + SDL_Win->SetXYOffset(cx, cy); + } +-- +1.8.3.4 + + +From ae129e6505148189a3d73fc085f20e214c0d6446 Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +Date: Sat, 23 Nov 2013 11:59:00 +0100 +Subject: Actually fix the sample vs bytes problem in audio driver. + + +diff --git a/src/audio/baudio/SDL_beaudio.cc b/src/audio/baudio/SDL_beaudio.cc +index 7faf571..300bf03 100644 +--- a/src/audio/baudio/SDL_beaudio.cc ++++ b/src/audio/baudio/SDL_beaudio.cc +@@ -161,25 +161,30 @@ int BE_OpenAudio(_THIS, SDL_AudioSpec *spec) + format.byte_order = B_MEDIA_LITTLE_ENDIAN; + format.frame_rate = (float) spec->freq; + format.channel_count = spec->channels; /* !!! FIXME: support > 2? */ ++ int samplesize = 1; + while ((!valid_datatype) && (test_format)) { + valid_datatype = 1; + spec->format = test_format; + switch (test_format) { + case AUDIO_S8: + format.format = media_raw_audio_format::B_AUDIO_CHAR; ++ samplesize = 1; + break; + + case AUDIO_U8: + format.format = media_raw_audio_format::B_AUDIO_UCHAR; ++ samplesize = 1; + break; + + case AUDIO_S16LSB: + format.format = media_raw_audio_format::B_AUDIO_SHORT; ++ samplesize = 2; + break; + + case AUDIO_S16MSB: + format.format = media_raw_audio_format::B_AUDIO_SHORT; + format.byte_order = B_MEDIA_BIG_ENDIAN; ++ samplesize = 2; + break; + + default: +@@ -202,7 +207,7 @@ int BE_OpenAudio(_THIS, SDL_AudioSpec *spec) + /* Calculate the final parameters for this audio specification */ + SDL_CalculateAudioSpec(spec); + +- format.buffer_size = spec->samples; ++ format.buffer_size = spec->samples * spec->channels * samplesize; + + /* Subscribe to the audio stream (creates a new thread) */ + { sigset_t omask; +-- +1.8.3.4 + + +From 9b20d4dc8a3f5d607623b5d8b2c4ce14e830f4c8 Mon Sep 17 00:00:00 2001 +From: Chris Roberts +Date: Sun, 22 Dec 2013 18:37:30 -0700 +Subject: Remove Haiku from specialized DECLSPEC definition + + +diff --git a/include/begin_code.h b/include/begin_code.h +index 27e2f7b..d5e2f1f 100644 +--- a/include/begin_code.h ++++ b/include/begin_code.h +@@ -41,7 +41,7 @@ + * Some compilers use a special export keyword + */ + #ifndef DECLSPEC +-# if defined(__BEOS__) || defined(__HAIKU__) ++# if defined(__BEOS__) + # if defined(__GNUC__) + # define DECLSPEC + # else +-- +1.8.3.4 + + +From 09ba1fa7eccef32323c9987bdd4742bca6e9dfbc Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +Date: Sun, 5 Jan 2014 17:22:10 +0100 +Subject: Change prefix from "be" to "os" for OpenGL includes + +Accomodate the new OpenGL kit that doesn't have the "be" symlink. + +diff --git a/src/video/bwindow/SDL_BWin.h b/src/video/bwindow/SDL_BWin.h +index f2b19a2..2cb94ee 100644 +--- a/src/video/bwindow/SDL_BWin.h ++++ b/src/video/bwindow/SDL_BWin.h +@@ -31,7 +31,7 @@ + #include + #if SDL_VIDEO_OPENGL + #include "SDL_opengl.h" +-#include ++#include + #endif + #include + +-- +1.8.3.4 + diff --git a/media-libs/sdl_image/sdl_image-1.2.12.recipe b/media-libs/sdl_image/sdl_image-1.2.12.recipe index 3e089ffc0..3997642dd 100644 --- a/media-libs/sdl_image/sdl_image-1.2.12.recipe +++ b/media-libs/sdl_image/sdl_image-1.2.12.recipe @@ -21,22 +21,24 @@ SECONDARY_ARCHITECTURES="x86_gcc2 x86" PROVIDES=" sdl_image$secondaryArchSuffix = $portVersion compat >= 1.2 lib:libSDL_image$secondaryArchSuffix = 1.2_0.8.4 compat >= 1.2_0 - lib:libSDL_image_1.2 = $portVersion compat >= 0 + lib:libSDL_image_1.2$secondaryArchSuffix = $portVersion compat >= 0 " REQUIRES=" haiku$secondaryArchSuffix - libsdl$secondaryArchSuffix + lib:libSDL$secondaryArchSuffix + lib:libSDL_1.2$secondaryArchSuffix lib:libjpeg$secondaryArchSuffix lib:libpng$secondaryArchSuffix lib:libtiff$secondaryArchSuffix lib:libgif$secondaryArchSuffix lib:libwebp$secondaryArchSuffix + lib:libGL$secondaryArchSuffix " BUILD_REQUIRES=" haiku${secondaryArchSuffix}_devel >= $haikuVersion - devel:libsdl$secondaryArchSuffix + devel:libSDL$secondaryArchSuffix devel:libjpeg$secondaryArchSuffix devel:libpng$secondaryArchSuffix # devel:libtiff$secondaryArchSuffix diff --git a/media-libs/sdl_mixer/sdl_mixer-1.2.12.recipe b/media-libs/sdl_mixer/sdl_mixer-1.2.12.recipe index 4edd13398..79a16be82 100644 --- a/media-libs/sdl_mixer/sdl_mixer-1.2.12.recipe +++ b/media-libs/sdl_mixer/sdl_mixer-1.2.12.recipe @@ -25,7 +25,8 @@ PROVIDES=" REQUIRES=" haiku$secondaryArchSuffix >= $haikuVersion - lib:libsdl$secondaryArchSuffix + lib:libSDL$secondaryArchSuffix + lib:libSDL_1.2$secondaryArchSuffix lib:libflac$secondaryArchSuffix # lib:libfluidsynth$secondaryArchSuffix lib:libmad$secondaryArchSuffix @@ -33,10 +34,11 @@ REQUIRES=" lib:libogg$secondaryArchSuffix lib:libmikmod$secondaryArchSuffix lib:libsmpeg$secondaryArchSuffix + lib:libGL$secondaryArchSuffix " BUILD_REQUIRES=" - devel:libsdl$secondaryArchSuffix + devel:libSDL$secondaryArchSuffix devel:libogg$secondaryArchSuffix devel:libflac$secondaryArchSuffix # devel:libfluidsynth$secondaryArchSuffix diff --git a/media-libs/sdl_ttf/sdl_ttf-2.0.11.recipe b/media-libs/sdl_ttf/sdl_ttf-2.0.11.recipe index 0a75df701..b41253f69 100644 --- a/media-libs/sdl_ttf/sdl_ttf-2.0.11.recipe +++ b/media-libs/sdl_ttf/sdl_ttf-2.0.11.recipe @@ -29,6 +29,7 @@ REQUIRES=" lib:libsdl$secondaryArchSuffix lib:libfreetype$secondaryArchSuffix lib:libz$secondaryArchSuffix + lib:libGL$secondaryArchSuffix " BUILD_REQUIRES=" diff --git a/media-libs/smpeg/smpeg-0.4.5.recipe b/media-libs/smpeg/smpeg-0.4.5.recipe index 34ebc0305..8ffe90683 100644 --- a/media-libs/smpeg/smpeg-0.4.5.recipe +++ b/media-libs/smpeg/smpeg-0.4.5.recipe @@ -26,12 +26,13 @@ PROVIDES=" REQUIRES=" haiku$secondaryArchSuffix lib:libglu$secondaryArchSuffix - lib:libsdl$secondaryArchSuffix + lib:libSDL$secondaryArchSuffix + lib:libGL$secondaryArchSuffix " BUILD_REQUIRES=" haiku${secondaryArchSuffix}_devel >= $haikuVersion - devel:libsdl$secondaryArchSuffix + devel:libSDL$secondaryArchSuffix devel:libglu$secondaryArchSuffix " @@ -44,7 +45,6 @@ BUILD_PREREQUIRES=" cmd:ld$secondaryArchSuffix cmd:make cmd:pkg_config$secondaryArchSuffix - lib:libsdl$secondaryArchSuffix " BUILD()