aboutsummaryrefslogtreecommitdiff
path: root/backends/platform/android/android.h
diff options
context:
space:
mode:
authorCameron Cawley2019-09-08 19:37:48 +0100
committerGitHub2019-09-08 19:37:48 +0100
commit7a05624e1b3371a2823a46749083fe4bc9eb4a60 (patch)
treebbea40660b338a7f830a15a0d9d1a18ed283ccb5 /backends/platform/android/android.h
parent997e15878ad72e773ca3835b756daf02d0f7334d (diff)
downloadscummvm-rg350-7a05624e1b3371a2823a46749083fe4bc9eb4a60.tar.gz
scummvm-rg350-7a05624e1b3371a2823a46749083fe4bc9eb4a60.tar.bz2
scummvm-rg350-7a05624e1b3371a2823a46749083fe4bc9eb4a60.zip
ANDROID: Rewrite to make use of OpenGLGraphicsManager (#1695)
* ANDROID: Rewrite to make use of OpenGLGraphicsManager * ANDROID: Fix emulated mouse button up events
Diffstat (limited to 'backends/platform/android/android.h')
-rw-r--r--backends/platform/android/android.h173
1 files changed, 8 insertions, 165 deletions
diff --git a/backends/platform/android/android.h b/backends/platform/android/android.h
index d88df6b15f..96219c28de 100644
--- a/backends/platform/android/android.h
+++ b/backends/platform/android/android.h
@@ -28,25 +28,16 @@
#include "common/fs.h"
#include "common/archive.h"
#include "audio/mixer_intern.h"
-#include "graphics/palette.h"
-#include "graphics/surface.h"
-#include "backends/base-backend.h"
+#include "backends/modular-backend.h"
#include "backends/plugins/posix/posix-provider.h"
#include "backends/fs/posix/posix-fs-factory.h"
-#include "backends/platform/android/texture.h"
-
#include <pthread.h>
#include <android/log.h>
-#include <GLES/gl.h>
-#include <GLES/glext.h>
-
// toggles start
//#define ANDROID_DEBUG_ENTER
-//#define ANDROID_DEBUG_GL
-//#define ANDROID_DEBUG_GL_CALLS
// toggles end
extern const char *android_log_tag;
@@ -63,76 +54,13 @@ extern const char *android_log_tag;
#define ENTER(fmt, args...) do { } while (false)
#endif
-#ifdef ANDROID_DEBUG_GL
-extern void checkGlError(const char *expr, const char *file, int line);
-
-#ifdef ANDROID_DEBUG_GL_CALLS
-#define GLCALLLOG(x, before) \
- do { \
- if (before) \
- LOGD("calling '%s' (%s:%d)", x, __FILE__, __LINE__); \
- else \
- LOGD("returned from '%s' (%s:%d)", x, __FILE__, __LINE__); \
- } while (false)
-#else
-#define GLCALLLOG(x, before) do { } while (false)
-#endif
-
-#define GLCALL(x) \
- do { \
- GLCALLLOG(#x, true); \
- (x); \
- GLCALLLOG(#x, false); \
- checkGlError(#x, __FILE__, __LINE__); \
- } while (false)
-
-#define GLTHREADCHECK \
- do { \
- assert(pthread_self() == _main_thread); \
- } while (false)
-
-#else
-#define GLCALL(x) do { (x); } while (false)
-#define GLTHREADCHECK do { } while (false)
-#endif
-
-class MutexManager;
-
-class OSystem_Android : public EventsBaseBackend, public PaletteManager {
+class OSystem_Android : public ModularBackend, Common::EventSource {
private:
// passed from the dark side
int _audio_sample_rate;
int _audio_buffer_size;
int _screen_changeid;
- int _egl_surface_width;
- int _egl_surface_height;
- bool _htc_fail;
-
- bool _force_redraw;
-
- // Game layer
- GLESBaseTexture *_game_texture;
- int _shake_offset;
- Common::Rect _focus_rect;
-
- // Overlay layer
- GLES4444Texture *_overlay_texture;
- bool _show_overlay;
-
- // Mouse layer
- GLESBaseTexture *_mouse_texture;
- GLESBaseTexture *_mouse_texture_palette;
- GLES5551Texture *_mouse_texture_rgb;
- Common::Point _mouse_hotspot;
- uint32 _mouse_keycolor;
- int _mouse_targetscale;
- bool _show_mouse;
- bool _use_mouse_palette;
-
- int _graphicsMode;
- bool _fullscreen;
- bool _ar_correction;
pthread_t _main_thread;
@@ -144,70 +72,27 @@ private:
pthread_t _audio_thread;
static void *audioThreadFunc(void *arg);
- bool _enable_zoning;
bool _virtkeybd_on;
- MutexManager *_mutexManager;
Audio::MixerImpl *_mixer;
timeval _startTime;
Common::String getSystemProperty(const char *name) const;
- void initSurface();
- void deinitSurface();
- void initViewport();
-
- void initOverlay();
-
-#ifdef USE_RGB_COLOR
- void initTexture(GLESBaseTexture **texture, uint width, uint height,
- const Graphics::PixelFormat *format);
-#endif
-
void setupKeymapper();
- void setCursorPaletteInternal(const byte *colors, uint start, uint num);
+
+protected:
+ virtual Common::EventSource *getDefaultEventSource() { return this; }
public:
OSystem_Android(int audio_sample_rate, int audio_buffer_size);
virtual ~OSystem_Android();
virtual void initBackend();
- void enableZoning(bool enable) { _enable_zoning = enable; }
-
- 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;
- virtual bool setGraphicsMode(int mode);
- virtual int getGraphicsMode() const;
-
-#ifdef USE_RGB_COLOR
- virtual Graphics::PixelFormat getScreenFormat() const;
- virtual Common::List<Graphics::PixelFormat> getSupportedFormats() const;
-#endif
-
- virtual void initSize(uint width, uint height,
- const Graphics::PixelFormat *format);
-
- enum FixupType {
- kClear = 0, // glClear
- kClearSwap, // glClear + swapBuffers
- kClearUpdate // glClear + updateScreen
- };
-
- void clearScreen(FixupType type, byte count = 1);
- void updateScreenRect();
- virtual int getScreenChangeID() const;
-
- virtual int16 getHeight();
- virtual int16 getWidth();
-
- virtual PaletteManager *getPaletteManager() {
- return this;
- }
+ virtual bool hasFeature(OSystem::Feature f);
+ virtual void setFeatureState(OSystem::Feature f, bool enable);
+ virtual bool getFeatureState(OSystem::Feature f);
public:
void pushEvent(int type, int arg1, int arg2, int arg3, int arg4, int arg5, int arg6);
@@ -230,58 +115,16 @@ private:
void clipMouse(Common::Point &p);
void scaleMouse(Common::Point &p, int x, int y, bool deductDrawRect = true, bool touchpadMode = false);
- void updateEventScale();
- void disableCursorPalette();
-
-protected:
- // PaletteManager API
- virtual void setPalette(const byte *colors, uint start, uint num);
- virtual void grabPalette(byte *colors, uint start, uint num) const;
public:
- virtual void copyRectToScreen(const void *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 fillScreen(uint32 col);
- virtual void setFocusRectangle(const Common::Rect& rect);
- virtual void clearFocusRectangle();
-
- virtual void showOverlay();
- virtual void hideOverlay();
- virtual void clearOverlay();
- virtual void grabOverlay(void *buf, int pitch);
- virtual void copyRectToOverlay(const void *buf, int pitch,
- int x, int y, int w, int h);
- virtual int16 getOverlayHeight();
- virtual int16 getOverlayWidth();
- virtual Graphics::PixelFormat getOverlayFormat() const;
-
- virtual bool showMouse(bool visible);
-
- virtual void warpMouse(int x, int y);
- virtual void setMouseCursor(const void *buf, uint w, uint h, int hotspotX,
- int hotspotY, uint32 keycolor,
- bool dontScale,
- const Graphics::PixelFormat *format);
- virtual void setCursorPalette(const byte *colors, uint start, uint num);
-
virtual void pushEvent(const Common::Event &event);
virtual bool pollEvent(Common::Event &event);
virtual uint32 getMillis(bool skipRecord = false);
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 void setWindowCaption(const char *caption);
- virtual void displayMessageOnOSD(const char *msg);
virtual void showVirtualKeyboard(bool enable);
virtual Audio::Mixer *getMixer();