[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [16645] trunk/blender: game engine now compiles with SDL disabled.

Campbell Barton ideasman42 at gmail.com
Sun Sep 21 07:38:28 CEST 2008


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] )





More information about the Bf-blender-cvs mailing list