--- a/fontsupport/fontutils/group/typefaces_s60_Japanese.xml Fri Jun 11 14:37:39 2010 +0300
+++ b/fontsupport/fontutils/group/typefaces_s60_Japanese.xml Wed Jun 23 19:20:17 2010 +0300
@@ -1,10 +1,10 @@
<?xml version="1.0" encoding="utf-8" ?>
<typeface_information >
<typeface_set>
- <typeface_mapping role="Primary" family="S60JAPSANSRLF" weight="bold"></typeface_mapping>
+ <typeface_mapping role="Primary" family="S60JAPSANSSBLF" weight="bold"></typeface_mapping>
<typeface_mapping role="Secondary" family="S60JAPSANSRLF"></typeface_mapping>
<typeface_mapping role="Title" family="S60JAPSANSTTLSMBLDLF"></typeface_mapping>
- <typeface_mapping role="PrimarySmall" family="S60JAPSANSRLF" weight="bold"></typeface_mapping>
+ <typeface_mapping role="PrimarySmall" family="S60JAPSANSSBLF" weight="bold"></typeface_mapping>
<typeface_mapping role="Digital" family="Series 60 ZDigi"></typeface_mapping>
</typeface_set>
</typeface_information>
\ No newline at end of file
--- a/fontsupport/fontutils/group/typefaces_s60_Korean.xml Fri Jun 11 14:37:39 2010 +0300
+++ b/fontsupport/fontutils/group/typefaces_s60_Korean.xml Wed Jun 23 19:20:17 2010 +0300
@@ -1,10 +1,10 @@
<?xml version="1.0" encoding="utf-8" ?>
<typeface_information >
<typeface_set>
- <typeface_mapping role="Primary" family="S60KORSANSRLF" weight="bold"></typeface_mapping>
+ <typeface_mapping role="Primary" family="S60KORSANSSBLF" weight="bold"></typeface_mapping>
<typeface_mapping role="Secondary" family="S60KORSANSRLF"></typeface_mapping>
<typeface_mapping role="Title" family="S60KORSANSTTLSMBLDLF"></typeface_mapping>
- <typeface_mapping role="PrimarySmall" family="S60KORSANSRLF" weight="bold"></typeface_mapping>
+ <typeface_mapping role="PrimarySmall" family="S60KORSANSSBLF" weight="bold"></typeface_mapping>
<typeface_mapping role="Digital" family="Series 60 ZDigi"></typeface_mapping>
</typeface_set>
</typeface_information>
\ No newline at end of file
--- a/fontsupport/fontutils/group/typefaces_s60_Simplified_Chinese.xml Fri Jun 11 14:37:39 2010 +0300
+++ b/fontsupport/fontutils/group/typefaces_s60_Simplified_Chinese.xml Wed Jun 23 19:20:17 2010 +0300
@@ -1,10 +1,10 @@
<?xml version="1.0" encoding="utf-8" ?>
<typeface_information >
<typeface_set>
- <typeface_mapping role="Primary" family="S60SCHRSANSRLF" weight="bold"></typeface_mapping>
+ <typeface_mapping role="Primary" family="S60SCHRSANSSBLF" weight="bold"></typeface_mapping>
<typeface_mapping role="Secondary" family="S60SCHRSANSRLF"></typeface_mapping>
<typeface_mapping role="Title" family="S60SCHRSANSTTLSMBLDLF"></typeface_mapping>
- <typeface_mapping role="PrimarySmall" family="S60SCHRSANSRLF" weight="bold"></typeface_mapping>
+ <typeface_mapping role="PrimarySmall" family="S60SCHRSANSSBLF" weight="bold"></typeface_mapping>
<typeface_mapping role="Digital" family="Series 60 ZDigi"></typeface_mapping>
</typeface_set>
</typeface_information>
\ No newline at end of file
--- a/fontsupport/fontutils/group/typefaces_s60_Simplified_Traditional.xml Fri Jun 11 14:37:39 2010 +0300
+++ b/fontsupport/fontutils/group/typefaces_s60_Simplified_Traditional.xml Wed Jun 23 19:20:17 2010 +0300
@@ -1,52 +1,52 @@
<?xml version="1.0" encoding="utf-8" ?>
<typeface_information>
<typeface_set language="zh" country="TW">
- <typeface_mapping role="Primary" family="S60TCHKHRSANSRLF" weight="bold"></typeface_mapping>
+ <typeface_mapping role="Primary" family="S60TCHKHRSANSSBLF" weight="bold"></typeface_mapping>
<typeface_mapping role="Secondary" family="S60TCHKHRSANSRLF"></typeface_mapping>
<typeface_mapping role="Title" family="S60TCHKHRSANSTTLSMBLDLF"></typeface_mapping>
- <typeface_mapping role="PrimarySmall" family="S60TCHKHRSANSRLF" weight="bold"></typeface_mapping>
+ <typeface_mapping role="PrimarySmall" family="S60TCHKHRSANSSBLF" weight="bold"></typeface_mapping>
<typeface_mapping role="Digital" family="Series 60 ZDigi"></typeface_mapping>
</typeface_set>
<typeface_set language="zh" country="HK">
- <typeface_mapping role="Primary" family="S60TCHKHRSANSRLF" weight="bold"></typeface_mapping>
+ <typeface_mapping role="Primary" family="S60TCHKHRSANSSBLF" weight="bold"></typeface_mapping>
<typeface_mapping role="Secondary" family="S60TCHKHRSANSRLF"></typeface_mapping>
<typeface_mapping role="Title" family="S60TCHKHRSANSTTLSMBLDLF"></typeface_mapping>
- <typeface_mapping role="PrimarySmall" family="S60TCHKHRSANSRLF" weight="bold"></typeface_mapping>
+ <typeface_mapping role="PrimarySmall" family="S60TCHKHRSANSSBLF" weight="bold"></typeface_mapping>
<typeface_mapping role="Digital" family="Series 60 ZDigi"></typeface_mapping>
</typeface_set>
<typeface_set language="zh" country="CN">
- <typeface_mapping role="Primary" family="S60SCHRSANSRLF" weight="bold"></typeface_mapping>
+ <typeface_mapping role="Primary" family="S60SCHRSANSSBLF" weight="bold"></typeface_mapping>
<typeface_mapping role="Secondary" family="S60SCHRSANSRLF"></typeface_mapping>
<typeface_mapping role="Title" family="S60SCHRSANSTTLSMBLDLF"></typeface_mapping>
- <typeface_mapping role="PrimarySmall" family="S60SCHRSANSRLF" weight="bold"></typeface_mapping>
+ <typeface_mapping role="PrimarySmall" family="S60SCHRSANSSBLF" weight="bold"></typeface_mapping>
<typeface_mapping role="Digital" family="Series 60 ZDigi"></typeface_mapping>
</typeface_set>
<typeface_set language="en" country="CN">
- <typeface_mapping role="Primary" family="S60SCHRSANSRLF" weight="bold"></typeface_mapping>
+ <typeface_mapping role="Primary" family="S60SCHRSANSSBLF" weight="bold"></typeface_mapping>
<typeface_mapping role="Secondary" family="S60SCHRSANSRLF"></typeface_mapping>
<typeface_mapping role="Title" family="S60SCHRSANSTTLSMBLDLF"></typeface_mapping>
- <typeface_mapping role="PrimarySmall" family="S60SCHRSANSRLF" weight="bold"></typeface_mapping>
+ <typeface_mapping role="PrimarySmall" family="S60SCHRSANSSBLF" weight="bold"></typeface_mapping>
<typeface_mapping role="Digital" family="Series 60 ZDigi"></typeface_mapping>
</typeface_set>
<typeface_set language="en" country="HK">
- <typeface_mapping role="Primary" family="S60TCHKHRSANSRLF" weight="bold"></typeface_mapping>
+ <typeface_mapping role="Primary" family="S60TCHKHRSANSSBLF" weight="bold"></typeface_mapping>
<typeface_mapping role="Secondary" family="S60TCHKHRSANSRLF"></typeface_mapping>
<typeface_mapping role="Title" family="S60TCHKHRSANSTTLSMBLDLF"></typeface_mapping>
- <typeface_mapping role="PrimarySmall" family="S60TCHKHRSANSRLF" weight="bold"></typeface_mapping>
+ <typeface_mapping role="PrimarySmall" family="S60TCHKHRSANSSBLF" weight="bold"></typeface_mapping>
<typeface_mapping role="Digital" family="Series 60 ZDigi"></typeface_mapping>
</typeface_set>
<typeface_set language="en" country="TW">
- <typeface_mapping role="Primary" family="S60TCHKHRSANSRLF" weight="bold"></typeface_mapping>
+ <typeface_mapping role="Primary" family="S60TCHKHRSANSSBLF" weight="bold"></typeface_mapping>
<typeface_mapping role="Secondary" family="S60TCHKHRSANSRLF"></typeface_mapping>
<typeface_mapping role="Title" family="S60TCHKHRSANSTTLSMBLDLF"></typeface_mapping>
- <typeface_mapping role="PrimarySmall" family="S60TCHKHRSANSRLF" weight="bold"></typeface_mapping>
+ <typeface_mapping role="PrimarySmall" family="S60TCHKHRSANSSBLF" weight="bold"></typeface_mapping>
<typeface_mapping role="Digital" family="Series 60 ZDigi"></typeface_mapping>
</typeface_set>
<typeface_set>
- <typeface_mapping role="Primary" family="S60SCHRSANSRLF" weight="bold"></typeface_mapping>
+ <typeface_mapping role="Primary" family="S60SCHRSANSSBLF" weight="bold"></typeface_mapping>
<typeface_mapping role="Secondary" family="S60SCHRSANSRLF"></typeface_mapping>
<typeface_mapping role="Title" family="S60SCHRSANSTTLSMBLDLF"></typeface_mapping>
- <typeface_mapping role="PrimarySmall" family="S60SCHRSANSRLF" weight="bold"></typeface_mapping>
+ <typeface_mapping role="PrimarySmall" family="S60SCHRSANSSBLF" weight="bold"></typeface_mapping>
<typeface_mapping role="Digital" family="Series 60 ZDigi"></typeface_mapping>
</typeface_set>
</typeface_information>
\ No newline at end of file
--- a/fontsupport/fontutils/group/typefaces_s60_Traditional_Chinese.xml Fri Jun 11 14:37:39 2010 +0300
+++ b/fontsupport/fontutils/group/typefaces_s60_Traditional_Chinese.xml Wed Jun 23 19:20:17 2010 +0300
@@ -1,10 +1,10 @@
<?xml version="1.0" encoding="utf-8" ?>
<typeface_information >
<typeface_set>
- <typeface_mapping role="Primary" family="S60TCHKHRSANSRLF" weight="bold"></typeface_mapping>
+ <typeface_mapping role="Primary" family="S60TCHKHRSANSSBLF" weight="bold"></typeface_mapping>
<typeface_mapping role="Secondary" family="S60TCHKHRSANSRLF"></typeface_mapping>
<typeface_mapping role="Title" family="S60TCHKHRSANSTTLSMBLDLF"></typeface_mapping>
- <typeface_mapping role="PrimarySmall" family="S60TCHKHRSANSRLF" weight="bold"></typeface_mapping>
+ <typeface_mapping role="PrimarySmall" family="S60TCHKHRSANSSBLF" weight="bold"></typeface_mapping>
<typeface_mapping role="Digital" family="Series 60 ZDigi"></typeface_mapping>
</typeface_set>
</typeface_information>
\ No newline at end of file
--- a/locales/loce32/region/src/region_gb.cpp Fri Jun 11 14:37:39 2010 +0300
+++ b/locales/loce32/region/src/region_gb.cpp Wed Jun 23 19:20:17 2010 +0300
@@ -28,11 +28,11 @@
const TDateFormat RegionAspect::DateFormat = EDateEuropean;
const TTimeFormat RegionAspect::TimeFormat = ETime12;
const TLocalePos RegionAspect::CurrencySymbolPosition = ELocaleBefore;
-const TBool RegionAspect::CurrencySpaceBetween = ETrue;
+const TBool RegionAspect::CurrencySpaceBetween = EFalse;
const TInt RegionAspect::CurrencyDecimalPlaces = 2;
const TLocale::TNegativeCurrencyFormat RegionAspect::NegativeCurrencyFormat=TLocale::TNegativeCurrencyFormat(TLocale::ELeadingMinusSign); // replacing CurrencyNegativeInBrackets
const TBool RegionAspect::CurrencyTriadsAllowed = ETrue;
-const TText * const RegionAspect::ThousandsSeparator = _S(" ");
+const TText * const RegionAspect::ThousandsSeparator = _S(",");
const TText * const RegionAspect::DecimalSeparator = _S(".");
const TText * const RegionAspect::DateSeparator[KMaxDateSeparators] = {_S(""),_S("/"),_S("/"),_S("")};
const TText * const RegionAspect::TimeSeparator[KMaxTimeSeparators] = {_S(""),_S(":"),_S(":"),_S("")};
--- a/locales/loce32/region/src/region_sk.cpp Fri Jun 11 14:37:39 2010 +0300
+++ b/locales/loce32/region/src/region_sk.cpp Wed Jun 23 19:20:17 2010 +0300
@@ -35,7 +35,7 @@
const TText * const RegionAspect::ThousandsSeparator = _S(" ");
const TText * const RegionAspect::DecimalSeparator = _S(",");
const TText * const RegionAspect::DateSeparator[KMaxDateSeparators] = {_S(""),_S(". "),_S(". "),_S("")};
-const TText * const RegionAspect::TimeSeparator[KMaxTimeSeparators] = {_S(""),_S("."),_S("."),_S("")};
+const TText * const RegionAspect::TimeSeparator[KMaxTimeSeparators] = {_S(""),_S(":"),_S(":"),_S("")};
const TLocalePos RegionAspect::AmPmSymbolPosition = ELocaleAfter;
const TBool RegionAspect::AmPmSpaceBetween = ETrue;
const TDaylightSavingZone RegionAspect::HomeDaylightSavingZone = EDstEuropean;
--- a/skins/AknSkins/src/AknsAppSkinInstance.cpp Fri Jun 11 14:37:39 2010 +0300
+++ b/skins/AknSkins/src/AknsAppSkinInstance.cpp Wed Jun 23 19:20:17 2010 +0300
@@ -758,7 +758,6 @@
{
// Do not create an entry for typed miss, otherwise we might hide
// a real item
- delete itemData;
return NULL;
}
}
--- a/skins/AknSkins/srvsrc/AknsSrv.cpp Fri Jun 11 14:37:39 2010 +0300
+++ b/skins/AknSkins/srvsrc/AknsSrv.cpp Wed Jun 23 19:20:17 2010 +0300
@@ -100,25 +100,24 @@
aStartFailed = EFalse;
CAknsSrv* server = new CAknsSrv();
- server->iMergeType = (TAknsSkinSrvMergeType)(
- EAknsSkinSrvSkin | EAknsSkinSrvIdleWp );
- server->iBootFinished = EFalse;
- if ( server )
- {
- if ( server->Start( KAknSkinSrvName ) != KErrNone )
- {
- AKNS_TRACE_ERROR("CAknsSrv::New START FAILED!");
-
- aStartFailed = ETrue;
- delete server;
- return NULL;
- }
- }
- else
+ if ( !server )
{
AKNS_TRACE_ERROR("CAknsSrv::New SERVER ALLOCATION FAILED!");
return NULL;
}
+
+ server->iMergeType = (TAknsSkinSrvMergeType)(
+ EAknsSkinSrvSkin | EAknsSkinSrvIdleWp );
+ server->iBootFinished = EFalse;
+ if (server->Start(KAknSkinSrvName) != KErrNone)
+ {
+ AKNS_TRACE_ERROR("CAknsSrv::New START FAILED!");
+
+ aStartFailed = ETrue;
+ delete server;
+ return NULL;
+ }
+
server->iBitmapStore = new CAknsSrvBitmapStore;
if( !server->iBitmapStore )
{
--- a/skins/AknSkins/srvsrc/AknsSrvChunkMaintainer.cpp Fri Jun 11 14:37:39 2010 +0300
+++ b/skins/AknSkins/srvsrc/AknsSrvChunkMaintainer.cpp Wed Jun 23 19:20:17 2010 +0300
@@ -279,7 +279,7 @@
TAknsSrvEffectQueueDef applyGfxEffectQueue;
applyGfxEffectQueue.iEffectQueueSize = sizeof(TAknsSrvEffectQueueDef)
+ 2*sizeof(TAknsSrvEffectDef) + 3*sizeof(TAknsSrvEffectParameterDef)
- + 11*sizeof(TInt32);
+ + 8*sizeof(TInt32);
applyGfxEffectQueue.iInputLayerIndex =0;
applyGfxEffectQueue.iInputLayerMode = 2; //RGB
applyGfxEffectQueue.iOutputLayerIndex = 2;
--- a/skins/AknSkins/srvsrc/tfxconfigparser.cpp Fri Jun 11 14:37:39 2010 +0300
+++ b/skins/AknSkins/srvsrc/tfxconfigparser.cpp Wed Jun 23 19:20:17 2010 +0300
@@ -989,7 +989,7 @@
{
CTFxTransition* transition = transitionarray->operator[](count);
CTFxEffect* effect = transition->Effect();
- if (transition && effect && effect->PathIndex() >=0)
+ if ( effect && effect->PathIndex() >=0 )
{
err = aTransSrv->RegisterFullscreenKml(transition->ContextId(),
transition->Uid(),
@@ -1014,7 +1014,7 @@
{
CTFxCtrlTransition* ctrltransition = ctrltransitionarray->operator[](count);
CTFxEffect* effect = ctrltransition->Effect();
- if (ctrltransition && effect && effect->PathIndex() >=0)
+ if ( effect && effect->PathIndex() >=0)
{
if (!ctrltransition->KmlRegistrationStatus())
{
--- a/uigraphics/AknIcon/SvgtFbsRasterizer/group/SvgtFbsRasterizer.mmp Fri Jun 11 14:37:39 2010 +0300
+++ b/uigraphics/AknIcon/SvgtFbsRasterizer/group/SvgtFbsRasterizer.mmp Wed Jun 23 19:20:17 2010 +0300
@@ -40,6 +40,7 @@
SOURCE SvgtFbsRasterizer.cpp
SOURCE svgtregisteredbitmap.cpp
SOURCE svgtgraphicsinterface.cpp
+SOURCE SvgtRasterizerOOMPropertyMonitor.cpp
#ifdef _EGL_SUPPORT_ENABLED_
SOURCE eglgraphicsinterface.cpp
--- a/uigraphics/AknIcon/SvgtFbsRasterizer/inc/SvgtFbsRasterizer.h Fri Jun 11 14:37:39 2010 +0300
+++ b/uigraphics/AknIcon/SvgtFbsRasterizer/inc/SvgtFbsRasterizer.h Wed Jun 23 19:20:17 2010 +0300
@@ -21,6 +21,9 @@
#include "SvgtRegisteredBitmap.h"
#include "svgtgraphicsinterface.h"
#include <graphics/fbsrasterizer.h>
+#include <graphics/fbsrasterizerclearcache.h>
+#include "SvgtRasterizerCacheLimitHandler.h"
+
#include <e32base.h>
#include <VG/openvg.h>
@@ -36,11 +39,14 @@
TBool operator==(const CFbsRasterizer::TBitmapDesc& aBitmapDesc1, const CFbsRasterizer::TBitmapDesc& aBitmapDesc2);
+class CSvgtRasterizerOOMPropertyMonitor;
/** Example implementation of a rasterizer that is used to generate pixel
data for extended bitmaps of example type KUidExtendedBitmapExample.
*/
-NONSHARABLE_CLASS (CSvgtFbsRasterizer) : public CFbsRasterizer
+NONSHARABLE_CLASS (CSvgtFbsRasterizer) : public CFbsRasterizer,
+ public MFbsRasterizerClearCache,
+ public MSvgtRasterizerCacheLimitHandler
{
public:
IMPORT_C static CFbsRasterizer* New();
@@ -100,6 +106,13 @@
* Returns cache limit (if) specific to process
*/
TInt GetCacheLimit(TUid aProcessUID) const;
+
+ //From MFbsRasterizerClearCache
+ virtual void ClearCache();
+
+ //from MSvgtRasterizerCacheLimitHandler
+ virtual void ChangeCacheLimit( TBool aChangeCacheLimit );
+
private: //Data members
/** List of currently registered extended bitmaps, the key is the bitmap id.
*/
@@ -114,6 +127,7 @@
*/
CSvgtGraphicsInterface * iGraphicsInterface;
+ CSvgtRasterizerOOMPropertyMonitor* iMonitor;
TBool iIsRasterizerValidState;
TBool iMatricesUpdated;
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/uigraphics/AknIcon/SvgtFbsRasterizer/inc/SvgtRasterizerCacheLimitHandler.h Wed Jun 23 19:20:17 2010 +0300
@@ -0,0 +1,30 @@
+/*
+* Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: MSvgtRasterizerCacheLimitHandler class.
+*
+*/
+
+#if !defined(_ENABLESVGTRASTERIZER_H_)
+#define _ENABLESVGTRASTERIZER_H_
+#include <e32def.h>
+
+const TUint32 KUidEnableSvgtRasterizer = 0x10286586;
+
+class MSvgtRasterizerCacheLimitHandler
+ {
+public:
+ virtual void ChangeCacheLimit( TBool aChangeCacheLimit ) = 0;
+ };
+
+#endif //_ENABLESVGTRASTERIZER_H_
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/uigraphics/AknIcon/SvgtFbsRasterizer/inc/SvgtRasterizerOOMPropertyMonitor.h Wed Jun 23 19:20:17 2010 +0300
@@ -0,0 +1,47 @@
+/*
+* Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: CSvgtRasterizerOOMPropertyMonitor class for OOM implementation.
+*
+*/
+#if !defined(_SVGTRASTERIZEROOMPROPERTYMONITOR_H_)
+#define _SVGTRASTERIZEROOMPROPERTYMONITOR_H_
+
+#include <e32base.h>
+#include <e32property.h>
+#include "SvgtRasterizerKeyDefs.hrh"
+class CFbsRasterizer;
+
+class CSvgtRasterizerOOMPropertyMonitor : public CActive
+ {
+public:
+ static CSvgtRasterizerOOMPropertyMonitor* NewL();
+ ~CSvgtRasterizerOOMPropertyMonitor();
+
+private: //Class methods
+ CSvgtRasterizerOOMPropertyMonitor();
+ void ConstructL();
+ void Queue();
+
+private: //From CActive
+ void RunL();
+ void DoCancel();
+
+private:
+ RProperty iOomWatcher;
+ CFbsRasterizer* iRasterizer;
+ };
+
+#endif //_SVGTRASTERIZEROOMPROPERTYMONITOR_H_
+
+
--- a/uigraphics/AknIcon/SvgtFbsRasterizer/src/SvgtFbsRasterizer.cpp Fri Jun 11 14:37:39 2010 +0300
+++ b/uigraphics/AknIcon/SvgtFbsRasterizer/src/SvgtFbsRasterizer.cpp Wed Jun 23 19:20:17 2010 +0300
@@ -28,6 +28,8 @@
#include <bitstd.h>
#include <bitdev.h>
+#include "SvgtRasterizerOOMPropertyMonitor.h"
+
TBool operator==(const CFbsRasterizer::TBitmapDesc& aBitmapDesc1,
const CFbsRasterizer::TBitmapDesc& aBitmapDesc2)
{
@@ -64,11 +66,10 @@
/** Constructor */
CSvgtFbsRasterizer::CSvgtFbsRasterizer()
- :iRegisteredBmps(_FOFF(CSvgtRegisteredBitmap, iLink)), iRecentBmps(_FOFF(CSvgtRegisteredBitmap, iLink))
- {
- RProcess currentProcess;
- iCacheLimit = GetCacheLimit(currentProcess.SecureId());
- }
+:iRegisteredBmps(_FOFF(CSvgtRegisteredBitmap, iLink)), iRecentBmps(_FOFF(CSvgtRegisteredBitmap, iLink))
+ {
+
+ }
CSvgtFbsRasterizer::~CSvgtFbsRasterizer()
{
@@ -87,6 +88,18 @@
{
RestoreMatrices();
}
+ delete iMonitor;//OOM
+ }
+
+void CSvgtFbsRasterizer::ChangeCacheLimit( TBool aChangeCacheLimit )//OOM
+ {
+ iCacheLimit = KMaxRecentBmpCacheSize;
+
+ if(aChangeCacheLimit)
+ {
+ RProcess currentProcess;
+ iCacheLimit = GetCacheLimit(currentProcess.SecureId());
+ }
}
/** Register a bitmap with this rasterizer for rendering. In this example the extended
@@ -206,11 +219,28 @@
/** No extension interaces are available, KErrNotSupported for all aInterfaceId passed.
@see CFbsRasterizer::GetInterface()
*/
-TInt CSvgtFbsRasterizer::GetInterface(TUid /*aInterfaceId*/, TAny*& aInterface)
- {
- aInterface = NULL;
- return KErrExtensionNotSupported;
- }
+TInt CSvgtFbsRasterizer::GetInterface(TUid aInterfaceId, TAny*& aInterface)
+ {
+ aInterface = NULL;
+ TInt err = KErrNone;
+
+ switch (aInterfaceId.iUid)
+ {
+ case KUidFbsRasterizerClearCache:
+ aInterface = static_cast<MFbsRasterizerClearCache*>(this);
+ break;
+ case KUidEnableSvgtRasterizer:
+ aInterface = static_cast<MSvgtRasterizerCacheLimitHandler*>(this);
+ break;
+ default:
+ err = KErrExtensionNotSupported;
+ break;
+ }
+
+ return err;
+
+
+ }
/** Gets a bitmap that has been registered with this rasterizer.
@@ -253,6 +283,16 @@
void CSvgtFbsRasterizer::InitializeRasterizer()
{
+ TBool cacheEnabled=TRUE;
+ RProperty::Get(KSvgtPropertyCategory, ESvgtPropertyBool, cacheEnabled);
+ iCacheLimit = KMaxRecentBmpCacheSize;
+ if(cacheEnabled)
+ {
+ RProcess currentProcess;
+ iCacheLimit = GetCacheLimit(currentProcess.SecureId());
+ }
+ TRAPD(err, iMonitor = CSvgtRasterizerOOMPropertyMonitor::NewL());
+ iIsRasterizerValidState = ( err == KErrNone);
}
void CSvgtFbsRasterizer::RenderBitmapL(CSvgtRegisteredBitmap& aPixMap, CFbsBitmap * aMask,
@@ -639,11 +679,11 @@
}
TInt CSvgtFbsRasterizer::GetCacheLimit(TUid aProcessUID) const
- {
+{
TInt cacheLimit = KMaxRecentBmpCacheSize;
-
+
RProcess currentProcess;
-
+
if(aProcessUID == TUid::Uid(0x10003B20)) // Alf
{
cacheLimit = 0x600000;
@@ -654,4 +694,17 @@
}
return cacheLimit;
+}
+void CSvgtFbsRasterizer::ClearCache()//OOM
+ {
+ CSvgtRegisteredBitmap* regBmp=NULL;
+ if(iCacheLimit>KMaxRecentBmpCacheSize)
+ {
+ while (!iRecentBmps.IsEmpty()&&(iTotalRecentBmpSize > KMaxRecentBmpCacheSize))
+ {
+ regBmp = iRecentBmps.Last();
+ iTotalRecentBmpSize -= regBmp->DataSize();
+ delete regBmp;
+ }
+ }
}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/uigraphics/AknIcon/SvgtFbsRasterizer/src/SvgtRasterizerOOMPropertyMonitor.cpp Wed Jun 23 19:20:17 2010 +0300
@@ -0,0 +1,95 @@
+/*
+ * Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: CSvgtRasterizerOOMPropertyMonitor class for OOM implementation.
+ *
+ */
+
+#include "SvgtRasterizerOOMPropertyMonitor.h"
+#include <graphics/fbsrasterizer.h>
+#include <graphics/fbsrasterizerclearcache.h>
+#include "SvgtRasterizerCacheLimitHandler.h"
+#include <fbs.h>
+//#include <e32debug.h>
+
+CSvgtRasterizerOOMPropertyMonitor* CSvgtRasterizerOOMPropertyMonitor::NewL()
+ {
+ CSvgtRasterizerOOMPropertyMonitor* self = new (ELeave) CSvgtRasterizerOOMPropertyMonitor();
+ CleanupStack::PushL(self);
+ self->ConstructL();
+ CleanupStack::Pop();
+ return self;
+ }
+
+CSvgtRasterizerOOMPropertyMonitor::CSvgtRasterizerOOMPropertyMonitor()
+: CActive(CActive::EPriorityStandard)
+ {
+ if (CActiveScheduler::Current())
+ {
+ CActiveScheduler::Add(this);
+ }
+
+ }
+
+CSvgtRasterizerOOMPropertyMonitor::~CSvgtRasterizerOOMPropertyMonitor()
+ {
+ if (CActiveScheduler::Current())
+ {
+ Cancel();
+ }
+ iOomWatcher.Close();
+ }
+
+void CSvgtRasterizerOOMPropertyMonitor::ConstructL()
+ {
+
+ if (CActiveScheduler::Current())
+ {
+ User::LeaveIfError(iOomWatcher.Attach(KSvgtPropertyCategory, ESvgtPropertyBool));
+ Queue();
+ }
+ }
+
+void CSvgtRasterizerOOMPropertyMonitor::RunL()
+ {
+ TBool changeCacheLimit=ETrue;
+ iOomWatcher.Get(changeCacheLimit);
+ iRasterizer = CFbsBitmap::Rasterizer();
+ if(!changeCacheLimit)
+ {
+ MFbsRasterizerClearCache* cacheInterfacePtr = NULL;
+ iRasterizer->GetInterface(TUid::Uid(KUidFbsRasterizerClearCache), (TAny*&)cacheInterfacePtr);
+ if(cacheInterfacePtr)
+ cacheInterfacePtr->ClearCache();
+ }
+ MSvgtRasterizerCacheLimitHandler* interfacePtr = NULL;
+ iRasterizer->GetInterface(TUid::Uid(KUidEnableSvgtRasterizer), (TAny*&)interfacePtr);
+ if(interfacePtr)
+ interfacePtr->ChangeCacheLimit(changeCacheLimit);
+ Queue();
+ }
+
+void CSvgtRasterizerOOMPropertyMonitor::DoCancel()
+ {
+ iOomWatcher.Cancel();
+ }
+
+void CSvgtRasterizerOOMPropertyMonitor::Queue()
+ {
+ if (!IsActive())
+ {
+ iOomWatcher.Subscribe(iStatus);
+ SetActive();
+ }
+ }
+
--- a/uigraphics/AknIcon/srvsrc/AknIconSrv.cpp Fri Jun 11 14:37:39 2010 +0300
+++ b/uigraphics/AknIcon/srvsrc/AknIconSrv.cpp Wed Jun 23 19:20:17 2010 +0300
@@ -53,6 +53,8 @@
#include <AvkonInternalCRKeys.h> // KAknQwertyInputModeActive
#include <avkondomainpskeys.h> // KAknPowerMenuStatus
#include <bitdev.h>
+
+#include "SvgtRasterizerKeyDefs.hrh"
// CONSTANTS
const TUid KZiUdbProterty = {0x101F8614};
@@ -114,6 +116,10 @@
TInt err10 = RProperty::Define(KPSUidAvkonDomain, KAknPowerMenuStatus, RProperty::EInt, KPassReadPolicy, KWriteDDPolicy);
TInt err11 = RProperty::Define(KPSUidAvkonDomain, KAknEndKeyEvent, RProperty::EInt, KPassReadPolicy, KWriteDDPolicy);
+ TInt err12 = RProperty::Define(KSvgtPropertyCategory, ESvgtPropertyBool, RProperty::EInt);
+
+ RProperty::Set( KSvgtPropertyCategory, ESvgtPropertyBool, ETrue );
+
#ifdef _DEBUG
RDebug::Print(_L("xxxx KAknQwertyInputModeActive err=%d"), err1);
RDebug::Print(_L("xxxx KUikLayoutState err=%d"), err2);
@@ -126,6 +132,8 @@
RDebug::Print(_L("xxxx KT9UdbProterty err=%d"), err9);
RDebug::Print(_L("xxxx KAknPowerMenuStatus err=%d"), err10);
RDebug::Print(_L("xxxx KAknEndKeyEvent err=%d"), err11);
+
+ RDebug::Print(_L("xxxx ESvgtPropertyBool err=%d"), err12);
#endif
CRepository* repository = NULL;
@@ -1163,6 +1171,9 @@
iCurrentIndex = -1;
iCache->EnableCache(aEnable);
+
+ RProperty::Set(KSvgtPropertyCategory, ESvgtPropertyBool, aEnable );
+
}
// -----------------------------------------------------------------------------
--- a/uiresources_pub/scalable_icons_api/group/bld.inf Fri Jun 11 14:37:39 2010 +0300
+++ b/uiresources_pub/scalable_icons_api/group/bld.inf Wed Jun 23 19:20:17 2010 +0300
@@ -32,3 +32,4 @@
../inc/AknInternalIconUtils.h MW_LAYER_PUBLIC_EXPORT_PATH(AknInternalIconUtils.h)
../inc/AknIconHeader.h MW_LAYER_PUBLIC_EXPORT_PATH(AknIconHeader.h)
../inc/AknIconHeader.inl MW_LAYER_PUBLIC_EXPORT_PATH(AknIconHeader.inl)
+../inc/SvgtRasterizerKeyDefs.hrh MW_LAYER_PUBLIC_EXPORT_PATH(SvgtRasterizerKeyDefs.hrh)
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/uiresources_pub/scalable_icons_api/inc/SvgtRasterizerKeyDefs.hrh Wed Jun 23 19:20:17 2010 +0300
@@ -0,0 +1,27 @@
+/*
+* Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: OOM related Publish n Subscribe UIDs for SvgtFbsrasterizer
+*
+*/
+
+#ifndef SVGTRASTERIZERKEYDEFS_HRH_
+#define SVGTRASTERIZERKEYDEFS_HRH_
+
+const TUid KSvgtPropertyCategory = {0x10012345};
+enum TSvgtPropertyKeys
+ {
+ ESvgtPropertyBool
+ };
+
+#endif /* SVGTRASTERIZERKEYDEFS_HRH_ */