mWidth = tbm_surface_get_width( mTbmSurface );
mHeight = tbm_surface_get_height( mTbmSurface );
}
-
- if( mEglImageKHRContainer.Size() > 2 )
- {
- mEglImageExtensions->DestroyImageKHR(mEglImageKHRContainer[0]);
- mEglImageKHRContainer.Erase( mEglImageKHRContainer.Begin() );
- }
-
- mEglImageKHRContainer.PushBack( mEglImageKHR );
}
bool NativeImageSource::IsColorDepthSupported( Dali::NativeImageSource::ColorDepth colorDepth )
{
// casting from an unsigned int to a void *, which should then be cast back
// to an unsigned int in the driver.
- EGLClientBuffer eglBuffer = reinterpret_cast< EGLClientBuffer > (mTbmSurface);
+ EGLClientBuffer eglBuffer = reinterpret_cast< EGLClientBuffer >(mTbmSurface);
+ if( !eglBuffer )
+ {
+ return false;
+ }
mEglImageKHR = mEglImageExtensions->CreateImageKHR( eglBuffer );
void NativeImageSource::GlExtensionDestroy()
{
- mEglImageExtensions->DestroyImageKHR(mEglImageKHR);
+ if( mEglImageKHR )
+ {
+ mEglImageExtensions->DestroyImageKHR(mEglImageKHR);
- mEglImageKHR = NULL;
+ mEglImageKHR = NULL;
+ }
}
unsigned int NativeImageSource::TargetTexture()
void NativeImageSource::PrepareTexture()
{
- if( mSetSource && GlExtensionCreate() )
+ if( mSetSource )
{
- TargetTexture();
+ void* eglImage = mEglImageKHR;
+
+ if( GlExtensionCreate() )
+ {
+ TargetTexture();
+ }
+
+ mEglImageExtensions->DestroyImageKHR( eglImage );
+
mSetSource = false;
}
}