src/hbcore/ovgeffects/hbvgmaskeffect.cpp
changeset 5 627c4a0fd0e7
parent 0 16d8024aca5e
child 7 923ff622b8b9
--- a/src/hbcore/ovgeffects/hbvgmaskeffect.cpp	Thu May 27 13:10:59 2010 +0300
+++ b/src/hbcore/ovgeffects/hbvgmaskeffect.cpp	Fri Jun 11 13:58:22 2010 +0300
@@ -141,8 +141,9 @@
 void HbVgMaskEffect::setMaskCallback(MaskCallback callback, void *param)
 {
     Q_D(HbVgMaskEffect);
-    if (d->maskCallback == callback)
+    if (d->maskCallback == callback) {
         return;
+    }
     clear();
     d->maskCallback = callback;
     d->maskCallbackParam = param;
@@ -176,8 +177,9 @@
 void HbVgMaskEffect::setMaskRect(const QRectF &rect)
 {
     Q_D(HbVgMaskEffect);
-    if (rect == d->maskRect && !d->maskRectIsInDeviceCoords)
+    if (rect == d->maskRect && !d->maskRectIsInDeviceCoords) {
         return;
+    }
     clear();
     d->maskRect = rect;
     d->maskRectIsInDeviceCoords = false;
@@ -193,8 +195,9 @@
 void HbVgMaskEffect::setMaskDeviceRect(const QRectF &rect)
 {
     Q_D(HbVgMaskEffect);
-    if (rect == d->maskRect && d->maskRectIsInDeviceCoords)
+    if (rect == d->maskRect && d->maskRectIsInDeviceCoords) {
         return;
+    }
     clear();
     d->maskRect = rect;
     d->maskRectIsInDeviceCoords = true;
@@ -233,15 +236,21 @@
     Q_UNUSED(vgImage);
     Q_D(HbVgMaskEffect);
 
+    if (!painter->paintEngine()) {
+        return;
+    }
+
     // Initialize scaledMask if the mask has changed or the size of the source
     // is different than before.
     if (!d->mask.isNull()) {
-        if (d->scaledMask.isNull())
+        if (d->scaledMask.isNull()) {
             d->scaledMask = d->mask;
+        }
         // Scale only when really needed, i.e. when the size is different than
         // before (or there is a new mask).
-        if (d->scaledMask.size() != vgImageSize)
+        if (d->scaledMask.size() != vgImageSize) {
             d->scaledMask = d->mask.scaled(vgImageSize);
+        }
     }
 
     vgSeti(VG_MASKING, VG_TRUE);
@@ -276,8 +285,9 @@
     } else if (d->maskCallback) {
         // Invoke the callback but only if it has just been set or the size of
         // the source is different than before.
-        if (d->callbackResult.isNull() || d->callbackResult.size() != vgImageSize)
+        if (d->callbackResult.isNull() || d->callbackResult.size() != vgImageSize) {
             d->callbackResult = d->maskCallback(vgImageSize, d->maskCallbackParam);
+        }
         maskPtr = &d->callbackResult;
     }