aboutsummaryrefslogtreecommitdiff
path: root/backends/graphics/openglsdl/openglsdl-graphics.h
diff options
context:
space:
mode:
authorJohannes Schickel2011-08-08 23:56:54 +0200
committerJohannes Schickel2011-08-09 00:03:11 +0200
commit04ab0e58b4142bf58db2180a2bac6897821d069f (patch)
tree90d2ac00281dddf627a72b4ceb6e1add0c5960fd /backends/graphics/openglsdl/openglsdl-graphics.h
parent0630a88a04e9688d664751b6a68edf622d76b348 (diff)
downloadscummvm-rg350-04ab0e58b4142bf58db2180a2bac6897821d069f.tar.gz
scummvm-rg350-04ab0e58b4142bf58db2180a2bac6897821d069f.tar.bz2
scummvm-rg350-04ab0e58b4142bf58db2180a2bac6897821d069f.zip
SDL: Take advantage of SdlGraphicsManager.
This gets rid of the hacks, where SdlEventSource added events with custom type numbers to pass SDL_VIDEOEXPOSE and SDL_VIDEORESIZE to the graphics manager. Furthermore it get rids of the uninituitive and hard to trace way of assigning the proper mouse coordinates to mouse related events. Formerly it passed the real screen coordinates through the even dispatching api to the graphics manager (at least hopefully ;-) and let that handle creating a new event with the proper coordinates. Now instead SdlEventSource handles the proper coordinate setup itself. Since this is a behavior change and I can not test all the SDL based small devices ports this commit might break compilation for them and more serve it might also break mouse position behavior. If any of that occurs I am sorry about it.
Diffstat (limited to 'backends/graphics/openglsdl/openglsdl-graphics.h')
-rw-r--r--backends/graphics/openglsdl/openglsdl-graphics.h8
1 files changed, 5 insertions, 3 deletions
diff --git a/backends/graphics/openglsdl/openglsdl-graphics.h b/backends/graphics/openglsdl/openglsdl-graphics.h
index 6cd255bbb8..1587183328 100644
--- a/backends/graphics/openglsdl/openglsdl-graphics.h
+++ b/backends/graphics/openglsdl/openglsdl-graphics.h
@@ -23,18 +23,19 @@
#ifndef BACKENDS_GRAPHICS_OPENGLSDL_H
#define BACKENDS_GRAPHICS_OPENGLSDL_H
+#include "backends/platform/sdl/sdl-sys.h"
#if defined(ARRAYSIZE) && !defined(_WINDOWS_)
#undef ARRAYSIZE
#endif
-#include "backends/platform/sdl/sdl-sys.h"
#include "backends/graphics/sdl/sdl-graphics.h"
-
#include "backends/graphics/opengl/opengl-graphics.h"
+#include "common/events.h"
+
/**
* SDL OpenGL graphics manager
*/
-class OpenGLSdlGraphicsManager : public OpenGLGraphicsManager, public SdlGraphicsManager {
+class OpenGLSdlGraphicsManager : public OpenGLGraphicsManager, public SdlGraphicsManager, public Common::EventObserver {
public:
OpenGLSdlGraphicsManager(SdlEventSource *eventSource);
virtual ~OpenGLSdlGraphicsManager();
@@ -46,6 +47,7 @@ public:
virtual Common::List<Graphics::PixelFormat> getSupportedFormats() const;
#endif
+ virtual void initEventObserver();
virtual bool notifyEvent(const Common::Event &event);
virtual void updateScreen();