// Allow this to be encoded and saved:
#include <dali/devel-api/adaptor-framework/bitmap-saver.h>
-
namespace Dali
{
mBlendingRequired( false ),
mColorDepth( depth ),
mEglImageKHR( NULL ),
+ mEglGraphics( NULL ),
mEglImageExtensions( NULL ),
mSetSource( false )
{
DALI_ASSERT_ALWAYS( Adaptor::IsAvailable() );
GraphicsInterface* graphics = &( Adaptor::GetImplementation( Adaptor::Get() ).GetGraphicsInterface() );
- auto eglGraphics = static_cast<EglGraphics *>(graphics);
-
- mEglImageExtensions = eglGraphics->GetImageExtensions();
-
- DALI_ASSERT_DEBUG( mEglImageExtensions );
+ mEglGraphics = static_cast<EglGraphics *>(graphics);
mTbmSurface = GetSurfaceFromAny( nativeImageSource );
return false;
}
+ mEglImageExtensions = mEglGraphics->GetImageExtensions();
+ DALI_ASSERT_DEBUG( mEglImageExtensions );
+
mEglImageKHR = mEglImageExtensions->CreateImageKHR( eglBuffer );
return mEglImageKHR != NULL;
mTbmQueue( NULL ),
mConsumeSurface( NULL ),
mEglImages(),
+ mEglGraphics( NULL ),
mEglImageExtensions( NULL ),
mOwnTbmQueue( false ),
mBlendingRequired( false )
DALI_ASSERT_ALWAYS( Adaptor::IsAvailable() );
GraphicsInterface* graphics = &( Adaptor::GetImplementation( Adaptor::Get() ).GetGraphicsInterface() );
- auto eglGraphics = static_cast<EglGraphics *>(graphics);
-
- mEglImageExtensions = eglGraphics->GetImageExtensions();
-
- DALI_ASSERT_DEBUG( mEglImageExtensions );
+ mEglGraphics = static_cast<EglGraphics *>(graphics);
mTbmQueue = GetSurfaceFromAny( nativeImageSourceQueue );
bool NativeImageSourceQueueTizen::GlExtensionCreate()
{
+ mEglImageExtensions = mEglGraphics->GetImageExtensions();
+ DALI_ASSERT_DEBUG( mEglImageExtensions );
+
return true;
}
{
tbm_surface_h oldSurface = mConsumeSurface;
- bool needToWait = ( mConsumeSurface == NULL ) ? true : false;
-
- if( tbm_surface_queue_can_acquire( mTbmQueue, needToWait ) )
+ if( tbm_surface_queue_can_acquire( mTbmQueue, 0 ) )
{
if( tbm_surface_queue_acquire( mTbmQueue, &mConsumeSurface ) != TBM_SURFACE_QUEUE_ERROR_NONE )
{
DALI_LOG_ERROR( "Failed to aquire a tbm_surface\n" );
return;
}
- }
- if( oldSurface && oldSurface != mConsumeSurface )
- {
- if( tbm_surface_internal_is_valid( oldSurface ) )
+ if( oldSurface )
{
- tbm_surface_queue_release( mTbmQueue, oldSurface );
+ if( tbm_surface_internal_is_valid( oldSurface ) )
+ {
+ tbm_surface_queue_release( mTbmQueue, oldSurface );
+ }
}
- }
- if( mConsumeSurface )
- {
- bool existing = false;
- for( auto&& iter : mEglImages )
+ if( mConsumeSurface )
{
- if( iter.first == mConsumeSurface )
+ bool existing = false;
+ for( auto&& iter : mEglImages )
{
- // Find the surface in the existing list
- existing = true;
- mEglImageExtensions->TargetTextureKHR( iter.second );
- break;
+ if( iter.first == mConsumeSurface )
+ {
+ // Find the surface in the existing list
+ existing = true;
+ mEglImageExtensions->TargetTextureKHR( iter.second );
+ break;
+ }
}
- }
- if( !existing )
- {
- // Push the surface
- tbm_surface_internal_ref( mConsumeSurface );
+ if( !existing )
+ {
+ // Push the surface
+ tbm_surface_internal_ref( mConsumeSurface );
- void* eglImageKHR = mEglImageExtensions->CreateImageKHR( reinterpret_cast< EGLClientBuffer >( mConsumeSurface ) );
- mEglImageExtensions->TargetTextureKHR( eglImageKHR );
+ void* eglImageKHR = mEglImageExtensions->CreateImageKHR( reinterpret_cast< EGLClientBuffer >( mConsumeSurface ) );
+ mEglImageExtensions->TargetTextureKHR( eglImageKHR );
- mEglImages.push_back( EglImagePair( mConsumeSurface, eglImageKHR) );
+ mEglImages.push_back( EglImagePair( mConsumeSurface, eglImageKHR) );
+ }
}
}
}