src/hbservers/hbthemeserver/hbsgimageiconprocessor_p.cpp
changeset 21 4633027730f5
parent 5 627c4a0fd0e7
--- a/src/hbservers/hbthemeserver/hbsgimageiconprocessor_p.cpp	Tue Jul 06 14:36:53 2010 +0300
+++ b/src/hbservers/hbthemeserver/hbsgimageiconprocessor_p.cpp	Wed Aug 18 10:05:37 2010 +0300
@@ -139,6 +139,7 @@
 
     TInt err = sgImage->Create(info, 0, 0);
     if (err != KErrNone) {
+        sgImageRenderer->setLastError(err);
         return false;
     }
 
@@ -146,6 +147,7 @@
 
     memcpy(&data.sgImageData.id, &sgImageId.iId, sizeof(data.sgImageData.id));
     data.type = SGIMAGE;
+    data.renderingMode = EHWRendering;
 
     bool success = sgImageRenderer->beginRendering(sgImage);
     if (!success) {
@@ -244,10 +246,12 @@
 
     TInt err = sgImage->Create(info, 0, 0);
     if (err != KErrNone) {
+        sgImageRenderer->setLastError(err);
         return false;
     }
 
     data.type = SGIMAGE;
+    data.renderingMode = EHWRendering;
     data.sgImageData.width = qRound(multiPieceIconParams.size.width());
     data.sgImageData.height = qRound(multiPieceIconParams.size.height());
     data.sgImageData.defaultWidth = defaultSize.width();
@@ -327,6 +331,9 @@
     sgImageRenderer->nvgEngine()->enableMirroring(mirrored);
 
     HbNvgEngine::HbNvgErrorType errorType = sgImageRenderer->nvgEngine()->drawNvg(byteArray, size);
+    if (errorType == HbNvgEngine::NvgErrNoMemory){
+        sgImageRenderer->setLastError(KErrNoGraphicsMemory);
+    }
     return errorType == HbNvgEngine::NvgErrNone;
 }