diff options
author | vanfanel | 2015-07-22 13:00:45 +0200 |
---|---|---|
committer | vanfanel | 2015-07-22 13:00:45 +0200 |
commit | b706ca36f1e40d01e50d99d3e1296470f0727f3f (patch) | |
tree | 27a4c024aa2b493e039f7276a51263275ff83c23 | |
parent | 6320a008ec27499b3174cd2ea8b3926a59f2e117 (diff) | |
download | scummvm-rg350-b706ca36f1e40d01e50d99d3e1296470f0727f3f.tar.gz scummvm-rg350-b706ca36f1e40d01e50d99d3e1296470f0727f3f.tar.bz2 scummvm-rg350-b706ca36f1e40d01e50d99d3e1296470f0727f3f.zip |
SDL/DISPMANX: Updated class member names, configure script and asociated files and docs to conform to fingolfin's corrections.
-rw-r--r-- | backends/graphics/dispmanxsdl/dispmanxsdl-graphics.cpp | 144 | ||||
-rw-r--r-- | backends/graphics/dispmanxsdl/dispmanxsdl-graphics.h | 18 | ||||
-rw-r--r-- | backends/module.mk | 10 | ||||
-rw-r--r-- | backends/platform/sdl/raspberrypi/README.RASPBERRYPI | 6 | ||||
-rwxr-xr-x | configure | 44 |
5 files changed, 106 insertions, 116 deletions
diff --git a/backends/graphics/dispmanxsdl/dispmanxsdl-graphics.cpp b/backends/graphics/dispmanxsdl/dispmanxsdl-graphics.cpp index af48fce935..3f4a5ea92e 100644 --- a/backends/graphics/dispmanxsdl/dispmanxsdl-graphics.cpp +++ b/backends/graphics/dispmanxsdl/dispmanxsdl-graphics.cpp @@ -20,7 +20,7 @@ * */ -//Needed for Raspberry Pi header incussion +// Needed for Raspberry Pi header inclusion #define FORBIDDEN_SYMBOL_ALLOW_ALL #include "common/scummsys.h" @@ -34,12 +34,12 @@ #include <bcm_host.h> -struct dispvarsStruct { +struct dispvarsStruct { DISPMANX_DISPLAY_HANDLE_T display; DISPMANX_UPDATE_HANDLE_T update; DISPMANX_ELEMENT_HANDLE_T element; VC_IMAGE_TYPE_T pixFormat; - VC_DISPMANX_ALPHA_T alpha; + VC_DISPMANX_ALPHA_T alpha; VC_RECT_T bmpRect; VC_RECT_T srcRect; @@ -52,13 +52,13 @@ struct dispvarsStruct { bool aspectRatioCorrection; void *pixmem; - int numpages; - struct dispmanxPage *pages; - struct dispmanxPage *currentPage; + int numpages; + dispmanxPage *pages; + dispmanxPage *currentPage; int pageflipPending; - pthread_cond_t vsyncCondition; - pthread_mutex_t vsyncCondMutex; + pthread_cond_t vsyncCondition; + pthread_mutex_t vsyncCondMutex; pthread_mutex_t pendingMutex; SDL_Surface *fscreen; @@ -71,31 +71,31 @@ struct dispmanxPage { // isolating the access to it's "used" flag. pthread_mutex_t pageUsedMutex; - // This field will allow us to access the + // This field will allow us to access the // main dispvars struct, for the vsync cb. - struct dispvarsStruct *dispvars; + struct dispvarsStruct *dispvars; }; DispmanXSdlGraphicsManager::DispmanXSdlGraphicsManager(SdlEventSource *sdlEventSource) : SurfaceSdlGraphicsManager(sdlEventSource) { _dispvars = new(dispvarsStruct); - DispmanXInit(); + dispmanXInit(); } DispmanXSdlGraphicsManager::~DispmanXSdlGraphicsManager() { - DispmanXVideoQuit(); + dispmanXVideoQuit(); delete(_dispvars); } -void DispmanXSdlGraphicsManager::DispmanXInit() { +void DispmanXSdlGraphicsManager::dispmanXInit() { _dispvars->screen = 0; _dispvars->vcImagePtr = 0; _dispvars->numpages = 3; _dispvars->pages = (struct dispmanxPage *)calloc(_dispvars->numpages, sizeof(struct dispmanxPage)); - _dispvars->pageflipPending = 0; + _dispvars->pageflipPending = 0; _dispvars->currentPage = NULL; _dispvars->pixFormat = VC_IMAGE_RGB565; - + /* Transparency disabled */ _dispvars->alpha.flags = DISPMANX_FLAGS_ALPHA_FIXED_ALL_PIXELS; _dispvars->alpha.opacity = 255; @@ -104,20 +104,20 @@ void DispmanXSdlGraphicsManager::DispmanXInit() { // Init each page's variables for (int i = 0; i < _dispvars->numpages; i++) { - _dispvars->pages[i].used = false; - _dispvars->pages[i].dispvars = _dispvars; + _dispvars->pages[i].used = false; + _dispvars->pages[i].dispvars = _dispvars; _dispvars->pages[i].resource = 0; - pthread_mutex_init(&_dispvars->pages[i].pageUsedMutex, NULL); + pthread_mutex_init(&_dispvars->pages[i].pageUsedMutex, NULL); } // Initialize the other mutex and condition variables pthread_cond_init(&_dispvars->vsyncCondition, NULL); pthread_mutex_init(&_dispvars->pendingMutex, NULL); pthread_mutex_init(&_dispvars->vsyncCondMutex, NULL); - + // Before we call any vc_* function, we need to call this one. bcm_host_init(); - + _dispvars->display = vc_dispmanx_display_open(_dispvars->screen); graphics_get_display_size(_dispvars->display, &_dispvars->dispmanxWidth, &_dispvars->dispmanxHeight); @@ -125,24 +125,24 @@ void DispmanXSdlGraphicsManager::DispmanXInit() { _dispvars->fscreen = NULL; } -void DispmanXSdlGraphicsManager::DispmanXSetup(int srcWidth, int srcHeight) { +void DispmanXSdlGraphicsManager::dispmanXSetup(int srcWidth, int srcHeight) { unsigned int dstWidth, dstHeight, dstXpos, dstYpos; // If we have an element, we have to free it along with it's resources. if (_dispvars->element) { - DispmanXFreeResources(); + dispmanXFreeResources(); } // We do this for 2 bytes per pixel which is default on the Rpi. _dispvars->pitch = srcWidth * 2; if (_dispvars->aspectRatioCorrection) { float aspect = ((float)srcWidth / (float)srcHeight); - dstWidth = _dispvars->dispmanxHeight * aspect; + dstWidth = _dispvars->dispmanxHeight * aspect; } else { - dstWidth = _dispvars->dispmanxWidth; + dstWidth = _dispvars->dispmanxWidth; } dstHeight = _dispvars->dispmanxHeight; - + // If we obtain a scaled image width that is bigger than the physical screen width, // then we keep the physical screen width as our maximun width. if (dstWidth > _dispvars->dispmanxWidth) { @@ -155,11 +155,11 @@ void DispmanXSdlGraphicsManager::DispmanXSetup(int srcWidth, int srcHeight) { // Remember we have to transfer the whole bitmap even if we would have // interest in a part of it! Blitting is done by the GPU. vc_dispmanx_rect_set(&_dispvars->dstRect, dstXpos, dstYpos, dstWidth, dstHeight); - vc_dispmanx_rect_set(&_dispvars->bmpRect, 0, 0, srcWidth, srcHeight); - vc_dispmanx_rect_set(&_dispvars->srcRect, 0, 0, srcWidth << 16, srcHeight << 16); + vc_dispmanx_rect_set(&_dispvars->bmpRect, 0, 0, srcWidth, srcHeight); + vc_dispmanx_rect_set(&_dispvars->srcRect, 0, 0, srcWidth << 16, srcHeight << 16); for (int i = 0; i < _dispvars->numpages; i++) { - _dispvars->pages[i].resource = vc_dispmanx_resource_create(_dispvars->pixFormat, + _dispvars->pages[i].resource = vc_dispmanx_resource_create(_dispvars->pixFormat, srcWidth, srcHeight, &(_dispvars->vcImagePtr)); } @@ -167,20 +167,20 @@ void DispmanXSdlGraphicsManager::DispmanXSetup(int srcWidth, int srcHeight) { _dispvars->update = vc_dispmanx_update_start(0); _dispvars->element = vc_dispmanx_element_add( - _dispvars->update,_dispvars->display, 0, - &_dispvars->dstRect, 0, + _dispvars->update,_dispvars->display, 0, + &_dispvars->dstRect, 0, &_dispvars->srcRect, DISPMANX_PROTECTION_NONE, &_dispvars->alpha, 0, (DISPMANX_TRANSFORM_T)0); vc_dispmanx_update_submit_sync(_dispvars->update); } -void DispmanXVSyncCallback (DISPMANX_UPDATE_HANDLE_T u, void *arg) { +void dispmanXVSyncCallback (DISPMANX_UPDATE_HANDLE_T u, void *arg) { struct dispmanxPage *page = (struct dispmanxPage*)arg; struct dispvarsStruct *dispvars = page->dispvars; // Marking the page as free must be done before the signaling - // so when the update function continues (it won't continue until we signal) + // so when the update function continues (it won't continue until we signal) // we can chose this page as free. if (dispvars->currentPage) { pthread_mutex_lock(&dispvars->currentPage->pageUsedMutex); @@ -195,46 +195,46 @@ void DispmanXVSyncCallback (DISPMANX_UPDATE_HANDLE_T u, void *arg) { // caused this callback becomes the visible one dispvars->currentPage = page; - // These two things must be isolated "atomically" to avoid getting + // These two things must be isolated "atomically" to avoid getting // a false positive in the pending_mutex test in update function. pthread_mutex_lock(&dispvars->pendingMutex); - dispvars->pageflipPending--; + dispvars->pageflipPending--; pthread_cond_signal(&dispvars->vsyncCondition); pthread_mutex_unlock(&dispvars->pendingMutex); } -void DispmanXSdlGraphicsManager::DispmanXUpdate() { - // Wait until last issued flip completes to get a free page. Also, +void DispmanXSdlGraphicsManager::dispmanXUpdate() { + // Wait until last issued flip completes to get a free page. Also, // dispmanx doesn't support issuing more than one pageflip. pthread_mutex_lock(&_dispvars->pendingMutex); if (_dispvars->pageflipPending > 0) { pthread_cond_wait(&_dispvars->vsyncCondition, &_dispvars->pendingMutex); } - + pthread_mutex_unlock(&_dispvars->pendingMutex); - struct dispmanxPage *page = DispmanXGetFreePage(); + struct dispmanxPage *page = dispmanXGetFreePage(); // Frame blitting vc_dispmanx_resource_write_data(page->resource, _dispvars->pixFormat, _dispvars->pitch, _dispvars->pixmem, &_dispvars->bmpRect); - + // Issue a page flip at the next vblank interval (will be done at vsync anyway). _dispvars->update = vc_dispmanx_update_start(0); vc_dispmanx_element_change_source(_dispvars->update, _dispvars->element, page->resource); - vc_dispmanx_update_submit(_dispvars->update, &DispmanXVSyncCallback, page); - + vc_dispmanx_update_submit(_dispvars->update, &dispmanXVSyncCallback, page); + pthread_mutex_lock(&_dispvars->pendingMutex); - _dispvars->pageflipPending++; + _dispvars->pageflipPending++; pthread_mutex_unlock(&_dispvars->pendingMutex); } -struct dispmanxPage *DispmanXSdlGraphicsManager::DispmanXGetFreePage(void) { +struct dispmanxPage *DispmanXSdlGraphicsManager::dispmanXGetFreePage(void) { struct dispmanxPage *page = NULL; while (!page) @@ -265,8 +265,8 @@ struct dispmanxPage *DispmanXSdlGraphicsManager::DispmanXGetFreePage(void) { return page; } -void DispmanXSdlGraphicsManager::DispmanXFreeResources(void) { - // What if we run into the vsync cb code after freeing the resources? +void DispmanXSdlGraphicsManager::dispmanXFreeResources(void) { + // What if we run into the vsync cb code after freeing the resources? pthread_mutex_lock(&_dispvars->pendingMutex); if (_dispvars->pageflipPending > 0) { @@ -274,7 +274,7 @@ void DispmanXSdlGraphicsManager::DispmanXFreeResources(void) { } pthread_mutex_unlock(&_dispvars->pendingMutex); - for (int i = 0; i < _dispvars->numpages; i++) { + for (int i = 0; i < _dispvars->numpages; i++) { vc_dispmanx_resource_delete(_dispvars->pages[i].resource); _dispvars->pages[i].resource = 0; _dispvars->pages[i].used = false; @@ -282,37 +282,37 @@ void DispmanXSdlGraphicsManager::DispmanXFreeResources(void) { _dispvars->update = vc_dispmanx_update_start(0); vc_dispmanx_element_remove(_dispvars->update, _dispvars->element); - vc_dispmanx_update_submit_sync(_dispvars->update); + vc_dispmanx_update_submit_sync(_dispvars->update); // We use this on the setup function to know if we have to free resources and element. _dispvars->element = 0; } -void DispmanXSdlGraphicsManager::DispmanXVideoQuit() { +void DispmanXSdlGraphicsManager::dispmanXVideoQuit() { // This also waits for pending flips to complete, that's needed before // we destroy the mutexes and condition. - DispmanXFreeResources(); - - // Destroy the mutexes and conditions + dispmanXFreeResources(); + + // Destroy the mutexes and conditions for (int i = 0; i < _dispvars->numpages; i++) { - pthread_mutex_destroy(&_dispvars->pages[i].pageUsedMutex); + pthread_mutex_destroy(&_dispvars->pages[i].pageUsedMutex); } pthread_mutex_destroy(&_dispvars->pendingMutex); pthread_mutex_destroy(&_dispvars->vsyncCondMutex); - pthread_cond_destroy(&_dispvars->vsyncCondition); + pthread_cond_destroy(&_dispvars->vsyncCondition); free(_dispvars->pages); - // Close display and deinit + // Close display and deinit vc_dispmanx_display_close(_dispvars->display); bcm_host_deinit(); } bool DispmanXSdlGraphicsManager::loadGFXMode() { _forceFull = true; - - // In DispmanX, we manage aspect ratio correction, so for scummvm it's always disabled. + + // In dispmanX, we manage aspect ratio correction, so for scummvm it's always disabled. _videoMode.aspectRatioCorrection = false; - + _videoMode.overlayWidth = _videoMode.screenWidth; _videoMode.overlayHeight = _videoMode.screenHeight; _videoMode.hardwareWidth = _videoMode.screenWidth; @@ -332,7 +332,7 @@ bool DispmanXSdlGraphicsManager::loadGFXMode() { error("allocating _screen failed"); // Avoid having SDL_SRCALPHA set even if we supplied an alpha-channel in the format. SDL_SetAlpha(_screen, 0, 255); - + // We set our own default palette to all black. SDL_SetColors(_screen, _currentPalette, 0, 256); @@ -340,23 +340,23 @@ bool DispmanXSdlGraphicsManager::loadGFXMode() { // Create the surface that contains the scaled graphics in 16 bit mode // - DispmanXSetup(_videoMode.screenWidth, _videoMode.screenHeight); - + dispmanXSetup(_videoMode.screenWidth, _videoMode.screenHeight); + _hwscreen = SDL_CreateRGBSurface(SDL_SWSURFACE, _videoMode.hardwareWidth, _videoMode.hardwareHeight, 16, 0, 0, 0, 0); // This is just so SDL 1.x input is initialized. Only once! - if (_dispvars->fscreen == NULL) + if (_dispvars->fscreen == NULL) _dispvars->fscreen = SDL_SetVideoMode(_videoMode.hardwareWidth, _videoMode.hardwareHeight, 16, SDL_FULLSCREEN); if (_hwscreen == NULL) { // Don't use error here because we don't have access to the debug console - warning("Allocating surface for DispmanX rendering _hwscreen failed"); + warning("Allocating surface for dispmanX rendering _hwscreen failed"); g_system->quit(); } // We render to dispmanx resources from _hwscreen pixels array _dispvars->pixmem = _hwscreen->pixels; - + _overlayscreen = SDL_CreateRGBSurface(SDL_SWSURFACE, _videoMode.overlayWidth, _videoMode.overlayHeight, 16, _hwscreen->format->Rmask, @@ -401,7 +401,7 @@ bool DispmanXSdlGraphicsManager::loadGFXMode() { void DispmanXSdlGraphicsManager::clearOverlay() { //assert(_transactionMode == kTransactionNone); - + Common::StackLock lock(_graphicsMutex); // Lock the mutex until this function ends if (!_overlayVisible) @@ -436,7 +436,7 @@ void DispmanXSdlGraphicsManager::internUpdateScreen() { (_mouseNeedsRedraw && _mouseBackup.y <= _currentShakePos)) { SDL_Rect blackrect = {0, 0, (Uint16)(_videoMode.screenWidth * _videoMode.scaleFactor), (Uint16)(_newShakePos * _videoMode.scaleFactor)}; - if (_videoMode.aspectRatioCorrection && !_overlayVisible) + if (_dispvars->aspectRatioCorrection && !_overlayVisible) blackrect.h = real2Aspect(blackrect.h - 1) + 1; SDL_FillRect(_hwscreen, &blackrect, 0); @@ -535,7 +535,7 @@ void DispmanXSdlGraphicsManager::internUpdateScreen() { // Finally, blit all our changes to the screen if (!_displayDisabled) { SDL_UpdateRects(_hwscreen, _numDirtyRects, _dirtyRectList); - DispmanXUpdate(); + dispmanXUpdate(); } } @@ -548,9 +548,7 @@ bool DispmanXSdlGraphicsManager::handleScalerHotkeys(Common::KeyCode key) { // Ctrl-Alt-a toggles aspect ratio correction if (key == 'a') { - beginGFXTransaction(); - setFeatureState(OSystem::kFeatureAspectRatioCorrection, !_dispvars->aspectRatioCorrection); - endGFXTransaction(); + setFeatureState(OSystem::kFeatureAspectRatioCorrection, !_dispvars->aspectRatioCorrection); #ifdef USE_OSD char buffer[128]; if (_dispvars->aspectRatioCorrection) @@ -574,11 +572,11 @@ void DispmanXSdlGraphicsManager::setAspectRatioCorrection(bool enable) { Common::StackLock lock(_graphicsMutex); // We simply take note on what's the aspect ratio correction activation state. _dispvars->aspectRatioCorrection = enable; - - // If we have a videomode setup already, call DispmanXSetup() again so aspect ratio - // correction activation/deactivation works from the menu. + + // If we have a videomode setup already, call dispmanXSetup() again so aspect ratio + // correction activation/deactivation works from the menu. if (_oldVideoMode.setup && _dispvars->aspectRatioCorrection == enable) { - DispmanXSetup(_videoMode.screenWidth, _videoMode.screenHeight); + dispmanXSetup(_videoMode.screenWidth, _videoMode.screenHeight); } } diff --git a/backends/graphics/dispmanxsdl/dispmanxsdl-graphics.h b/backends/graphics/dispmanxsdl/dispmanxsdl-graphics.h index c41f84ef7a..d2a52f5c69 100644 --- a/backends/graphics/dispmanxsdl/dispmanxsdl-graphics.h +++ b/backends/graphics/dispmanxsdl/dispmanxsdl-graphics.h @@ -31,22 +31,22 @@ struct dispmanxPage; class DispmanXSdlGraphicsManager : public SurfaceSdlGraphicsManager { public: DispmanXSdlGraphicsManager(SdlEventSource *sdlEventSource); - ~DispmanXSdlGraphicsManager(); + ~DispmanXSdlGraphicsManager(); bool loadGFXMode(); void internUpdateScreen(); bool handleScalerHotkeys(Common::KeyCode key); void setFullscreenMode(bool enable); void setAspectRatioCorrection(bool enable); void clearOverlay(); -protected: +protected: // Raspberry Pi Dispmanx API - void DispmanXSetup(int width, int height); - void DispmanXInit(); - void DispmanXUpdate(); - struct dispmanxPage *DispmanXGetFreePage(); - void DispmanXFreeResources(); - void DispmanXVideoQuit(); - struct dispvarsStruct *_dispvars; + void dispmanXSetup(int width, int height); + void dispmanXInit(); + void dispmanXUpdate(); + dispmanxPage *dispmanXGetFreePage(); + void dispmanXFreeResources(); + void dispmanXVideoQuit(); + dispvarsStruct *_dispvars; }; #endif /* BACKENDS_GRAPHICS_SDL_DISPMANX_H */ diff --git a/backends/module.mk b/backends/module.mk index 645b5eda78..979bce56ea 100644 --- a/backends/module.mk +++ b/backends/module.mk @@ -127,6 +127,11 @@ MODULE_OBJS += \ mixer/sdl13/sdl13-mixer.o endif +ifdef RASPBERRYPI +MODULE_OBJS += \ + graphics/dispmanxsdl/dispmanxsdl-graphics.o +endif + ifeq ($(BACKEND),tizen) MODULE_OBJS += \ timer/tizen/timer.o @@ -193,11 +198,6 @@ MODULE_OBJS += \ timer/psp/timer.o endif -ifeq ($(BACKEND),raspberrypi) -MODULE_OBJS += \ - graphics/dispmanxsdl/dispmanxsdl-graphics.o -endif - ifeq ($(BACKEND),samsungtv) MODULE_OBJS += \ events/samsungtvsdl/samsungtvsdl-events.o \ diff --git a/backends/platform/sdl/raspberrypi/README.RASPBERRYPI b/backends/platform/sdl/raspberrypi/README.RASPBERRYPI index f7143805a8..d67a5ab939 100644 --- a/backends/platform/sdl/raspberrypi/README.RASPBERRYPI +++ b/backends/platform/sdl/raspberrypi/README.RASPBERRYPI @@ -8,7 +8,7 @@ This version of ScummVM is specially tailored to use DispmanX, the native 2D API on the Raspberry Pi. The idea is that scaling and drawing on a double buffer with a non-blocking vsync wait is all done using the on-board VideoCore hardware, thus using only a small fraction of the CPU ScummVM uses when ran -on a clunky, software-scaled and desynced X11 enviroment using the X11 API. +on a clunky, software-scaled and desynced X11 environment using the X11 API. Thus, running this version under an X11 session is not supported. Requirements @@ -77,7 +77,7 @@ Local compilation would simply consist of the "standard" GNU/Linux building proc cd <sources_dir> -./configure ./configure --backend=raspberrypi -disable-debug --enable-release +./configure --backend=raspberrypi -disable-debug --enable-release --enable-optimizations --disable-mt32emu --disable-flac --disable-mad --disable-vorbis --disable-tremor --disable-fluidsynth --disable-taskbar --disable-timidity --disable-alsa @@ -86,7 +86,7 @@ make ¡¡It will be an SLOW process, taking several hours to complete, unless you are running distcc against a fast compilation server!! -2) If we wandt to build by cross-compiling on a GNU/Linux X86-based computer, +2) If we want to build by cross-compiling on a GNU/Linux X86-based computer, we can find concise instructions for this can be found on the ScummVM wiki: http://wiki.scummvm.org/index.php/Compiling_ScummVM/RPI @@ -1052,9 +1052,9 @@ for ac_option in $@; do --disable-libunity) _libunity=no ;; --enable-opengl) _opengl=yes ;; --disable-opengl) _opengl=no ;; - --enable-dispmanx) _dispmanx=yes ;; - --disable-dispmanx) _dispmanx=no ;; - --enable-bink) _bink=yes ;; + --enable-dispmanx) _dispmanx=yes ;; + --disable-dispmanx) _dispmanx=no ;; + --enable-bink) _bink=yes ;; --disable-bink) _bink=no ;; --enable-verbose-build) _verbose_build=yes ;; --enable-plugins) _dynamic_modules=yes ;; @@ -1304,7 +1304,6 @@ raspberrypi) _host_os=linux _host_cpu=arm _host_alias=arm-linux-gnueabihf - _backend=raspberrypi ;; caanoo) _host_os=gph-linux @@ -2549,6 +2548,17 @@ if test -n "$_host"; then _seq_midi=no _port_mk="backends/platform/dingux/dingux.mk" ;; + raspberrypi) + # We should have setup raspberrypi-sdl-config with modified prefix as part of + # the cross-building enviroment. + _savegame_timestamp=no + _eventrec=no + _build_scalers=no + _build_hq_scalers=no + # It makes no sense to have both GL and dispmanx rendering support. + _opengl=no + _opengles=no + ;; dreamcast) DEFINES="$DEFINES -DDISABLE_DEFAULT_SAVEFILEMANAGER" DEFINES="$DEFINES -DDISABLE_TEXT_CONSOLE" @@ -2993,6 +3003,8 @@ case $_backend in LIBS="$LIBS -Wl,-Map,mapfile.txt" ;; raspberrypi) + LIBS="$LIBS -L$RPI_ROOT/usr/lib" + LIBS="$LIBS -L$RPI_ROOT/usr/lib/arm-linux-gnueabihf" ;; samsungtv) DEFINES="$DEFINES -DSAMSUNGTV" @@ -3130,23 +3142,6 @@ case $_backend in esac # -# In raspberry Pi, we don't use find_sdlconfig since we could be crosscompiling, but still we use SDL -# -case $_backend in - raspberrypi) - INCLUDES="$INCLUDES -I$RPI_ROOTDIR/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT" - LIBS="$LIBS -L$RPI_ROOTDIR/usr/lib -L$RPI_ROOTDIR/usr/lib/arm-linux-gnueabihf -lSDL" - DEFINES="$DEFINES -DSDL_BACKEND" - add_line_to_config_mk "SDL_BACKEND = 1" - _16bit=yes - _savegame_timestamp=no - _eventrec=no - _build_scalers=no - _build_hq_scalers=no - ;; -esac - -# # Determine whether host is POSIX compliant, or at least POSIX # compatible enough to support our POSIX code (including dlsym(), # mkdir() and some other APIs). @@ -4083,8 +4078,8 @@ define_in_config_if_yes "$_opengles" "USE_GLES" if test "$_dispmanx" = "yes" ; then echocheck "DispmanX graphics" _use_dispmanx=no - DISPMANX_CXXFLAGS="-I$RPI_ROOTDIR/opt/vc/include -I$RPI_ROOTDIR/opt/vc/include/interface/vmcs_host/linux/ -I$RPI_ROOTDIR/opt/vc/include/interface/vcos/pthreads -mfpu=vfp -mfloat-abi=hard -I$RPI_ROOTDIR/opt/rpi_root/usr/include/SDL" - DISPMANX_LIBS="--sysroot=$RPI_ROOTDIR -L$RPI_ROOTDIR/usr/lib -L$RPI_ROOTDIR/opt/vc/lib -lbcm_host -lvcos -lvchiq_arm" + DISPMANX_CXXFLAGS="-I$RPI_ROOT/opt/vc/include -I$RPI_ROOT/opt/vc/include/interface/vmcs_host/linux/ -I$RPI_ROOT/opt/vc/include/interface/vcos/pthreads -I$RPI_ROOT/opt/rpi_root/usr/include/SDL" + DISPMANX_LIBS="--sysroot=$RPI_ROOT -L$RPI_ROOT/usr/lib -L$RPI_ROOT/opt/vc/lib -lbcm_host -lvcos -lvchiq_arm" cat > $TMPC << EOF #include <bcm_host.h> @@ -4096,11 +4091,8 @@ EOF if test "$_use_dispmanx" = "yes"; then CXXFLAGS="$CXXFLAGS $DISPMANX_CXXFLAGS" LIBS="$LIBS $DISPMANX_LIBS" - MODULES="$MODULES backends/platform/sdl" DEFINES="$DEFINES -DRASPBERRYPI" add_line_to_config_mk 'RASPBERRYPI = 1' - _opengl=no - _opengles=no echo $_use_dispmanx fi fi |