equal
deleted
inserted
replaced
82 aMargin.iBottom = iBlurY; |
82 aMargin.iBottom = iBlurY; |
83 aMargin.iTop = iBlurY; |
83 aMargin.iTop = iBlurY; |
84 } |
84 } |
85 |
85 |
86 TBool CHuiFxVg10BlurFilter::Draw(CHuiFxEngine& aEngine, CHuiGc& /* aGc */, CHuiFxRenderbuffer& aTarget, |
86 TBool CHuiFxVg10BlurFilter::Draw(CHuiFxEngine& aEngine, CHuiGc& /* aGc */, CHuiFxRenderbuffer& aTarget, |
87 CHuiFxRenderbuffer& aSource, const TRect& aTargetRect, const TRect& aSourceRect) |
87 CHuiFxRenderbuffer& aSource, const TRect& aTargetRect, const TRect& aSourceRect, TBool aHasSurface) |
88 { |
88 { |
89 aTarget.BindAsTexture(ERenderbufferUsageWriteOnly); |
89 aTarget.BindAsTexture(ERenderbufferUsageWriteOnly); |
90 aSource.BindAsTexture(ERenderbufferUsageReadOnly); |
90 aSource.BindAsTexture(ERenderbufferUsageReadOnly); |
91 VGImage srcImage = (reinterpret_cast<CHuiFxVg10RenderbufferBase*>(&aSource))->AcquireSubImage(aSourceRect); |
91 VGImage srcImage = (reinterpret_cast<CHuiFxVg10RenderbufferBase*>(&aSource))->AcquireSubImage(aSourceRect); |
92 VGImage destImage = (reinterpret_cast<CHuiFxVg10RenderbufferBase*>(&aTarget))->AcquireSubImage(aTargetRect); |
92 VGImage destImage = (reinterpret_cast<CHuiFxVg10RenderbufferBase*>(&aTarget))->AcquireSubImage(aTargetRect); |
94 // take opacity into account |
94 // take opacity into account |
95 const VGfloat opacity = clamp(iOpacity, 0.0f, 1.0f); |
95 const VGfloat opacity = clamp(iOpacity, 0.0f, 1.0f); |
96 |
96 |
97 if(opacity > EPSILON) |
97 if(opacity > EPSILON) |
98 { |
98 { |
99 DrawEffect(aEngine, destImage, srcImage, aSourceRect.Width(), aSourceRect.Height()); |
99 DrawEffect(aEngine, destImage, srcImage, aSourceRect.Width(), aSourceRect.Height(), aHasSurface); |
100 } |
100 } |
101 else |
101 else |
102 { |
102 { |
103 // VGint width = vgGetParameteri(srcImage, VG_IMAGE_WIDTH); |
103 // VGint width = vgGetParameteri(srcImage, VG_IMAGE_WIDTH); |
104 // VGint height = vgGetParameteri(srcImage, VG_IMAGE_HEIGHT); |
104 // VGint height = vgGetParameteri(srcImage, VG_IMAGE_HEIGHT); |
114 aSource.UnbindAsTexture(); |
114 aSource.UnbindAsTexture(); |
115 |
115 |
116 return wasEnoughMemory(); |
116 return wasEnoughMemory(); |
117 } |
117 } |
118 |
118 |
119 void CHuiFxVg10BlurFilter::DrawEffect(CHuiFxEngine& aEngine, VGImage aTargetImage, VGImage aSourceImage, TInt aWidth, TInt aHeight) |
119 void CHuiFxVg10BlurFilter::DrawEffect(CHuiFxEngine& aEngine, VGImage aTargetImage, VGImage aSourceImage, TInt aWidth, TInt aHeight, TBool /*aHasSurface*/) |
120 { |
120 { |
121 const VGfloat blur_x = clamp(iBlurX, EPSILON, 128.0f); |
121 const VGfloat blur_x = clamp(iBlurX, EPSILON, 128.0f); |
122 const VGfloat blur_y = clamp(iBlurY, EPSILON, 128.0f); |
122 const VGfloat blur_y = clamp(iBlurY, EPSILON, 128.0f); |
123 const VGfloat opacity = clamp(iOpacity, 0.0f, 1.0f); |
123 const VGfloat opacity = clamp(iOpacity, 0.0f, 1.0f); |
124 |
124 |