From f4fd9e8b504a2e49fbd67d288e591377c466760c Mon Sep 17 00:00:00 2001 From: dhewg Date: Thu, 17 Mar 2011 18:56:22 +0100 Subject: ANDROID: Fix cursor visibility --- backends/platform/android/gfx.cpp | 8 +++----- backends/platform/android/texture.h | 4 ++++ 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/backends/platform/android/gfx.cpp b/backends/platform/android/gfx.cpp index ec98c35f42..8a03a19fee 100644 --- a/backends/platform/android/gfx.cpp +++ b/backends/platform/android/gfx.cpp @@ -477,7 +477,7 @@ void OSystem_Android::updateScreen() { GLCALL(_overlay_texture->drawTextureRect()); } - if (_show_mouse) { + if (_show_mouse && !_mouse_texture->isEmpty()) { GLCALL(glPushMatrix()); const Common::Point &mouse = getEventManager()->getMousePos(); @@ -710,10 +710,8 @@ void OSystem_Android::setMouseCursor(const byte *buf, uint w, uint h, WRITE_UINT16(_mouse_texture_palette->palette() + keycolor * 2, 0); } - if (w == 0 || h == 0) { - _show_mouse = false; + if (w == 0 || h == 0) return; - } if (_mouse_texture == _mouse_texture_palette) { _mouse_texture->updateBuffer(0, 0, w, h, buf, w); @@ -730,7 +728,7 @@ void OSystem_Android::setMouseCursor(const byte *buf, uint w, uint h, delete[] tmp; - _show_mouse = false; + _mouse_texture->allocBuffer(0, 0); return; } diff --git a/backends/platform/android/texture.h b/backends/platform/android/texture.h index 64489da0a4..925418721b 100644 --- a/backends/platform/android/texture.h +++ b/backends/platform/android/texture.h @@ -98,6 +98,10 @@ public: return _surface.pitch; } + inline bool isEmpty() const { + return _surface.w == 0 || _surface.h == 0; + } + inline const Graphics::Surface *surface_const() const { return &_surface; } -- cgit v1.2.3