Skip to content

Commit

Permalink
OPENPANDORA: Free hiddenCursor on unloadGFXMode and cleanup screen se…
Browse files Browse the repository at this point in the history
…tup.

* Also remove some old cruft in the form of commented code.
(cherry picked from commit 6f978ee)
  • Loading branch information
djwillis committed Jul 24, 2012
1 parent 5886f39 commit ae75889
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 29 deletions.
27 changes: 20 additions & 7 deletions backends/graphics/openpandora/op-graphics.cpp
Expand Up @@ -26,7 +26,6 @@

#include "backends/graphics/openpandora/op-graphics.h"
#include "backends/events/openpandora/op-events.h"
//#include "backends/platform/openpandora/op-sdl.h"
#include "graphics/scaler/aspect.h"
#include "common/mutex.h"
#include "common/textconsole.h"
Expand Down Expand Up @@ -54,18 +53,32 @@ bool OPGraphicsManager::loadGFXMode() {
SDL_ShowCursor(SDL_ENABLE);
SDL_SetCursor(hiddenCursor);

/* FIXME: For now we just cheat and set the overlay to 640*480 not 800*480 and let SDL
deal with the boarders (it saves cleaning up the overlay when the game screen is
smaller than the overlay ;)
*/
//_videoMode.overlayWidth = 640;
//_videoMode.overlayHeight = 480;
_videoMode.fullscreen = true;

_videoMode.overlayWidth = _videoMode.screenWidth * _videoMode.scaleFactor;
_videoMode.overlayHeight = _videoMode.screenHeight * _videoMode.scaleFactor;

if (_videoMode.screenHeight != 200 && _videoMode.screenHeight != 400)
_videoMode.aspectRatioCorrection = false;

if (_videoMode.aspectRatioCorrection)
_videoMode.overlayHeight = real2Aspect(_videoMode.overlayHeight);

_videoMode.hardwareWidth = _videoMode.screenWidth * _videoMode.scaleFactor;
_videoMode.hardwareHeight = effectiveScreenHeight();

return SurfaceSdlGraphicsManager::loadGFXMode();
}

void OPGraphicsManager::unloadGFXMode() {

uint8_t hiddenCursorData = 0;
hiddenCursor = SDL_CreateCursor(&hiddenCursorData, &hiddenCursorData, 8, 1, 0, 0);

// Free the hidden SDL cursor created in loadGFXMode
SDL_FreeCursor(hiddenCursor);

SurfaceSdlGraphicsManager::unloadGFXMode();
}

#endif
23 changes: 1 addition & 22 deletions backends/graphics/openpandora/op-graphics.h
Expand Up @@ -24,7 +24,6 @@
#define BACKENDS_GRAPHICS_OP_H

#include "backends/graphics/surfacesdl/surfacesdl-graphics.h"
#include "graphics/scaler/aspect.h" // for aspect2Real
#include "graphics/scaler/downscaler.h"

enum {
Expand All @@ -35,28 +34,8 @@ class OPGraphicsManager : public SurfaceSdlGraphicsManager {
public:
OPGraphicsManager(SdlEventSource *sdlEventSource);

// bool hasFeature(OSystem::Feature f);
// void setFeatureState(OSystem::Feature f, bool enable);
// bool getFeatureState(OSystem::Feature f);
// int getDefaultGraphicsMode() const;

// void initSize(uint w, uint h, const Graphics::PixelFormat *format = NULL);
// const OSystem::GraphicsMode *getSupportedGraphicsModes() const;
// bool setGraphicsMode(const char *name);
// bool setGraphicsMode(int mode);
// void setGraphicsModeIntern();
// void internUpdateScreen();
// void showOverlay();
// void hideOverlay();
bool loadGFXMode();
// void drawMouse();
// void undrawMouse();
// virtual void warpMouse(int x, int y);

// SurfaceSdlGraphicsManager::MousePos *getMouseCurState();
// SurfaceSdlGraphicsManager::VideoState *getVideoMode();

// virtual void adjustMouseEvent(const Common::Event &event);
void unloadGFXMode();
};

#endif /* BACKENDS_GRAPHICS_OP_H */

0 comments on commit ae75889

Please sign in to comment.