From ed641c2a86b26cbefc5f4368830f097c9f7b88b3 Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Wed, 26 Nov 2008 21:59:35 +0000 Subject: [PATCH] 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 | 24 ++++++++++++++++++++---- src/video/directfb/SDL_DirectFB_render.c | 10 ++++++---- 2 files changed, 26 insertions(+), 8 deletions(-) diff --git a/README.DirectFB b/README.DirectFB index a13e98771..bddd77bdb 100644 --- a/README.DirectFB +++ b/README.DirectFB @@ -27,6 +27,15 @@ make 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 @@ To use hardware accelerated YUV-overlays for YUV-textures, use: 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. + diff --git a/src/video/directfb/SDL_DirectFB_render.c b/src/video/directfb/SDL_DirectFB_render.c index 5a9212c89..4931d5145 100644 --- a/src/video/directfb/SDL_DirectFB_render.c +++ b/src/video/directfb/SDL_DirectFB_render.c @@ -87,7 +87,8 @@ SDL_RenderDriver DirectFB_RenderDriver = { "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 @@ DirectFB_CreateRenderer(SDL_Window * window, Uint32 flags) 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 @@ DirectFB_RenderPresent(SDL_Renderer * renderer) /* 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: