uifw/ganes/src/HgVgHelper.cpp
branchRCL_3
changeset 23 3d340a0166ff
parent 10 9f56a4e1b8ab
--- a/uifw/ganes/src/HgVgHelper.cpp	Tue Apr 27 16:55:05 2010 +0300
+++ b/uifw/ganes/src/HgVgHelper.cpp	Tue May 11 16:27:42 2010 +0300
@@ -39,36 +39,51 @@
 namespace HgVgHelper
     {
 
+// ---------------------------------------------------------------------------
+// CreateNonMaskedVgImageL()
+// ---------------------------------------------------------------------------
+//     
 static VGImage CreateNonMaskedVgImageL( const CFbsBitmap& aBitmap )
     {
     TSize size = aBitmap.SizeInPixels();    
     VGImage image = vgCreateImage(VG_sRGB_565, size.iWidth, size.iHeight,VG_IMAGE_QUALITY_NONANTIALIASED);        
-
-    if ( image == VG_INVALID_HANDLE )
-        {
-        User::Leave(KErrNoMemory);
-        }
     
-    if (aBitmap.DisplayMode() == EColor64K && !aBitmap.IsCompressedInRAM())
+    if ( image != VG_INVALID_HANDLE  ) // to check if the image was created 
         {
-        aBitmap.BeginDataAccess();
-        TInt stride = aBitmap.DataStride();
-        TUint8* ptr = (TUint8*)aBitmap.DataAddress();
-        vgImageSubData (image, ptr, stride, VG_sRGB_565, 0, 0, size.iWidth, size.iHeight );        
-        aBitmap.EndDataAccess();
+        if (aBitmap.DisplayMode() == EColor64K && !aBitmap.IsCompressedInRAM())
+            {
+            aBitmap.BeginDataAccess();
+            TInt stride = aBitmap.DataStride();
+            TUint8* ptr = (TUint8*)aBitmap.DataAddress();
+            
+            vgGetError(); // to zero the error flag
+            vgImageSubData (image, ptr, stride, VG_sRGB_565, 0, 0, size.iWidth, size.iHeight );
+            
+            if(vgGetError() != VG_NO_ERROR)
+                {
+                vgDestroyImage(image);
+                image = VG_INVALID_HANDLE;
+                }
+            aBitmap.EndDataAccess();
+            }
+        else
+            {
+            TSize size = aBitmap.SizeInPixels();
+            CHgVgDrawBuffer* temp = CHgVgDrawBuffer::NewL(size, EColor64K);
+            temp->Gc().BitBlt(TPoint(0,0), &aBitmap);
+            temp->GetDrawBufferToVgImage(size, TPoint(0,0), image, 
+                    VG_sRGB_565);
+            delete temp;        
+            }
         }
-    else
-        {
-        TSize size = aBitmap.SizeInPixels();
-        CHgVgDrawBuffer* temp = CHgVgDrawBuffer::NewL(size, EColor64K);
-        temp->Gc().BitBlt(TPoint(0,0), &aBitmap);
-        temp->GetDrawBufferToVgImage(size, TPoint(0,0), image, 
-                VG_sRGB_565);
-        delete temp;        
-        }
+
     return image;
     }
 
+// ---------------------------------------------------------------------------
+// CreateMaskedVgImageL()
+// ---------------------------------------------------------------------------
+//     
 static VGImage CreateMaskedVgImageL( CFbsBitmap* aBitmap, CFbsBitmap* aMask )
     {
     TSize size = aBitmap->SizeInPixels();