Revision: 16645 http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=16645 Author: campbellbarton Date: 2008-09-21 07:38:28 +0200 (Sun, 21 Sep 2008)
Log Message: ----------- game engine now compiles with SDL disabled. CDROM and Joystick wont function in this case Modified Paths: -------------- trunk/blender/intern/SoundSystem/SConscript trunk/blender/intern/SoundSystem/sdl/SND_SDLCDDevice.cpp trunk/blender/source/gameengine/GameLogic/Joystick/SCA_Joystick.cpp trunk/blender/source/gameengine/GameLogic/Joystick/SCA_Joystick.h trunk/blender/source/gameengine/GameLogic/Joystick/SCA_JoystickEvents.cpp trunk/blender/source/gameengine/GameLogic/Joystick/SCA_JoystickPrivate.h trunk/blender/source/gameengine/GameLogic/SCA_JoystickManager.cpp trunk/blender/source/gameengine/GameLogic/SConscript Modified: trunk/blender/intern/SoundSystem/SConscript =================================================================== --- trunk/blender/intern/SoundSystem/SConscript 2008-09-21 04:39:40 UTC (rev 16644) +++ trunk/blender/intern/SoundSystem/SConscript 2008-09-21 05:38:28 UTC (rev 16645) @@ -14,4 +14,7 @@ else: defs = 'NO_SOUND' +if not env['WITH_BF_SDL']: + defs += ' DISABLE_SDL' + env.BlenderLib ('bf_soundsystem', sources, Split(incs), Split(defs), libtype=['core','player'], priority = [20,140] ) Modified: trunk/blender/intern/SoundSystem/sdl/SND_SDLCDDevice.cpp =================================================================== --- trunk/blender/intern/SoundSystem/sdl/SND_SDLCDDevice.cpp 2008-09-21 04:39:40 UTC (rev 16644) +++ trunk/blender/intern/SoundSystem/sdl/SND_SDLCDDevice.cpp 2008-09-21 05:38:28 UTC (rev 16645) @@ -55,6 +55,10 @@ void SND_SDLCDDevice::init() { +#ifdef DISABLE_SDL + fprintf(stderr, "Blender compiled without SDL, no CDROM support\n"); + return; +#else if (SDL_InitSubSystem(SDL_INIT_CDROM)) { fprintf(stderr, "Error initializing CDROM\n"); @@ -75,19 +79,23 @@ /* Did if open? Check if cdrom is NULL */ if(!m_cdrom) { - fprintf(stderr, "Couldn't open drive: %s", SDL_GetError()); + fprintf(stderr, "Couldn't open drive: %s\n", SDL_GetError()); return; } +#endif } SND_SDLCDDevice::~SND_SDLCDDevice() { +#ifndef DISABLE_SDL StopCD(); SDL_CDClose(m_cdrom); +#endif } void SND_SDLCDDevice::NextFrame() { +#ifndef DISABLE_SDL m_frame++; m_frame &= 127; @@ -111,20 +119,24 @@ } } +#endif } void SND_SDLCDDevice::PlayCD(int track) { +#ifndef DISABLE_SDL if ( m_cdrom && CD_INDRIVE(SDL_CDStatus(m_cdrom)) ) { SDL_CDPlayTracks(m_cdrom, track-1, 0, track, 0); m_cdplaying = true; m_cdtrack = track; } +#endif } void SND_SDLCDDevice::PauseCD(bool pause) { +#ifndef DISABLE_SDL if (!m_cdrom) return; @@ -132,13 +144,16 @@ SDL_CDPause(m_cdrom); else SDL_CDResume(m_cdrom); +#endif } void SND_SDLCDDevice::StopCD() { +#ifndef DISABLE_SDL if (m_cdrom) SDL_CDStop(m_cdrom); m_cdplaying = false; +#endif } void SND_SDLCDDevice::SetCDPlaymode(int playmode) Modified: trunk/blender/source/gameengine/GameLogic/Joystick/SCA_Joystick.cpp =================================================================== --- trunk/blender/source/gameengine/GameLogic/Joystick/SCA_Joystick.cpp 2008-09-21 04:39:40 UTC (rev 16644) +++ trunk/blender/source/gameengine/GameLogic/Joystick/SCA_Joystick.cpp 2008-09-21 05:38:28 UTC (rev 16645) @@ -42,14 +42,18 @@ m_isinit(0), m_istrig(0) { +#ifndef DISABLE_SDL m_private = new PrivateData(); +#endif } SCA_Joystick::~SCA_Joystick() { +#ifndef DISABLE_SDL delete m_private; +#endif } SCA_Joystick *SCA_Joystick::m_instance[JOYINDEX_MAX]; @@ -57,6 +61,9 @@ SCA_Joystick *SCA_Joystick::GetInstance( short int joyindex ) { +#ifdef DISABLE_SDL + return NULL; +#else if (joyindex < 0 || joyindex >= JOYINDEX_MAX) { echo("Error-invalid joystick index: " << joyindex); return NULL; @@ -81,12 +88,14 @@ m_refCount++; } return m_instance[joyindex]; +#endif } void SCA_Joystick::ReleaseInstance() { if (--m_refCount == 0) { +#ifndef DISABLE_SDL int i; for (i=0; i<JOYINDEX_MAX; i++) { if (m_instance[i]) { @@ -95,7 +104,9 @@ } m_instance[i]= NULL; } + SDL_QuitSubSystem(SDL_INIT_JOYSTICK | SDL_INIT_VIDEO ); +#endif } } @@ -147,19 +158,27 @@ bool SCA_Joystick::aButtonPressIsPositive(int button) { +#ifdef DISABLE_SDL + return false; +#else bool result; SDL_JoystickGetButton(m_private->m_joystick, button)? result = true:result = false; m_istrig = result; return result; +#endif } bool SCA_Joystick::aButtonReleaseIsPositive(int button) { +#ifdef DISABLE_SDL + return false; +#else bool result; SDL_JoystickGetButton(m_private->m_joystick, button)? result = false : result = true; m_istrig = result; return result; +#endif } @@ -199,6 +218,9 @@ int SCA_Joystick::GetNumberOfAxes() { +#ifdef DISABLE_SDL + return -1; +#else int number; if(m_isinit){ if(m_private->m_joystick){ @@ -207,11 +229,15 @@ } } return -1; +#endif } int SCA_Joystick::GetNumberOfButtons() { +#ifdef DISABLE_SDL + return -1; +#else int number; if(m_isinit){ if(m_private->m_joystick){ @@ -220,11 +246,15 @@ } } return -1; +#endif } int SCA_Joystick::GetNumberOfHats() { +#ifdef DISABLE_SDL + return -1; +#else int number; if(m_isinit){ if(m_private->m_joystick){ @@ -233,10 +263,14 @@ } } return -1; +#endif } bool SCA_Joystick::CreateJoystickDevice(void) { +#ifdef DISABLE_SDL + return false; +#else if(m_isinit == false){ if (m_joyindex>=SDL_NumJoysticks()) { // don't print a message, because this is done anyway @@ -251,11 +285,13 @@ m_isinit = true; } return true; +#endif } void SCA_Joystick::DestroyJoystickDevice(void) { +#ifndef DISABLE_SDL if (m_isinit){ if(SDL_JoystickOpened(m_joyindex)){ echo("Closing-joystick " << m_joyindex); @@ -263,21 +299,21 @@ } m_isinit = false; } +#endif } int SCA_Joystick::Connected(void) { - if (m_isinit){ - if(SDL_JoystickOpened(m_joyindex)){ - return 1; - } - } - +#ifndef DISABLE_SDL + if (m_isinit && SDL_JoystickOpened(m_joyindex)) + return 1; +#endif return 0; } void SCA_Joystick::pFillAxes() { +#ifndef DISABLE_SDL if(GetNumberOfAxes() == 1){ m_axis10 = SDL_JoystickGetAxis(m_private->m_joystick, 0); m_axis11 = SDL_JoystickGetAxis(m_private->m_joystick, 1); @@ -287,18 +323,20 @@ m_axis20 = SDL_JoystickGetAxis(m_private->m_joystick, 2); m_axis21 = SDL_JoystickGetAxis(m_private->m_joystick, 3); }else{ - m_axis10 = 0;m_axis11 = 0; - m_axis20 = 0;m_axis21 = 0; + m_axis10 = m_axis11 = m_axis20 = m_axis21 = 0; } +#endif } int SCA_Joystick::pGetAxis(int axisnum, int udlr) { +#ifndef DISABLE_SDL if(axisnum == 1 && udlr == 1)return m_axis10; //u/d if(axisnum == 1 && udlr == 0)return m_axis11; //l/r if(axisnum == 2 && udlr == 0)return m_axis20; //... if(axisnum == 2 && udlr == 1)return m_axis21; +#endif return 0; } Modified: trunk/blender/source/gameengine/GameLogic/Joystick/SCA_Joystick.h =================================================================== --- trunk/blender/source/gameengine/GameLogic/Joystick/SCA_Joystick.h 2008-09-21 04:39:40 UTC (rev 16644) +++ trunk/blender/source/gameengine/GameLogic/Joystick/SCA_Joystick.h 2008-09-21 05:38:28 UTC (rev 16645) @@ -45,9 +45,9 @@ static int m_refCount; class PrivateData; - +#ifndef DISABLE_SDL PrivateData *m_private; - +#endif int m_joyindex; /* @@ -104,6 +104,7 @@ /* is triggered */ bool m_istrig; +#ifndef DISABLE_SDL /* * event callbacks */ @@ -113,7 +114,7 @@ void OnButtonDown(SDL_Event *sdl_event); void OnNothing(SDL_Event *sdl_event); void OnBallMotion(SDL_Event *sdl_event){} - +#endif /* * Open the joystick */ @@ -226,8 +227,9 @@ */ int Connected(void); }; - +#ifndef DISABLE_SDL void Joystick_HandleEvents( void ); +#endif #endif Modified: trunk/blender/source/gameengine/GameLogic/Joystick/SCA_JoystickEvents.cpp =================================================================== --- trunk/blender/source/gameengine/GameLogic/Joystick/SCA_JoystickEvents.cpp 2008-09-21 04:39:40 UTC (rev 16644) +++ trunk/blender/source/gameengine/GameLogic/Joystick/SCA_JoystickEvents.cpp 2008-09-21 05:38:28 UTC (rev 16645) @@ -29,7 +29,7 @@ #include "SCA_JoystickPrivate.h" - +#ifndef DISABLE_SDL void SCA_Joystick::OnAxisMotion(SDL_Event* sdl_event) { pFillAxes(); @@ -102,3 +102,4 @@ } } } +#endif Modified: trunk/blender/source/gameengine/GameLogic/Joystick/SCA_JoystickPrivate.h =================================================================== --- trunk/blender/source/gameengine/GameLogic/Joystick/SCA_JoystickPrivate.h 2008-09-21 04:39:40 UTC (rev 16644) +++ trunk/blender/source/gameengine/GameLogic/Joystick/SCA_JoystickPrivate.h 2008-09-21 05:38:28 UTC (rev 16645) @@ -29,6 +29,7 @@ #define __SCA_JOYSTICKPRIVATE_H__ #include "SCA_Joystick.h" +#ifndef DISABLE_SDL class SCA_Joystick::PrivateData { public: @@ -43,3 +44,5 @@ } }; #endif + +#endif Modified: trunk/blender/source/gameengine/GameLogic/SCA_JoystickManager.cpp =================================================================== --- trunk/blender/source/gameengine/GameLogic/SCA_JoystickManager.cpp 2008-09-21 04:39:40 UTC (rev 16644) +++ trunk/blender/source/gameengine/GameLogic/SCA_JoystickManager.cpp 2008-09-21 05:38:28 UTC (rev 16645) @@ -63,9 +63,9 @@ } else { set<SCA_ISensor*>::iterator it; - +#ifndef DISABLE_SDL SCA_Joystick::HandleEvents(); /* Handle all SDL Joystick events */ - +#endif for (it = m_sensors.begin(); it != m_sensors.end(); it++) { SCA_JoystickSensor* joysensor = (SCA_JoystickSensor*)(*it); Modified: trunk/blender/source/gameengine/GameLogic/SConscript =================================================================== --- trunk/blender/source/gameengine/GameLogic/SConscript 2008-09-21 04:39:40 UTC (rev 16644) +++ trunk/blender/source/gameengine/GameLogic/SConscript 2008-09-21 05:38:28 UTC (rev 16645) @@ -10,4 +10,9 @@ incs += ' ' + env['BF_PYTHON_INC'] incs += ' ' + env['BF_SDL_INC'] -env.BlenderLib ( 'bf_logic', sources, Split(incs), [], libtype=['game','player'], priority=[30, 110] ) +defs = '' + +if not env['WITH_BF_SDL']: + defs += ' DISABLE_SDL' + +env.BlenderLib ( 'bf_logic', sources, Split(incs), Split(defs), libtype=['game','player'], priority=[30, 110] ) _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs