42 void CHuiFxVg10ColorMatrixFilterBase::CopyFromL(const CHuiFxVg10ColorMatrixFilterBase *aOldFilter) |
42 void CHuiFxVg10ColorMatrixFilterBase::CopyFromL(const CHuiFxVg10ColorMatrixFilterBase *aOldFilter) |
43 { |
43 { |
44 CHuiFxVg10FilterBase::CopyFromL(aOldFilter); |
44 CHuiFxVg10FilterBase::CopyFromL(aOldFilter); |
45 memcpy(iColorMatrix, aOldFilter->iColorMatrix, sizeof(iColorMatrix)); |
45 memcpy(iColorMatrix, aOldFilter->iColorMatrix, sizeof(iColorMatrix)); |
46 } |
46 } |
47 void CHuiFxVg10ColorMatrixFilterBase::DrawEffect(CHuiFxEngine& /*aEngine*/, VGImage aTargetImage, VGImage aSourceImage, TInt aWidth, TInt aHeight ) |
47 void CHuiFxVg10ColorMatrixFilterBase::DrawEffect(CHuiFxEngine& /*aEngine*/, VGImage aTargetImage, VGImage aSourceImage, TInt aWidth, TInt aHeight,TBool aHasSurface ) |
48 { |
48 { |
49 // take opacity into account |
49 // take opacity into account |
50 const VGfloat opacity = clamp(iOpacity, 0.0f, 1.0f); |
50 const VGfloat opacity = clamp(iOpacity, 0.0f, 1.0f); |
51 |
51 |
52 if(opacity > EPSILON) |
52 if(opacity > EPSILON) |
53 { |
53 { |
54 if(ParameterChanged()) |
54 if(ParameterChanged()) |
55 { |
55 { |
56 UpdateColorMatrix(); |
56 UpdateColorMatrix(); |
57 } |
57 } |
|
58 |
|
59 iColorMatrix[19] = aHasSurface ? 0.5f : 0.0f; |
58 vgColorMatrix(aTargetImage, aSourceImage, iColorMatrix); |
60 vgColorMatrix(aTargetImage, aSourceImage, iColorMatrix); |
59 } |
61 } |
60 else |
62 else |
61 { |
63 { |
62 // VGint width = vgGetParameteri(aSourceImage, VG_IMAGE_WIDTH); |
64 // VGint width = vgGetParameteri(aSourceImage, VG_IMAGE_WIDTH); |