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

vgvgf at users.sourceforge.net vgvgf at users.sourceforge.net
Mon Jun 7 05:19:19 CEST 2010


Revision: 49473
          http://scummvm.svn.sourceforge.net/scummvm/?rev=49473&view=rev
Author:   vgvgf
Date:     2010-06-07 03:19:18 +0000 (Mon, 07 Jun 2010)

Log Message:
-----------
Removed code that is now in managers. Added mutex and graphics manager initialization and functions redirections.

Modified Paths:
--------------
    scummvm/branches/gsoc2010-opengl/backends/platform/sdl/sdl.cpp
    scummvm/branches/gsoc2010-opengl/backends/platform/sdl/sdl.h

Modified: scummvm/branches/gsoc2010-opengl/backends/platform/sdl/sdl.cpp
===================================================================
--- scummvm/branches/gsoc2010-opengl/backends/platform/sdl/sdl.cpp	2010-06-07 03:14:42 UTC (rev 49472)
+++ scummvm/branches/gsoc2010-opengl/backends/platform/sdl/sdl.cpp	2010-06-07 03:19:18 UTC (rev 49473)
@@ -87,50 +87,15 @@
 	return interval;
 }
 
-AspectRatio::AspectRatio(int w, int h) {
-	// TODO : Validation and so on...
-	// Currently, we just ensure the program don't instantiate non-supported aspect ratios
-	_kw = w;
-	_kh = h;
-}
-
-#if !defined(_WIN32_WCE) && !defined(__SYMBIAN32__) && defined(USE_SCALERS)
-static const size_t AR_COUNT = 4;
-static const char*       desiredAspectRatioAsStrings[AR_COUNT] = {            "auto",            "4/3",            "16/9",            "16/10" };
-static const AspectRatio desiredAspectRatios[AR_COUNT]         = { AspectRatio(0, 0), AspectRatio(4,3), AspectRatio(16,9), AspectRatio(16,10) };
-
-static AspectRatio getDesiredAspectRatio() {
-	//TODO : We could parse an arbitrary string, if we code enough proper validation
-	Common::String desiredAspectRatio = ConfMan.get("desired_screen_aspect_ratio");
-
-	for (size_t i = 0; i < AR_COUNT; i++) {
-		assert(desiredAspectRatioAsStrings[i] != NULL);
-
-		if (!scumm_stricmp(desiredAspectRatio.c_str(), desiredAspectRatioAsStrings[i])) {
-			return desiredAspectRatios[i];
-		}
-	}
-	// TODO : Report a warning
-	return AspectRatio(0, 0);
-}
-#endif
-
 void OSystem_SDL::initBackend() {
 	assert(!_inited);
 
 	int joystick_num = ConfMan.getInt("joystick_num");
-	uint32 sdlFlags = SDL_INIT_VIDEO | SDL_INIT_AUDIO | SDL_INIT_TIMER;
+	uint32 sdlFlags = 0;
 
 	if (ConfMan.hasKey("disable_sdl_parachute"))
 		sdlFlags |= SDL_INIT_NOPARACHUTE;
 
-#ifdef _WIN32_WCE
-	if (ConfMan.hasKey("use_GDI") && ConfMan.getBool("use_GDI")) {
-		SDL_VideoInit("windib", 0);
-		sdlFlags ^= SDL_INIT_VIDEO;
-	}
-#endif
-
 	if (joystick_num > -1)
 		sdlFlags |= SDL_INIT_JOYSTICK;
 
@@ -138,53 +103,15 @@
 		error("Could not initialize SDL: %s", SDL_GetError());
 	}
 
-	_graphicsMutex = createMutex();
-
-	SDL_ShowCursor(SDL_DISABLE);
-
 	// Enable unicode support if possible
 	SDL_EnableUNICODE(1);
 
-	memset(&_oldVideoMode, 0, sizeof(_oldVideoMode));
-	memset(&_videoMode, 0, sizeof(_videoMode));
-	memset(&_transactionDetails, 0, sizeof(_transactionDetails));
-
-	_cksumValid = false;
-#if !defined(_WIN32_WCE) && !defined(__SYMBIAN32__) && defined(USE_SCALERS)
-	_videoMode.mode = GFX_DOUBLESIZE;
-	_videoMode.scaleFactor = 2;
-	_videoMode.aspectRatioCorrection = ConfMan.getBool("aspect_ratio");
-	_videoMode.desiredAspectRatio = getDesiredAspectRatio();
-	_scalerProc = Normal2x;
-#else // for small screen platforms
-	_videoMode.mode = GFX_NORMAL;
-	_videoMode.scaleFactor = 1;
-	_videoMode.aspectRatioCorrection = false;
-	_scalerProc = Normal1x;
-#endif
-	_scalerType = 0;
-	_modeFlags = 0;
-
-#if !defined(_WIN32_WCE) && !defined(__SYMBIAN32__)
-	_videoMode.fullscreen = ConfMan.getBool("fullscreen");
-#else
-	_videoMode.fullscreen = true;
-#endif
-
-#if !defined(MACOSX) && !defined(__SYMBIAN32__)
-	// Setup a custom program icon.
-	// Don't set icon on OS X, as we use a nicer external icon there.
-	// Don't for Symbian: it uses the EScummVM.aif file for the icon.
-	setupIcon();
-#endif
-
 	// enable joystick
 	if (joystick_num > -1 && SDL_NumJoysticks() > 0) {
 		printf("Using joystick: %s\n", SDL_JoystickName(0));
 		_joystick = SDL_JoystickOpen(joystick_num);
 	}
 
-
 	// Create the savefile manager, if none exists yet (we check for this to
 	// allow subclasses to provide their own).
 	if (_savefile == 0) {
@@ -198,23 +125,45 @@
 	// Create and hook up the mixer, if none exists yet (we check for this to
 	// allow subclasses to provide their own).
 	if (_mixer == 0) {
+		// TODO: Implement SdlAudioManager
+		if (SDL_InitSubSystem(SDL_INIT_AUDIO) == -1) {
+			error("Could not initialize SDL: %s", SDL_GetError());
+		}
+
 		setupMixer();
 	}
 
 	// Create and hook up the timer manager, if none exists yet (we check for
 	// this to allow subclasses to provide their own).
 	if (_timer == 0) {
-		// Note: We could implement a custom SDLTimerManager by using
-		// SDL_AddTimer. That might yield better timer resolution, but it would
-		// also change the semantics of a timer: Right now, ScummVM timers
-		// *never* run in parallel, due to the way they are implemented. If we
-		// switched to SDL_AddTimer, each timer might run in a separate thread.
-		// However, not all our code is prepared for that, so we can't just
-		// switch. Still, it's a potential future change to keep in mind.
+		// TODO: Implement SdlTimerManager
+		if (SDL_InitSubSystem(SDL_INIT_TIMER) == -1) {
+			error("Could not initialize SDL: %s", SDL_GetError());
+		}
+
 		_timer = new DefaultTimerManager();
 		_timerID = SDL_AddTimer(10, &timer_handler, _timer);
 	}
 
+	// Create and hook up the mutex manager, if none exists yet (we check for
+	// this to allow subclasses to provide their own).
+	if (_mutexManager == 0) {
+		_mutexManager = new SdlMutexManager();
+	}
+
+	// Create and hook up the graphics manager, if none exists yet (we check for
+	// this to allow subclasses to provide their own).
+	if (_graphicsManager == 0) {
+		_graphicsManager = new SdlGraphicsManager();
+	}
+
+#if !defined(MACOSX) && !defined(__SYMBIAN32__)
+	// Setup a custom program icon.
+	// Don't set icon on OS X, as we use a nicer external icon there.
+	// Don't for Symbian: it uses the EScummVM.aif file for the icon.
+	setupIcon();
+#endif
+
 	// Invoke parent implementation of this method
 	OSystem::initBackend();
 
@@ -223,23 +172,9 @@
 
 OSystem_SDL::OSystem_SDL()
 	:
-#ifdef USE_OSD
-	_osdSurface(0), _osdAlpha(SDL_ALPHA_TRANSPARENT), _osdFadeStartTime(0),
-#endif
-	_hwscreen(0), _screen(0), _tmpscreen(0),
-#ifdef USE_RGB_COLOR
-	_screenFormat(Graphics::PixelFormat::createFormatCLUT8()),
-	_cursorFormat(Graphics::PixelFormat::createFormatCLUT8()),
-#endif
-	_overlayVisible(false),
-	_overlayscreen(0), _tmpscreen2(0),
-	_cdrom(0), _scalerProc(0), _modeChanged(false), _screenChangeCount(0), _dirtyChecksums(0),
+	_cdrom(0),
 	_scrollLock(false),
-	_mouseVisible(false), _mouseNeedsRedraw(false), _mouseData(0), _mouseSurface(0),
-	_mouseOrigSurface(0), _cursorTargetScale(1), _cursorPaletteDisabled(true),
 	_joystick(0),
-	_currentShakePos(0), _newShakePos(0),
-	_paletteDirtyStart(0), _paletteDirtyEnd(0),
 #if MIXER_DOUBLE_BUFFERING
 	_soundMutex(0), _soundCond(0), _soundThread(0),
 	_soundThreadIsRunning(false), _soundThreadShouldQuit(false),
@@ -248,22 +183,14 @@
 	_savefile(0),
 	_mixer(0),
 	_timer(0),
-	_screenIsLocked(false),
-	_graphicsMutex(0), _transactionMode(kTransactionNone) {
+	_mutexManager(0),
+	_graphicsManager(0) {
 
-	// allocate palette storage
-	_currentPalette = (SDL_Color *)calloc(sizeof(SDL_Color), 256);
-	_cursorPalette = (SDL_Color *)calloc(sizeof(SDL_Color), 256);
-
-	_mouseBackup.x = _mouseBackup.y = _mouseBackup.w = _mouseBackup.h = 0;
-
 	// reset mouse state
 	memset(&_km, 0, sizeof(_km));
-	memset(&_mouseCurState, 0, sizeof(_mouseCurState));
 
 	_inited = false;
 
-
 	#if defined(__amigaos4__)
 		_fsFactory = new AmigaOSFilesystemFactory();
 	#elif defined(UNIX)
@@ -281,11 +208,6 @@
 	SDL_RemoveTimer(_timerID);
 	closeMixer();
 
-	free(_dirtyChecksums);
-	free(_currentPalette);
-	free(_cursorPalette);
-	free(_mouseData);
-
 	delete _savefile;
 	delete _timer;
 }
@@ -450,50 +372,15 @@
 }
 
 bool OSystem_SDL::hasFeature(Feature f) {
-	return
-		(f == kFeatureFullscreenMode) ||
-		(f == kFeatureAspectRatioCorrection) ||
-		(f == kFeatureAutoComputeDirtyRects) ||
-		(f == kFeatureCursorHasPalette) ||
-		(f == kFeatureIconifyWindow);
+	return _graphicsManager->hasFeature(f);
 }
 
 void OSystem_SDL::setFeatureState(Feature f, bool enable) {
-	switch (f) {
-	case kFeatureFullscreenMode:
-		setFullscreenMode(enable);
-		break;
-	case kFeatureAspectRatioCorrection:
-		setAspectRatioCorrection(enable);
-		break;
-	case kFeatureAutoComputeDirtyRects:
-		if (enable)
-			_modeFlags |= DF_WANT_RECT_OPTIM;
-		else
-			_modeFlags &= ~DF_WANT_RECT_OPTIM;
-		break;
-	case kFeatureIconifyWindow:
-		if (enable)
-			SDL_WM_IconifyWindow();
-		break;
-	default:
-		break;
-	}
+	_graphicsManager->setFeatureState(f, enable);
 }
 
 bool OSystem_SDL::getFeatureState(Feature f) {
-	assert (_transactionMode == kTransactionNone);
-
-	switch (f) {
-	case kFeatureFullscreenMode:
-		return _videoMode.fullscreen;
-	case kFeatureAspectRatioCorrection:
-		return _videoMode.aspectRatioCorrection;
-	case kFeatureAutoComputeDirtyRects:
-		return _modeFlags & DF_WANT_RECT_OPTIM;
-	default:
-		return false;
-	}
+	return _graphicsManager->getFeatureState(f);
 }
 
 void OSystem_SDL::deinit() {
@@ -501,8 +388,6 @@
 		SDL_CDStop(_cdrom);
 		SDL_CDClose(_cdrom);
 	}
-	unloadGFXMode();
-	deleteMutex(_graphicsMutex);
 
 	if (_joystick)
 		SDL_JoystickClose(_joystick);
@@ -512,11 +397,6 @@
 	SDL_RemoveTimer(_timerID);
 	closeMixer();
 
-	free(_dirtyChecksums);
-	free(_currentPalette);
-	free(_cursorPalette);
-	free(_mouseData);
-
 	delete _timer;
 
 	SDL_Quit();
@@ -587,20 +467,24 @@
 	free(icon);
 }
 
+#pragma mark -
+#pragma mark --- Mutex ---
+#pragma mark -
+
 OSystem::MutexRef OSystem_SDL::createMutex() {
-	return (MutexRef) SDL_CreateMutex();
+	return _mutexManager->createMutex();
 }
 
 void OSystem_SDL::lockMutex(MutexRef mutex) {
-	SDL_mutexP((SDL_mutex *) mutex);
+	_mutexManager->lockMutex(mutex);
 }
 
 void OSystem_SDL::unlockMutex(MutexRef mutex) {
-	SDL_mutexV((SDL_mutex *) mutex);
+	_mutexManager->unlockMutex(mutex);
 }
 
 void OSystem_SDL::deleteMutex(MutexRef mutex) {
-	SDL_DestroyMutex((SDL_mutex *) mutex);
+	_mutexManager->deleteMutex(mutex);
 }
 
 #pragma mark -
@@ -873,3 +757,147 @@
 		_cdEndTime = SDL_GetTicks() + _cdrom->track[_cdTrack].length * 1000 / CD_FPS;
 	}
 }
+
+#pragma mark -
+#pragma mark --- Graphics ---
+#pragma mark -
+
+const OSystem::GraphicsMode *OSystem_SDL::getSupportedGraphicsModes() const {
+	return _graphicsManager->getSupportedGraphicsModes();
+}
+
+int OSystem_SDL::getDefaultGraphicsMode() const {
+	return _graphicsManager->getDefaultGraphicsMode();
+}
+
+bool OSystem_SDL::setGraphicsMode(int mode) {
+	return _graphicsManager->setGraphicsMode(mode);
+}
+
+int OSystem_SDL::getGraphicsMode() const {
+	return _graphicsManager->getGraphicsMode();
+}
+
+#ifdef USE_RGB_COLOR
+Graphics::PixelFormat OSystem_SDL::getScreenFormat() const {
+	return _graphicsManager->getScreenFormat();
+}
+
+Common::List<Graphics::PixelFormat> OSystem_SDL::getSupportedFormats() {
+	return _graphicsManager->getSupportedFormats();
+}
+#endif
+
+void OSystem_SDL::beginGFXTransaction() {
+	_graphicsManager->beginGFXTransaction();
+}
+
+OSystem::TransactionError OSystem_SDL::endGFXTransaction() {
+	return _graphicsManager->endGFXTransaction();
+}
+
+void OSystem_SDL::initSize(uint w, uint h, const Graphics::PixelFormat *format ) {
+	_graphicsManager->initSize(w, h, format);
+}
+
+int16 OSystem_SDL::getHeight() {
+	return _graphicsManager->getHeight();
+}
+
+int16 OSystem_SDL::getWidth() {
+	return _graphicsManager->getWidth();
+}
+
+void OSystem_SDL::setPalette(const byte *colors, uint start, uint num) {
+	_graphicsManager->setPalette(colors, start, num);
+}
+
+void OSystem_SDL::grabPalette(byte *colors, uint start, uint num) {
+	_graphicsManager->grabPalette(colors, start, num);
+}
+
+void OSystem_SDL::copyRectToScreen(const byte *buf, int pitch, int x, int y, int w, int h) {
+	_graphicsManager->copyRectToScreen(buf, pitch, x, y, w, h);
+}
+
+Graphics::Surface *OSystem_SDL::lockScreen() {
+	return _graphicsManager->lockScreen();
+}
+
+void OSystem_SDL::unlockScreen() {
+	_graphicsManager->unlockScreen();
+}
+
+/*void OSystem_SDL::fillScreen(uint32 col) {
+	_graphicsManager->fillScreen(col);
+}*/
+
+void OSystem_SDL::updateScreen() {
+	_graphicsManager->updateScreen();
+}
+
+void OSystem_SDL::setShakePos(int shakeOffset) {
+	_graphicsManager->setShakePos(shakeOffset);
+}
+
+void OSystem_SDL::showOverlay() {
+	_graphicsManager->showOverlay();
+}
+
+void OSystem_SDL::hideOverlay() {
+	_graphicsManager->hideOverlay();
+}
+
+Graphics::PixelFormat OSystem_SDL::getOverlayFormat() const {
+	return _graphicsManager->getOverlayFormat();
+}
+
+void OSystem_SDL::clearOverlay() {
+	_graphicsManager->clearOverlay();
+}
+
+void OSystem_SDL::grabOverlay(OverlayColor *buf, int pitch) {
+	_graphicsManager->grabOverlay(buf, pitch);
+}
+
+void OSystem_SDL::copyRectToOverlay(const OverlayColor *buf, int pitch, int x, int y, int w, int h) {
+	_graphicsManager->copyRectToOverlay(buf, pitch, x, y, w, h);
+}
+
+int16 OSystem_SDL::getOverlayHeight() {
+	return _graphicsManager->getOverlayHeight();
+}
+
+int16 OSystem_SDL::getOverlayWidth() {
+	return _graphicsManager->getOverlayWidth();
+}
+
+bool OSystem_SDL::showMouse(bool visible) {
+	return _graphicsManager->showMouse(visible);
+}
+
+void OSystem_SDL::warpMouse(int x, int y) {
+	_graphicsManager->warpMouse(x, y);
+}
+
+void OSystem_SDL::setMouseCursor(const byte *buf, uint w, uint h, int hotspotX, int hotspotY, uint32 keycolor, int cursorTargetScale, const Graphics::PixelFormat *format) {
+	_graphicsManager->setMouseCursor(buf, w, h, hotspotX, hotspotY, keycolor, cursorTargetScale, format);
+}
+
+void OSystem_SDL::setCursorPalette(const byte *colors, uint start, uint num) {
+	_graphicsManager->setCursorPalette(colors, start, num);
+}
+
+void OSystem_SDL::disableCursorPalette(bool disable) {
+	_graphicsManager->disableCursorPalette(disable);
+}
+
+int OSystem_SDL::getScreenChangeID() const {
+	return _graphicsManager->getScreenChangeID();
+}
+
+#ifdef USE_OSD
+void OSystem_SDL::displayMessageOnOSD(const char *msg) {
+	_graphicsManager->displayMessageOnOSD(msg);
+}
+#endif

Modified: scummvm/branches/gsoc2010-opengl/backends/platform/sdl/sdl.h
===================================================================
--- scummvm/branches/gsoc2010-opengl/backends/platform/sdl/sdl.h	2010-06-07 03:14:42 UTC (rev 49472)
+++ scummvm/branches/gsoc2010-opengl/backends/platform/sdl/sdl.h	2010-06-07 03:19:18 UTC (rev 49473)
@@ -33,6 +33,10 @@
 #endif
 
 #include "backends/base-backend.h"
+
+#include "backends/mutex/sdl/sdl-mutex.h"
+#include "backends/graphics/sdl/sdl-graphics.h"
+
 #include "graphics/scaler.h"
 
 
@@ -54,35 +58,6 @@
 #define MIXER_DOUBLE_BUFFERING 1
 #endif
 
-
-enum {
-	GFX_NORMAL = 0,
-	GFX_DOUBLESIZE = 1,
-	GFX_TRIPLESIZE = 2,
-	GFX_2XSAI = 3,
-	GFX_SUPER2XSAI = 4,
-	GFX_SUPEREAGLE = 5,
-	GFX_ADVMAME2X = 6,
-	GFX_ADVMAME3X = 7,
-	GFX_HQ2X = 8,
-	GFX_HQ3X = 9,
-	GFX_TV2X = 10,
-	GFX_DOTMATRIX = 11
-};
-
-class AspectRatio {
-	int _kw, _kh;
-public:
-	AspectRatio() { _kw = _kh = 0; }
-	AspectRatio(int w, int h);
-
-	bool isAuto() const { return (_kw | _kh) == 0; }
-
-	int kw() const { return _kw; }
-	int kh() const { return _kh; }
-};
-
-
 class OSystem_SDL : public BaseBackend {
 public:
 	OSystem_SDL();
@@ -90,12 +65,18 @@
 
 	virtual void initBackend();
 
+
+protected:
+	SdlMutexManager *_mutexManager;
+	SdlGraphicsManager *_graphicsManager;
+
+public:
 	void beginGFXTransaction();
 	TransactionError endGFXTransaction();
 
 #ifdef USE_RGB_COLOR
 	// Game screen
-	virtual Graphics::PixelFormat getScreenFormat() const { return _screenFormat; }
+	virtual Graphics::PixelFormat getScreenFormat() const;
 
 	// Highest supported
 	virtual Common::List<Graphics::PixelFormat> getSupportedFormats();
@@ -105,7 +86,7 @@
 	// Typically, 320x200 CLUT8
 	virtual void initSize(uint w, uint h, const Graphics::PixelFormat *format); // overloaded by CE backend
 
-	virtual int getScreenChangeID() const { return _screenChangeCount; }
+	virtual int getScreenChangeID() const;
 
 	// Set colors of the palette
 	void setPalette(const byte *colors, uint start, uint num);
@@ -138,10 +119,7 @@
 	void setCursorPalette(const byte *colors, uint start, uint num);
 
 	// Disables or enables cursor palette
-	void disableCursorPalette(bool disable) {
-		_cursorPaletteDisabled = disable;
-		blitCursor();
-	}
+	void disableCursorPalette(bool disable);
 
 	// Shaking is used in SCUMM. Set current shake position.
 	void setShakePos(int shake_pos);
@@ -214,7 +192,7 @@
 	void deleteMutex(MutexRef mutex);
 
 	// Overlay
-	virtual Graphics::PixelFormat getOverlayFormat() const { return _overlayFormat; }
+	virtual Graphics::PixelFormat getOverlayFormat() const;
 
 	virtual void showOverlay();
 	virtual void hideOverlay();
@@ -223,8 +201,8 @@
 	virtual void copyRectToOverlay(const OverlayColor *buf, int pitch, int x, int y, int w, int h);
 	virtual int16 getHeight();
 	virtual int16 getWidth();
-	virtual int16 getOverlayHeight()  { return _videoMode.overlayHeight; }
-	virtual int16 getOverlayWidth()   { return _videoMode.overlayWidth; }
+	virtual int16 getOverlayHeight();
+	virtual int16 getOverlayWidth();
 
 	virtual const GraphicsMode *getSupportedGraphicsModes() const;
 	virtual int getDefaultGraphicsMode() const;
@@ -254,110 +232,11 @@
 	bool _inited;
 	SDL_AudioSpec _obtainedRate;
 
-#ifdef USE_OSD
-	SDL_Surface *_osdSurface;
-	Uint8 _osdAlpha;			// Transparency level of the OSD
-	uint32 _osdFadeStartTime;	// When to start the fade out
-	enum {
-		kOSDFadeOutDelay = 2 * 1000,	// Delay before the OSD is faded out (in milliseconds)
-		kOSDFadeOutDuration = 500,		// Duration of the OSD fade out (in milliseconds)
-		kOSDColorKey = 1,
-		kOSDInitialAlpha = 80			// Initial alpha level, in percent
-	};
-#endif
-
-	// hardware screen
-	SDL_Surface *_hwscreen;
-
-	// unseen game screen
-	SDL_Surface *_screen;
-#ifdef USE_RGB_COLOR
-	Graphics::PixelFormat _screenFormat;
-	Graphics::PixelFormat _cursorFormat;
-#endif
-
-	// temporary screen (for scalers)
-	SDL_Surface *_tmpscreen;
-	SDL_Surface *_tmpscreen2;
-
-	// overlay
-	SDL_Surface *_overlayscreen;
-	bool _overlayVisible;
-	Graphics::PixelFormat _overlayFormat;
-
 	// CD Audio
 	SDL_CD *_cdrom;
 	int _cdTrack, _cdNumLoops, _cdStartFrame, _cdDuration;
 	uint32 _cdEndTime, _cdStopTime;
 
-	enum {
-		DF_WANT_RECT_OPTIM			= 1 << 0
-	};
-
-	enum {
-		kTransactionNone = 0,
-		kTransactionActive = 1,
-		kTransactionRollback = 2
-	};
-
-	struct TransactionDetails {
-		bool sizeChanged;
-		bool needHotswap;
-		bool needUpdatescreen;
-		bool normal1xScaler;
-#ifdef USE_RGB_COLOR
-		bool formatChanged;
-#endif
-	};
-	TransactionDetails _transactionDetails;
-
-	struct VideoState {
-		bool setup;
-
-		bool fullscreen;
-		bool aspectRatioCorrection;
-		AspectRatio desiredAspectRatio;
-
-		int mode;
-		int scaleFactor;
-
-		int screenWidth, screenHeight;
-		int overlayWidth, overlayHeight;
-		int hardwareWidth, hardwareHeight;
-#ifdef USE_RGB_COLOR
-		Graphics::PixelFormat format;
-#endif
-	};
-	VideoState _videoMode, _oldVideoMode;
-
-	virtual void setGraphicsModeIntern(); // overloaded by CE backend
-
-	/** Force full redraw on next updateScreen */
-	bool _forceFull;
-	ScalerProc *_scalerProc;
-	int _scalerType;
-	int _transactionMode;
-
-	bool _screenIsLocked;
-	Graphics::Surface _framebuffer;
-
-	/** Current video mode flags (see DF_* constants) */
-	uint32 _modeFlags;
-	bool _modeChanged;
-	int _screenChangeCount;
-
-	enum {
-		NUM_DIRTY_RECT = 100,
-		MAX_SCALING = 3
-	};
-
-	// Dirty rect management
-	SDL_Rect _dirtyRectList[NUM_DIRTY_RECT];
-	int _numDirtyRects;
-	uint32 *_dirtyChecksums;
-	bool _cksumValid;
-	int _cksumNum;
-
 	// Keyboard mouse emulation.  Disabled by fingolfin 2004-12-18.
 	// I am keeping the rest of the code in for now, since the joystick
 	// code (or rather, "hack") uses it, too.
@@ -366,50 +245,7 @@
 		uint32 last_time, delay_time, x_down_time, y_down_time;
 	};
 
-	struct MousePos {
-		// The mouse position, using either virtual (game) or real
-		// (overlay) coordinates.
-		int16 x, y;
-
-		// The size and hotspot of the original cursor image.
-		int16 w, h;
-		int16 hotX, hotY;
-
-		// The size and hotspot of the pre-scaled cursor image, in real
-		// coordinates.
-		int16 rW, rH;
-		int16 rHotX, rHotY;
-
-		// The size and hotspot of the pre-scaled cursor image, in game
-		// coordinates.
-		int16 vW, vH;
-		int16 vHotX, vHotY;
-
-		MousePos() : x(0), y(0), w(0), h(0), hotX(0), hotY(0),
-		             rW(0), rH(0), rHotX(0), rHotY(0), vW(0), vH(0),
-		             vHotX(0), vHotY(0)
-			{ }
-	};
-
-	// mouse
 	KbdMouse _km;
-	bool _mouseVisible;
-	bool _mouseNeedsRedraw;
-	byte *_mouseData;
-	SDL_Rect _mouseBackup;
-	MousePos _mouseCurState;
-#ifdef USE_RGB_COLOR
-	uint32 _mouseKeyColor;
-#else
-	byte _mouseKeyColor;
-#endif
-	int _cursorTargetScale;
-	bool _cursorPaletteDisabled;
-	SDL_Surface *_mouseOrigSurface;
-	SDL_Surface *_mouseSurface;
-	enum {
-		kMouseColorKey = 1
-	};
 
 	// Scroll lock state - since SDL doesn't track it
 	bool _scrollLock;
@@ -417,23 +253,6 @@
 	// joystick
 	SDL_Joystick *_joystick;
 
-	// Shake mode
-	int _currentShakePos;
-	int _newShakePos;
-
-	// Palette data
-	SDL_Color *_currentPalette;
-	uint _paletteDirtyStart, _paletteDirtyEnd;
-
-	// Cursor palette data
-	SDL_Color *_cursorPalette;
-
-	/**
-	 * Mutex which prevents multiple threads from interfering with each other
-	 * when accessing the screen.
-	 */
-	MutexRef _graphicsMutex;
-
 #ifdef MIXER_DOUBLE_BUFFERING
 	SDL_mutex *_soundMutex;
 	SDL_cond *_soundCond;
@@ -459,40 +278,14 @@
 	Common::TimerManager *_timer;
 
 protected:
-	void addDirtyRgnAuto(const byte *buf);
-	void makeChecksums(const byte *buf);
-
-	virtual void addDirtyRect(int x, int y, int w, int h, bool realCoordinates = false); // overloaded by CE backend
-
-	virtual void drawMouse(); // overloaded by CE backend
-	virtual void undrawMouse(); // overloaded by CE backend (FIXME)
-	virtual void blitCursor(); // overloaded by CE backend (FIXME)
-
-	/** Set the position of the virtual mouse cursor. */
-	void setMousePos(int x, int y);
 	virtual void fillMouseEvent(Common::Event &event, int x, int y); // overloaded by CE backend
 	void toggleMouseGrab();
 
-	virtual void internUpdateScreen(); // overloaded by CE backend
+	void handleKbdMouse();
 
-	virtual bool loadGFXMode(); // overloaded by CE backend
-	virtual void unloadGFXMode(); // overloaded by CE backend
-	virtual bool hotswapGFXMode(); // overloaded by CE backend
-
-	void setFullscreenMode(bool enable);
-	void setAspectRatioCorrection(bool enable);
-
-	virtual bool saveScreenshot(const char *filename); // overloaded by CE backend
-
-	int effectiveScreenHeight() const;
-
 	void setupIcon();
-	void handleKbdMouse();
 
 	virtual bool remapKey(SDL_Event &ev, Common::Event &event);
-
-	bool handleScalerHotkeys(const SDL_KeyboardEvent &key);
-	bool isScalerHotkey(const Common::Event &event);
 };
 
 #endif


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