src/hbcore/utils/hboogmwatcher.cpp
changeset 5 627c4a0fd0e7
parent 3 11d3954df52a
equal deleted inserted replaced
3:11d3954df52a 5:627c4a0fd0e7
    69         return 0;
    69         return 0;
    70     }
    70     }
    71     static HbOogmWatcher *watcher = new HbOogmWatcher(qApp);
    71     static HbOogmWatcher *watcher = new HbOogmWatcher(qApp);
    72     return watcher;
    72     return watcher;
    73 }
    73 }
    74     
    74 
    75 HbOogmWatcher::HbOogmWatcher(QObject *parent)
    75 HbOogmWatcher::HbOogmWatcher(QObject *parent)
    76     : QObject(parent), d_ptr(new HbOogmWatcherPrivate)
    76     : QObject(parent), d_ptr(new HbOogmWatcherPrivate)
    77 {
    77 {
    78     Q_D(HbOogmWatcher);
    78     Q_D(HbOogmWatcher);
    79     d->q_ptr = this;
    79     d->q_ptr = this;
   100   \internal
   100   \internal
   101 */
   101 */
   102 void HbOogmWatcherPrivate::graphicsMemoryLow()
   102 void HbOogmWatcherPrivate::graphicsMemoryLow()
   103 {
   103 {
   104     qWarning("HbOogmWatcher::graphicsMemoryLow()");
   104     qWarning("HbOogmWatcher::graphicsMemoryLow()");
   105     if (mRenderMode == EHWRendering) {        
   105     if (mRenderMode == EHWRendering) {
   106         mRenderMode = ESWRendering;
   106         mRenderMode = ESWRendering;
   107         HbIconLoader::global()->switchRenderingMode(mRenderMode);
   107         HbIconLoader::global()->switchRenderingMode(mRenderMode);
   108     }    
   108     }
   109 #ifdef HB_EFFECTS_OPENVG
   109 #ifdef HB_EFFECTS_OPENVG
   110     // Destroy the cached pixmaps of effects. This is also necessary
   110     // Destroy the cached pixmaps of effects. This is also necessary
   111     // to make the OpenVG filter effect caching working properly. (if
   111     // to make the OpenVG filter effect caching working properly. (if
   112     // Qt would free the pixmaps' underlying VGImage when graphics
   112     // Qt would free the pixmaps' underlying VGImage when graphics
   113     // memory is low then that would render the filter effects' cached
   113     // memory is low then that would render the filter effects' cached
   115     HbVgEffect::releaseCachedResources();
   115     HbVgEffect::releaseCachedResources();
   116 #endif
   116 #endif
   117     // Drop the underlying pixmap data (if possible) for all HbIconItems that
   117     // Drop the underlying pixmap data (if possible) for all HbIconItems that
   118     // are not currently visible.
   118     // are not currently visible.
   119     int n = 0;
   119     int n = 0;
   120     foreach (HbIconItem *iconItem, mIconItems) {
   120     foreach(HbIconItem * iconItem, mIconItems) {
   121         if (!iconItem->isVisible()) {
   121         if (!iconItem->isVisible()) {
   122             HbIconItemPrivate::d_ptr(iconItem)->clearStoredIconContent();
   122             HbIconItemPrivate::d_ptr(iconItem)->clearStoredIconContent();
   123             ++n;
   123             ++n;
   124         }
   124         }
   125     }
   125     }
   131   \internal
   131   \internal
   132 */
   132 */
   133 void HbOogmWatcherPrivate::graphicsMemoryGood()
   133 void HbOogmWatcherPrivate::graphicsMemoryGood()
   134 {
   134 {
   135     qWarning("HbOogmWatcher::graphicsMemoryGood()");
   135     qWarning("HbOogmWatcher::graphicsMemoryGood()");
   136     if (mRenderMode == ESWRendering) {        
   136     if (mRenderMode == ESWRendering) {
   137         mRenderMode = EHWRendering;
   137         mRenderMode = EHWRendering;
   138         HbIconLoader::global()->switchRenderingMode(mRenderMode);
   138         HbIconLoader::global()->switchRenderingMode(mRenderMode);
   139     }     
   139     }
   140     emit q_ptr->graphicsMemoryGood();
   140     emit q_ptr->graphicsMemoryGood();
   141 }
   141 }
   142 
   142 
   143 /*!  Registers an HbIconItem instance. Whenever graphics memory is
   143 /*!  Registers an HbIconItem instance. Whenever graphics memory is
   144   low, the registered iconitems will be examined and the ones that are
   144   low, the registered iconitems will be examined and the ones that are