[Scummvm-cvs-logs] SF.net SVN: scummvm:[49681] scummvm/branches/gsoc2010-opengl/backends

vgvgf at users.sourceforge.net vgvgf at users.sourceforge.net
Tue Jun 15 07:53:15 CEST 2010


Revision: 49681
          http://scummvm.svn.sourceforge.net/scummvm/?rev=49681&view=rev
Author:   vgvgf
Date:     2010-06-15 05:53:15 +0000 (Tue, 15 Jun 2010)

Log Message:
-----------
Adapted null backend to ModularBackend.

Modified Paths:
--------------
    scummvm/branches/gsoc2010-opengl/backends/graphics/null/null-graphics.h
    scummvm/branches/gsoc2010-opengl/backends/modular-backend.h
    scummvm/branches/gsoc2010-opengl/backends/platform/null/null.cpp

Modified: scummvm/branches/gsoc2010-opengl/backends/graphics/null/null-graphics.h
===================================================================
--- scummvm/branches/gsoc2010-opengl/backends/graphics/null/null-graphics.h	2010-06-15 05:34:37 UTC (rev 49680)
+++ scummvm/branches/gsoc2010-opengl/backends/graphics/null/null-graphics.h	2010-06-15 05:53:15 UTC (rev 49681)
@@ -32,25 +32,30 @@
 
 class NullGraphicsManager : GraphicsManager {
 public:
-	~NullGraphicsManager() {}
+	virtual ~NullGraphicsManager() {}
 
 	bool hasFeature(OSystem::Feature f) { return false; }
 	void setFeatureState(OSystem::Feature f, bool enable) {}
 	bool getFeatureState(OSystem::Feature f) { return false; }
 
-	const OSystem::GraphicsMode *getSupportedGraphicsModes() { return s_noGraphicsModes; }
-	int getDefaultGraphicsMode() { return 0; }
+	const OSystem::GraphicsMode *getSupportedGraphicsModes() const { return s_noGraphicsModes; }
+	int getDefaultGraphicsMode() const { return 0; }
 	bool setGraphicsMode(int mode) { return true; }
-	int getGraphicsMode() { return 0; }
+	int getGraphicsMode() const { return 0; }
 	inline Graphics::PixelFormat getScreenFormat() const {
 		return Graphics::PixelFormat::createFormatCLUT8();
 	};
-	inline Common::List<Graphics::PixelFormat> getSupportedFormats() const {
+	inline Common::List<Graphics::PixelFormat> getSupportedFormats() {
 		Common::List<Graphics::PixelFormat> list;
 		list.push_back(Graphics::PixelFormat::createFormatCLUT8());
 		return list;
 	};
 	void initSize(uint width, uint height, const Graphics::PixelFormat *format = NULL) {}
+	virtual int getScreenChangeID() const { return 0; }
+
+	void beginGFXTransaction() {}
+	OSystem::TransactionError endGFXTransaction() { return OSystem::kTransactionSuccess; }
+
 	int16 getHeight() { return 0; }
 	int16 getWidth() { return 0; }
 	void setPalette(const byte *colors, uint start, uint num) {}
@@ -61,17 +66,23 @@
 	void fillScreen(uint32 col) {}
 	void updateScreen() {}
 	void setShakePos(int shakeOffset) {}
+	void setFocusRectangle(const Common::Rect& rect) {}
+	void clearFocusRectangle() {}
+
 	void showOverlay() {}
 	void hideOverlay() {}
-	Graphics::PixelFormat getOverlayFormat() { return Graphics::PixelFormat(); }
+	Graphics::PixelFormat getOverlayFormat() const { return Graphics::PixelFormat(); }
 	void clearOverlay() {}
 	void grabOverlay(OverlayColor *buf, int pitch) {}
 	void copyRectToOverlay(const OverlayColor *buf, int pitch, int x, int y, int w, int h) {}
 	int16 getOverlayHeight() { return 0; }
 	int16 getOverlayWidth() { return 0; }
+
 	bool showMouse(bool visible) { return !visible; }
 	void warpMouse(int x, int y) {}
 	void setMouseCursor(const byte *buf, uint w, uint h, int hotspotX, int hotspotY, uint32 keycolor, int cursorTargetScale = 1, const Graphics::PixelFormat *format = NULL) {}
+	void setCursorPalette(const byte *colors, uint start, uint num) {}
+	void disableCursorPalette(bool disable) {}
 };
 
 #endif

Modified: scummvm/branches/gsoc2010-opengl/backends/modular-backend.h
===================================================================
--- scummvm/branches/gsoc2010-opengl/backends/modular-backend.h	2010-06-15 05:34:37 UTC (rev 49680)
+++ scummvm/branches/gsoc2010-opengl/backends/modular-backend.h	2010-06-15 05:53:15 UTC (rev 49681)
@@ -28,6 +28,7 @@
 
 #include "common/system.h"
 #include "common/timer.h"
+#include "common/savefile.h"
 #include "backends/events/default/default-events.h"
 #include "backends/audiocd/default/default-audiocd.h"
 #include "backends/mutex/null/null-mutex.h"

Modified: scummvm/branches/gsoc2010-opengl/backends/platform/null/null.cpp
===================================================================
--- scummvm/branches/gsoc2010-opengl/backends/platform/null/null.cpp	2010-06-15 05:34:37 UTC (rev 49680)
+++ scummvm/branches/gsoc2010-opengl/backends/platform/null/null.cpp	2010-06-15 05:53:15 UTC (rev 49681)
@@ -23,22 +23,14 @@
  *
  */
 
-#include "backends/base-backend.h"
+#include "backends/modular-backend.h"
 #include "base/main.h"
 
 #if defined(USE_NULL_DRIVER)
-
-#ifdef UNIX
-#include <unistd.h>
-#include <sys/time.h>
-#endif
-
-#include "common/rect.h"
-#include "graphics/colormasks.h"
-
 #include "backends/saves/default/default-saves.h"
 #include "backends/timer/default/default-timer.h"
 #include "sound/mixer_intern.h"
+#include "common/scummsys.h"
 
 /*
  * Include header files needed for the getFilesystemFactory() method.
@@ -51,82 +43,22 @@
 	#include "backends/fs/windows/windows-fs-factory.h"
 #endif
 
-class OSystem_NULL : public BaseBackend {
-protected:
-	Common::SaveFileManager *_savefile;
-	Audio::MixerImpl *_mixer;
-	Common::TimerManager *_timer;
-	FilesystemFactory *_fsFactory;
-
-	timeval _startTime;
+class OSystem_NULL : public ModularBackend {
 public:
-
 	OSystem_NULL();
 	virtual ~OSystem_NULL();
 
 	virtual void initBackend();
 
-	virtual bool hasFeature(Feature f);
-	virtual void setFeatureState(Feature f, bool enable);
-	virtual bool getFeatureState(Feature f);
-	virtual const GraphicsMode *getSupportedGraphicsModes() const;
-	virtual int getDefaultGraphicsMode() const;
-	bool setGraphicsMode(const char *name);
-	virtual bool setGraphicsMode(int mode);
-	virtual int getGraphicsMode() const;
-	virtual void initSize(uint width, uint height, const Graphics::PixelFormat *format);
-	virtual int16 getHeight();
-	virtual int16 getWidth();
-	virtual void setPalette(const byte *colors, uint start, uint num);
-	virtual void grabPalette(byte *colors, uint start, uint num);
-	virtual void copyRectToScreen(const byte *buf, int pitch, int x, int y, int w, int h);
-	virtual void updateScreen();
-	virtual Graphics::Surface *lockScreen();
-	virtual void unlockScreen();
-	virtual void setShakePos(int shakeOffset);
-
-	virtual void showOverlay();
-	virtual void hideOverlay();
-	virtual void clearOverlay();
-	virtual void grabOverlay(OverlayColor *buf, int pitch);
-	virtual void copyRectToOverlay(const OverlayColor *buf, int pitch, int x, int y, int w, int h);
-	virtual int16 getOverlayHeight();
-	virtual int16 getOverlayWidth();
-	virtual Graphics::PixelFormat getOverlayFormat() const { return Graphics::createPixelFormat<565>(); }
-
-	virtual bool showMouse(bool visible);
-
-	virtual void warpMouse(int x, int y);
-	virtual void setMouseCursor(const byte *buf, uint w, uint h, int hotspotX, int hotspotY, uint32 keycolor, int cursorTargetScale, const Graphics::PixelFormat *format);
-
 	virtual bool pollEvent(Common::Event &event);
-	virtual uint32 getMillis();
-	virtual void delayMillis(uint msecs);
 
-	virtual MutexRef createMutex(void);
-	virtual void lockMutex(MutexRef mutex);
-	virtual void unlockMutex(MutexRef mutex);
-	virtual void deleteMutex(MutexRef mutex);
-
 	virtual void quit();
 
-	virtual Common::SaveFileManager *getSavefileManager();
-	virtual Audio::Mixer *getMixer();
-	virtual void getTimeAndDate(TimeDate &t) const;
-	virtual Common::TimerManager *getTimerManager();
-	FilesystemFactory *getFilesystemFactory();
-
+	virtual Common::SeekableReadStream *createConfigReadStream();
+	virtual Common::WriteStream *createConfigWriteStream();
 };
 
-static const OSystem::GraphicsMode s_supportedGraphicsModes[] = {
-	{0, 0, 0}
-};
-
 OSystem_NULL::OSystem_NULL() {
-	_savefile = 0;
-	_mixer = 0;
-	_timer = 0;
-
 	#if defined(__amigaos4__)
 		_fsFactory = new AmigaOSFilesystemFactory();
 	#elif defined(UNIX)
@@ -139,21 +71,19 @@
 }
 
 OSystem_NULL::~OSystem_NULL() {
-	delete _savefile;
-	delete _mixer;
-	delete _timer;
-	delete _fsFactory;
 }
 
 void OSystem_NULL::initBackend() {
-	_savefile = new DefaultSaveFileManager();
+	_mutexManager = (MutexManager *)new NullMutexManager();
+	_timerManager = new DefaultTimerManager();
+	_eventManager = new DefaultEventManager(this);
+	_savefileManager = new DefaultSaveFileManager();
+	_graphicsManager = (GraphicsManager *)new NullGraphicsManager();
+	_audiocdManager = (AudioCDManager *)new DefaultAudioCDManager();
 	_mixer = new Audio::MixerImpl(this, 22050);
-	_timer = new DefaultTimerManager();
+	
+	((Audio::MixerImpl *)_mixer)->setReady(false);
 
-	_mixer->setReady(false);
-
-	gettimeofday(&_startTime, NULL);
-
 	// Note that both the mixer and the timer manager are useless
 	// this way; they need to be hooked into the system somehow to
 	// be functional. Of course, can't do that in a NULL backend :).
@@ -161,165 +91,39 @@
 	OSystem::initBackend();
 }
 
-bool OSystem_NULL::hasFeature(Feature f) {
+bool OSystem_NULL::pollEvent(Common::Event &event) {
 	return false;
 }
 
-void OSystem_NULL::setFeatureState(Feature f, bool enable) {
+void OSystem_NULL::quit() {
 }
 
-bool OSystem_NULL::getFeatureState(Feature f) {
-	return false;
-}
+#if defined(UNIX)
+#if defined(SAMSUNGTV)
+#define DEFAULT_CONFIG_FILE "/dtv/usb/sda1/.scummvmrc"
+#else
+#define DEFAULT_CONFIG_FILE ".scummvmrc"
+#endif
+#endif
 
-const OSystem::GraphicsMode* OSystem_NULL::getSupportedGraphicsModes() const {
-	return s_supportedGraphicsModes;
-}
+#if !defined(UNIX)
+#define DEFAULT_CONFIG_FILE "scummvm.ini"
+#endif
 
-
-int OSystem_NULL::getDefaultGraphicsMode() const {
-	return -1;
+Common::SeekableReadStream *OSystem_NULL::createConfigReadStream() {
+	Common::FSNode file(DEFAULT_CONFIG_FILE);
+	return file.createReadStream();
 }
 
-bool OSystem_NULL::setGraphicsMode(const char *mode) {
-	return true;
-}
-
-bool OSystem_NULL::setGraphicsMode(int mode) {
-	return true;
-}
-
-int OSystem_NULL::getGraphicsMode() const {
-	return -1;
-}
-
-void OSystem_NULL::initSize(uint width, uint height, const Graphics::PixelFormat *format) {
-}
-
-int16 OSystem_NULL::getHeight() {
-	return 200;
-}
-
-int16 OSystem_NULL::getWidth() {
-	return 320;
-}
-
-void OSystem_NULL::setPalette(const byte *colors, uint start, uint num) {
-}
-
-void OSystem_NULL::grabPalette(byte *colors, uint start, uint num) {
-
-}
-
-void OSystem_NULL::copyRectToScreen(const byte *buf, int pitch, int x, int y, int w, int h) {
-}
-
-void OSystem_NULL::updateScreen() {
-}
-
-Graphics::Surface *OSystem_NULL::lockScreen() {
+Common::WriteStream *OSystem_NULL::createConfigWriteStream() {
+#ifdef __DC__
 	return 0;
-}
-
-void OSystem_NULL::unlockScreen() {
-}
-
-void OSystem_NULL::setShakePos(int shakeOffset) {
-}
-
-void OSystem_NULL::showOverlay() {
-}
-
-void OSystem_NULL::hideOverlay() {
-}
-
-void OSystem_NULL::clearOverlay() {
-}
-
-void OSystem_NULL::grabOverlay(OverlayColor *buf, int pitch) {
-}
-
-void OSystem_NULL::copyRectToOverlay(const OverlayColor *buf, int pitch, int x, int y, int w, int h) {
-}
-
-int16 OSystem_NULL::getOverlayHeight() {
-	return getHeight();
-}
-
-int16 OSystem_NULL::getOverlayWidth() {
-	return getWidth();
-}
-
-
-bool OSystem_NULL::showMouse(bool visible) {
-	return true;
-}
-
-void OSystem_NULL::warpMouse(int x, int y) {
-}
-
-void OSystem_NULL::setMouseCursor(const byte *buf, uint w, uint h, int hotspotX, int hotspotY, uint32 keycolor, int cursorTargetScale, const Graphics::PixelFormat *format) {
-}
-
-bool OSystem_NULL::pollEvent(Common::Event &event) {
-	return false;
-}
-
-uint32 OSystem_NULL::getMillis() {
-#ifdef UNIX
-	timeval curTime;
-	gettimeofday(&curTime, NULL);
-	return (uint32)(((curTime.tv_sec - _startTime.tv_sec) * 1000) + \
-			((curTime.tv_usec - _startTime.tv_usec) / 1000));
 #else
-	return 0;
+	Common::FSNode file(DEFAULT_CONFIG_FILE);
+	return file.createWriteStream();
 #endif
 }
 
-void OSystem_NULL::delayMillis(uint msecs) {
-#ifdef UNIX
-	usleep(msecs * 1000);
-#endif
-}
-
-OSystem::MutexRef OSystem_NULL::createMutex(void) {
-	return NULL;
-}
-
-void OSystem_NULL::lockMutex(MutexRef mutex) {
-}
-
-void OSystem_NULL::unlockMutex(MutexRef mutex) {
-}
-
-void OSystem_NULL::deleteMutex(MutexRef mutex) {
-}
-
-void OSystem_NULL::quit() {
-}
-
-Common::SaveFileManager *OSystem_NULL::getSavefileManager() {
-	assert(_savefile);
-	return _savefile;
-}
-
-Audio::Mixer *OSystem_NULL::getMixer() {
-	assert(_mixer);
-	return _mixer;
-}
-
-Common::TimerManager *OSystem_NULL::getTimerManager() {
-	assert(_timer);
-	return _timer;
-}
-
-void OSystem_NULL::getTimeAndDate(TimeDate &t) const {
-}
-
-FilesystemFactory *OSystem_NULL::getFilesystemFactory() {
-	return _fsFactory;
-}
-
 OSystem *OSystem_NULL_create() {
 	return new OSystem_NULL();
 }
@@ -330,7 +134,7 @@
 
 	// Invoke the actual ScummVM main entry point:
 	int res = scummvm_main(argc, argv);
-	g_system->quit();       // TODO: Consider removing / replacing this!
+	delete (OSystem_NULL *)g_system;
 	return res;
 }
 


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the Scummvm-git-logs mailing list