Libsdl needs some tweaks for DirectFB 0.9.23

the new release of DirectFB breaks the libsdl DirectRB video module

specifically, this change:
http://www.directfb.org/index.php/viewcvs.cgi/DirectFB/include/directfb.h.diff?r1=1.266&r2=1.267

but (unless i missed something), it should be trivial to fix (just annoying)
… ive done so in Gentoo (also attached):
http://viewcvs.gentoo.org/media-libs/libsdl/files/libsdl-1.2.9-DirectFB-updates.patch
-mike
-------------- next part --------------
— src/video/directfb/SDL_DirectFB_video.c
+++ src/video/directfb/SDL_DirectFB_video.c
@@ -376,7 +376,11 @@ int DirectFB_VideoInit(_THIS, SDL_PixelF
{
int i;
DFBResult ret;
+#if (DIRECTFB_MAJOR_VERSION == 0) && (DIRECTFB_MINOR_VERSION == 9) && (DIRECTFB_MICRO_VERSION < 23)
DFBCardCapabilities caps;
+#else

  • DFBGraphicsDeviceDescription caps;
    +#endif
    DFBDisplayLayerConfig dlc;
    struct DirectFBEnumRect *rect;
    IDirectFB *dfb = NULL;
    @@ -448,7 +452,11 @@ int DirectFB_VideoInit(_THIS, SDL_PixelF

    /* Query card capabilities to get the video memory size */
    +#if (DIRECTFB_MAJOR_VERSION == 0) && (DIRECTFB_MINOR_VERSION == 9) && (DIRECTFB_MICRO_VERSION < 23)
    dfb->GetCardCapabilities (dfb, &caps);
    +#else

  • dfb->GetDeviceDescription (dfb, &caps);
    +#endif

    this->info.wm_available = 1;
    this->info.hw_available = 1;

hmm, i did miss something … need to include directfb_version.h before trying
to test version defines :slight_smile:

updated patch attached as well as previous URL
-mike
-------------- next part --------------
DirectFB peeps changed their API again:

http://www.directfb.org/index.php/viewcvs.cgi/DirectFB/include/directfb.h.diff?r1=1.266&r2=1.267

— src/video/directfb/SDL_DirectFB_video.c
+++ src/video/directfb/SDL_DirectFB_video.c
@@ -40,6 +40,7 @@ static char rcsid =
#include <sys/mman.h>

#include <directfb.h>
+#include <directfb_version.h>

#include “SDL.h”
#include “SDL_error.h”
@@ -376,7 +376,11 @@ int DirectFB_VideoInit(_THIS, SDL_PixelF
{
int i;
DFBResult ret;
+#if (DIRECTFB_MAJOR_VERSION == 0) && (DIRECTFB_MINOR_VERSION == 9) && (DIRECTFB_MICRO_VERSION < 23)
DFBCardCapabilities caps;
+#else

  • DFBGraphicsDeviceDescription caps;
    +#endif
    DFBDisplayLayerConfig dlc;
    struct DirectFBEnumRect *rect;
    IDirectFB *dfb = NULL;
    @@ -448,7 +452,11 @@ int DirectFB_VideoInit(_THIS, SDL_PixelF

    /* Query card capabilities to get the video memory size */
    +#if (DIRECTFB_MAJOR_VERSION == 0) && (DIRECTFB_MINOR_VERSION == 9) && (DIRECTFB_MICRO_VERSION < 23)
    dfb->GetCardCapabilities (dfb, &caps);
    +#else

  • dfb->GetDeviceDescription (dfb, &caps);
    +#endif

    this->info.wm_available = 1;
    this->info.hw_available = 1;On Fri, Oct 28, 2005 at 01:23:57AM +0000, Mike Frysinger wrote:

the new release of DirectFB breaks the libsdl DirectRB video module

specifically, this change:
http://www.directfb.org/index.php/viewcvs.cgi/DirectFB/include/directfb.h.diff?r1=1.266&r2=1.267

but (unless i missed something), it should be trivial to fix (just annoying)
… ive done so in Gentoo (also attached):
http://viewcvs.gentoo.org/media-libs/libsdl/files/libsdl-1.2.9-DirectFB-updates.patch

the new release of DirectFB breaks the libsdl DirectRB video module

Your patch is in CVS, thanks!

–ryan.