--- a/src/hbservers/hbthemeserver/hbsgimageiconprocessor_p.cpp Mon Oct 04 17:49:30 2010 +0300
+++ b/src/hbservers/hbthemeserver/hbsgimageiconprocessor_p.cpp Mon Oct 18 18:23:13 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) {
@@ -161,7 +163,7 @@
if (!success) {
return false;
}
- vgFinish();
+ vgFlush();
// Once finished, release all handles to the image, and shut down EGL.
// Make a null EGLSurface current to release the current surface before
// destroying. The RSgImage contents will persist until the RSgImage is closed.
@@ -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();
@@ -301,7 +305,7 @@
return false;
}
}
- vgFinish();
+ vgFlush();
sgImageRenderer->endRendering();
@@ -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;
}