[Scummvm-cvs-logs] SF.net SVN: scummvm:[53801] scummvm/trunk/backends/platform/android/android .cpp

anguslees at users.sourceforge.net anguslees at users.sourceforge.net
Mon Oct 25 09:27:05 CEST 2010


Revision: 53801
          http://scummvm.svn.sourceforge.net/scummvm/?rev=53801&view=rev
Author:   anguslees
Date:     2010-10-25 07:27:05 +0000 (Mon, 25 Oct 2010)

Log Message:
-----------
ANDROID: Force extra screen update when updating overlay.

This appears to work around a blank screen bug Nexus1.  I never
tracked it down, but as far as I can tell it is triggered by multiple
overlapping updates before flushing the texture to screen.  This
condition only happens in the overlay atm so an extra redraw isn't the
end of the world.

(Also remove an unused _full_screen_dirty property)

Modified Paths:
--------------
    scummvm/trunk/backends/platform/android/android.cpp

Modified: scummvm/trunk/backends/platform/android/android.cpp
===================================================================
--- scummvm/trunk/backends/platform/android/android.cpp	2010-10-25 07:07:23 UTC (rev 53800)
+++ scummvm/trunk/backends/platform/android/android.cpp	2010-10-25 07:27:05 UTC (rev 53801)
@@ -109,7 +109,7 @@
 	env->DeleteLocalRef(cls);
 }
 
-// floating point.	use sparingly.
+// floating point. use sparingly.
 template <class T>
 static inline T scalef(T in, float numerator, float denominator) {
 	return static_cast<float>(in) * numerator / denominator;
@@ -177,7 +177,6 @@
 	GLESPaletteTexture* _game_texture;
 	int _shake_offset;
 	Common::Rect _focus_rect;
-	bool _full_screen_dirty;
 
 	// Overlay layer
 	GLES4444Texture* _overlay_texture;
@@ -320,7 +319,6 @@
 	  _fsFactory(new POSIXFilesystemFactory()),
 	  _asset_archive(new AndroidAssetArchive(am)),
 	  _shake_offset(0),
-	  _full_screen_dirty(false),
 	  _event_queue_lock(createMutex()) {
 }
 
@@ -862,6 +860,9 @@
 void OSystem_Android::clearOverlay() {
 	ENTER("clearOverlay()");
 	_overlay_texture->fillBuffer(0);
+
+	// Shouldn't need this, but works around a 'blank screen' bug on Nexus1
+	updateScreen();
 }
 
 void OSystem_Android::grabOverlay(OverlayColor *buf, int pitch) {
@@ -887,6 +888,9 @@
 
 	// This 'pitch' is pixels not bytes
 	_overlay_texture->updateBuffer(x, y, w, h, buf, pitch * sizeof(buf[0]));
+
+	// Shouldn't need this, but works around a 'blank screen' bug on Nexus1?
+	updateScreen();
 }
 
 int16 OSystem_Android::getOverlayHeight() {


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the Scummvm-git-logs mailing list