37 |
37 |
38 |
38 |
39 namespace HgVgHelper |
39 namespace HgVgHelper |
40 { |
40 { |
41 |
41 |
|
42 // --------------------------------------------------------------------------- |
|
43 // CreateNonMaskedVgImageL() |
|
44 // --------------------------------------------------------------------------- |
|
45 // |
42 static VGImage CreateNonMaskedVgImageL( const CFbsBitmap& aBitmap ) |
46 static VGImage CreateNonMaskedVgImageL( const CFbsBitmap& aBitmap ) |
43 { |
47 { |
44 TSize size = aBitmap.SizeInPixels(); |
48 TSize size = aBitmap.SizeInPixels(); |
45 VGImage image = vgCreateImage(VG_sRGB_565, size.iWidth, size.iHeight,VG_IMAGE_QUALITY_NONANTIALIASED); |
49 VGImage image = vgCreateImage(VG_sRGB_565, size.iWidth, size.iHeight,VG_IMAGE_QUALITY_NONANTIALIASED); |
46 |
50 |
47 if ( image == VG_INVALID_HANDLE ) |
51 if ( image != VG_INVALID_HANDLE ) // to check if the image was created |
48 { |
52 { |
49 User::Leave(KErrNoMemory); |
53 if (aBitmap.DisplayMode() == EColor64K && !aBitmap.IsCompressedInRAM()) |
50 } |
54 { |
51 |
55 aBitmap.BeginDataAccess(); |
52 if (aBitmap.DisplayMode() == EColor64K && !aBitmap.IsCompressedInRAM()) |
56 TInt stride = aBitmap.DataStride(); |
53 { |
57 TUint8* ptr = (TUint8*)aBitmap.DataAddress(); |
54 aBitmap.BeginDataAccess(); |
58 |
55 TInt stride = aBitmap.DataStride(); |
59 vgGetError(); // to zero the error flag |
56 TUint8* ptr = (TUint8*)aBitmap.DataAddress(); |
60 vgImageSubData (image, ptr, stride, VG_sRGB_565, 0, 0, size.iWidth, size.iHeight ); |
57 vgImageSubData (image, ptr, stride, VG_sRGB_565, 0, 0, size.iWidth, size.iHeight ); |
61 |
58 aBitmap.EndDataAccess(); |
62 if(vgGetError() != VG_NO_ERROR) |
59 } |
63 { |
60 else |
64 vgDestroyImage(image); |
61 { |
65 image = VG_INVALID_HANDLE; |
62 TSize size = aBitmap.SizeInPixels(); |
66 } |
63 CHgVgDrawBuffer* temp = CHgVgDrawBuffer::NewL(size, EColor64K); |
67 aBitmap.EndDataAccess(); |
64 temp->Gc().BitBlt(TPoint(0,0), &aBitmap); |
68 } |
65 temp->GetDrawBufferToVgImage(size, TPoint(0,0), image, |
69 else |
66 VG_sRGB_565); |
70 { |
67 delete temp; |
71 TSize size = aBitmap.SizeInPixels(); |
68 } |
72 CHgVgDrawBuffer* temp = CHgVgDrawBuffer::NewL(size, EColor64K); |
|
73 temp->Gc().BitBlt(TPoint(0,0), &aBitmap); |
|
74 temp->GetDrawBufferToVgImage(size, TPoint(0,0), image, |
|
75 VG_sRGB_565); |
|
76 delete temp; |
|
77 } |
|
78 } |
|
79 |
69 return image; |
80 return image; |
70 } |
81 } |
71 |
82 |
|
83 // --------------------------------------------------------------------------- |
|
84 // CreateMaskedVgImageL() |
|
85 // --------------------------------------------------------------------------- |
|
86 // |
72 static VGImage CreateMaskedVgImageL( CFbsBitmap* aBitmap, CFbsBitmap* aMask ) |
87 static VGImage CreateMaskedVgImageL( CFbsBitmap* aBitmap, CFbsBitmap* aMask ) |
73 { |
88 { |
74 TSize size = aBitmap->SizeInPixels(); |
89 TSize size = aBitmap->SizeInPixels(); |
75 CHgVgDrawBuffer* temp = CHgVgDrawBuffer::NewL(size, EColor16MA); |
90 CHgVgDrawBuffer* temp = CHgVgDrawBuffer::NewL(size, EColor16MA); |
76 temp->Gc().SetDrawMode(CGraphicsContext::EDrawModeWriteAlpha); |
91 temp->Gc().SetDrawMode(CGraphicsContext::EDrawModeWriteAlpha); |