Date: Wed, 26 Nov 2008 19:50:31 +0100
authorSam Lantinga <slouken@libsdl.org>
Wed, 26 Nov 2008 21:59:35 +0000
changeset 2791 8133d1d278da
parent 2790 8c9fa61a521c
child 2792 c2d9b1aff59f
Date: Wed, 26 Nov 2008 19:50:31 +0100 From: Couriersud Subject: LPGL and closed-source license / Re: [Bug 607] Texture palette not up Permission granted to release code under both LPGL and closed-source commercial license. Please find attached a minor patch fixing vsync handling in the directfb driver and containing a small update to README.directfb
README.DirectFB
src/video/directfb/SDL_DirectFB_render.c
--- a/README.DirectFB	Wed Nov 26 15:52:00 2008 +0000
+++ b/README.DirectFB	Wed Nov 26 21:59:35 2008 +0000
@@ -27,6 +27,15 @@
 sudo make install INSTALL_DIR=/usr/local/dfb_GL
 ------------------------
 
+/etc/directfbrc
+
+This file should contain the following two lines to make
+your joystick work:
+------------------------
+disable-module=joystick
+disable-module=linux_input
+------------------------
+
 To run the SDL - testprograms:
 
 export SDL_VIDEODRIVER=directfb
@@ -39,7 +48,14 @@
 
 export SDL_DIRECTFB_YUV_DIRECT=1
 
-This is disabled by default. It will only support one concurrent 
-overlay and may behave strange if not used with SDL_CreateYUvOverlay
-from SDLcompat.c. 
- 
+This is disabled by default. It will only support one 
+YUV texture, namely the first. Every other YUV texture will be
+rendered in software.
+
+In addition, you may use 
+
+export SDL_DIRECTFB_YUV_UNDERLAY=1
+
+to make the YUV texture an underlay. This will make the cursor to
+be shown.
+
--- a/src/video/directfb/SDL_DirectFB_render.c	Wed Nov 26 15:52:00 2008 +0000
+++ b/src/video/directfb/SDL_DirectFB_render.c	Wed Nov 26 21:59:35 2008 +0000
@@ -87,7 +87,8 @@
      "directfb",
      (SDL_RENDERER_SINGLEBUFFER | SDL_RENDERER_PRESENTCOPY |
       SDL_RENDERER_PRESENTFLIP2 | SDL_RENDERER_PRESENTFLIP3 |
-      SDL_RENDERER_PRESENTDISCARD | SDL_RENDERER_ACCELERATED),
+      SDL_RENDERER_PRESENTVSYNC | SDL_RENDERER_PRESENTDISCARD |
+      SDL_RENDERER_ACCELERATED),
      (SDL_TEXTUREMODULATE_NONE | SDL_TEXTUREMODULATE_COLOR |
       SDL_TEXTUREMODULATE_ALPHA),
      (SDL_TEXTUREBLENDMODE_NONE | SDL_TEXTUREBLENDMODE_MASK |
@@ -231,9 +232,10 @@
     data->flipflags = DSFLIP_PIPELINE | DSFLIP_BLIT;
 
     if (flags & SDL_RENDERER_PRESENTVSYNC) {
-        data->flipflags = DSFLIP_ONSYNC;
+        data->flipflags |= DSFLIP_WAITFORSYNC;
         renderer->info.flags |= SDL_RENDERER_PRESENTVSYNC;
-    }
+    } else
+        data->flipflags |= DSFLIP_ONSYNC;
 
     SDL_DFB_CHECKERR(data->surface->GetCapabilities(data->surface, &scaps));
     if (scaps & DSCAPS_DOUBLE)
@@ -863,7 +865,7 @@
 
     /* Send the data to the display */
     SDL_DFB_CHECKERR(data->surface->
-                     Flip(data->surface, NULL, 0 * data->flipflags));
+                     Flip(data->surface, NULL, data->flipflags));
 
     return;
   error: