aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--backends/platform/android/org/inodes/gus/scummvm/ScummVM.java3
-rw-r--r--backends/platform/android/video.cpp7
2 files changed, 8 insertions, 2 deletions
diff --git a/backends/platform/android/org/inodes/gus/scummvm/ScummVM.java b/backends/platform/android/org/inodes/gus/scummvm/ScummVM.java
index bb4a3dd061..0e905f43a5 100644
--- a/backends/platform/android/org/inodes/gus/scummvm/ScummVM.java
+++ b/backends/platform/android/org/inodes/gus/scummvm/ScummVM.java
@@ -98,11 +98,10 @@ public class ScummVM implements SurfaceHolder.Callback {
public void surfaceChanged(SurfaceHolder holder, int format,
int width, int height) {
// Disabled while I debug GL problems
- //pushEvent(new Event(Event.EVENT_SCREEN_CHANGED));
+ pushEvent(new Event(Event.EVENT_SCREEN_CHANGED));
}
public void surfaceDestroyed(SurfaceHolder holder) {
- pushEvent(new Event(Event.EVENT_SCREEN_CHANGED));
try {
surfaceLock.acquire();
} catch (InterruptedException e) {
diff --git a/backends/platform/android/video.cpp b/backends/platform/android/video.cpp
index e56c0da2af..b9c3f9a1f8 100644
--- a/backends/platform/android/video.cpp
+++ b/backends/platform/android/video.cpp
@@ -135,7 +135,14 @@ GLESTexture::~GLESTexture() {
}
void GLESTexture::reinitGL() {
+ glDeleteTextures(1, &_texture_name);
glGenTextures(1, &_texture_name);
+
+ // bypass allocBuffer() shortcut to reinit the texture properly
+ _texture_width = 0;
+ _texture_height = 0;
+
+ allocBuffer(_surface.w, _surface.h);
setDirty();
}