From c02de9aaa2d27d43ec64b04b609af4f1233c620a Mon Sep 17 00:00:00 2001
From: Lars Knoll <lars.knoll@nokia.com>
Date: Mon, 22 Feb 2010 14:09:22 +0100
Subject: enable bytepair compression for S60 3.2 and newer

Bytepair compression allows libraries to be paged
properly and drastically reduces RAM consumption.

Reviewed-By: Jason Barron
---
 mkspecs/common/symbian/symbian.conf | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/mkspecs/common/symbian/symbian.conf b/mkspecs/common/symbian/symbian.conf
index 7b2ee91..f3026ad 100644
--- a/mkspecs/common/symbian/symbian.conf
+++ b/mkspecs/common/symbian/symbian.conf
@@ -115,7 +115,7 @@ symbian-abld {
 } else {
     MMP_RULES_DONT_EXPORT_ALL_CLASS_IMPEDIMENTA = "OPTION_REPLACE ARMCC --export_all_vtbl // don't use --export_all_vtbl"
 }
-MMP_RULES += PAGED
+MMP_RULES += PAGED BYTEPAIRCOMPRESSTARGET
 MMP_RULES += $$MMP_RULES_DONT_EXPORT_ALL_CLASS_IMPEDIMENTA
 SYMBIAN_PLATFORMS = WINSCW GCCE ARMV5 ARMV6
 
@@ -145,7 +145,7 @@ exists($${EPOCROOT}epoc32/release/winscw/udeb/z/system/install/Series60v5.0.sis
         S60_VERSION = 3.2
     } else {
         S60_VERSION = 3.1
-        MMP_RULES -= PAGED
+        MMP_RULES -= PAGED BYTEPAIRCOMPRESSTARGET
     }
 }
 
@@ -163,4 +163,4 @@ symbian {
             # [TODO] QMAKE_CXXFLAGS.GCCE += $${QMAKE_CXXFLAGS_FAST_VFP.GCCE}
         }
     }
-}
\ No newline at end of file
+}
-- 
cgit v0.12


From bbb996e6cbe4a19ceb72650dd82a8b3cf60553db Mon Sep 17 00:00:00 2001
From: Jason Barron <jbarron@trolltech.com>
Date: Mon, 22 Feb 2010 12:41:23 +0100
Subject: Use the SYMBIAN_BUILD_GCE macro to check if the GCE variant can be
 used

The correct macro for determing when we can enable the NGA specific
functions in Symbian is SYMBIAN_BUILD_GCE.

Reviewed-by: Iain
---
 src/corelib/global/qglobal.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/corelib/global/qglobal.h b/src/corelib/global/qglobal.h
index 9edf929..4b1232d 100644
--- a/src/corelib/global/qglobal.h
+++ b/src/corelib/global/qglobal.h
@@ -2409,7 +2409,7 @@ QT3_SUPPORT Q_CORE_EXPORT const char *qInstallPathSysconf();
 
 #if defined(Q_OS_SYMBIAN)
 
-#ifdef SYMBIAN_GRAPHICS_USE_GCE
+#ifdef SYMBIAN_BUILD_GCE
 //RWsPointerCursor is fixed, so don't use low performance sprites
 #define Q_SYMBIAN_FIXED_POINTER_CURSORS
 #define Q_SYMBIAN_HAS_EXTENDED_BITMAP_TYPE
-- 
cgit v0.12


From 925dac20184820222765385b391a78d776ee61bb Mon Sep 17 00:00:00 2001
From: Jason Barron <jbarron@trolltech.com>
Date: Mon, 22 Feb 2010 13:54:20 +0100
Subject: Enable window size caching on Symbian NGA variants.

Enabling this flag saves us the round-trip to WSERV whenever
RWindow::Size() is called because the size is cached on the client
side. This can improve performance because functions like
eglSwapBuffers() call Size() to see if the window size has changed and
without the cache this introduces an extra IPC call for every frame.

Task-number: QT-2849
Reviewed-by: Iain
---
 src/corelib/global/qglobal.h        | 1 +
 src/gui/kernel/qapplication_s60.cpp | 4 ++++
 2 files changed, 5 insertions(+)

diff --git a/src/corelib/global/qglobal.h b/src/corelib/global/qglobal.h
index 4b1232d..04aac12 100644
--- a/src/corelib/global/qglobal.h
+++ b/src/corelib/global/qglobal.h
@@ -2413,6 +2413,7 @@ QT3_SUPPORT Q_CORE_EXPORT const char *qInstallPathSysconf();
 //RWsPointerCursor is fixed, so don't use low performance sprites
 #define Q_SYMBIAN_FIXED_POINTER_CURSORS
 #define Q_SYMBIAN_HAS_EXTENDED_BITMAP_TYPE
+#define Q_SYMBIAN_WINDOW_SIZE_CACHE
 //enabling new graphics resources
 #define QT_SYMBIAN_SUPPORTS_SGIMAGE
 #define QT_SYMBIAN_SUPPORTS_ADVANCED_POINTER
diff --git a/src/gui/kernel/qapplication_s60.cpp b/src/gui/kernel/qapplication_s60.cpp
index bf3ad71..fdbbeb2 100644
--- a/src/gui/kernel/qapplication_s60.cpp
+++ b/src/gui/kernel/qapplication_s60.cpp
@@ -1146,6 +1146,10 @@ void qt_init(QApplicationPrivate * /* priv */, int)
 #endif
         S60->wsSession().SetAutoFlush(ETrue);
 
+#ifdef Q_SYMBIAN_WINDOW_SIZE_CACHE
+    TRAP_IGNORE(S60->wsSession().EnableWindowSizeCacheL());
+#endif
+
     S60->updateScreenSize();
 
 
-- 
cgit v0.12


From 9be36306cd19626344cdedf5d99f5b142c2356d0 Mon Sep 17 00:00:00 2001
From: Jason Barron <jbarron@trolltech.com>
Date: Tue, 23 Feb 2010 09:57:35 +0100
Subject: Always define Q_WS_S60 on Symbian unless configured with -no-s60.

Previously we were relying on the toolchain to define the S60 version
for us and were enabling Q_WS_S60 based on this. Since the S60 macros
are no longer defined for us, let's assume we always want S60 support
unless Qt is configured with -no-s60.

Reviewed-by: axis
---
 src/corelib/global/qglobal.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/corelib/global/qglobal.h b/src/corelib/global/qglobal.h
index 04aac12..82210f3 100644
--- a/src/corelib/global/qglobal.h
+++ b/src/corelib/global/qglobal.h
@@ -813,7 +813,7 @@ namespace QT_NAMESPACE {}
 #      define Q_WS_MAC32
 #    endif
 #  elif defined(Q_OS_SYMBIAN)
-#    if (defined(__SERIES60_31__) || defined(__S60_32__) || defined(__S60_50__)) && !defined(QT_NO_S60)
+#    if !defined(QT_NO_S60)
 #      define Q_WS_S60
 #    endif
 #  elif !defined(Q_WS_QWS)
-- 
cgit v0.12