mDisplay = pepper_compositor_get_display( mCompositor );
-#if 0
- mTbmServer = wayland_tbm_server_init( mDisplay, NULL, -1, 0 );
- if( !mTbmServer )
+ // create shell
+ mShell = Pepper::Shell::New( Pepper::Compositor( this ) );
+ if( !mShell )
{
- DALI_LOG_INFO( gPepperCompositorLogging, Debug::General, "Compositor::Initialize: wayland_tbm_server_init is failed.\n" );
+ DALI_LOG_INFO( gPepperCompositorLogging, Debug::General, "Compositor::Initialize: Fail to create shell.\n" );
pepper_compositor_destroy( mCompositor );
mCompositor = NULL;
return;
}
-#endif
- // create shell
- mShell = Pepper::Shell::New( Pepper::Compositor( this ) );
- if( !mShell )
+ mTbmServer = wayland_tbm_server_init( mDisplay, NULL, -1, 0 );
+ if( !mTbmServer )
{
- DALI_LOG_INFO( gPepperCompositorLogging, Debug::General, "Compositor::Initialize: Fail to create shell.\n" );
- wayland_tbm_server_deinit( mTbmServer );
- mTbmServer = NULL;
+ DALI_LOG_INFO( gPepperCompositorLogging, Debug::General, "Compositor::Initialize: wayland_tbm_server_init is failed.\n" );
pepper_compositor_destroy( mCompositor );
mCompositor = NULL;
return;
{
pepper_buffer_t* buffer;
wl_resource* bufferResource;
- wl_shm_buffer* shmBuffer;
- tbm_surface_h tbmSurface;
+ wl_shm_buffer* shmBuffer = NULL;
+ tbm_surface_h tbmSurface = NULL;
int bufWidth, bufHeight;
buffer = pepper_surface_get_buffer( mSurface );
bufferResource = pepper_buffer_get_resource( buffer );
- shmBuffer = wl_shm_buffer_get( bufferResource );
- if( shmBuffer )
- {
- bufWidth = wl_shm_buffer_get_width( shmBuffer );
- bufHeight = wl_shm_buffer_get_height( shmBuffer );
- }
- else
- {
- tbmSurface = wayland_tbm_server_get_surface( NULL, bufferResource );
- if( tbmSurface )
- {
- bufWidth = tbm_surface_get_width( tbmSurface );
- bufHeight = tbm_surface_get_height( tbmSurface );
- }
- else
- {
- DALI_LOG_INFO( gPepperObjectLogging, Debug::General, "Object::AttchBuffer: Failed to get buffer\n" );
- return false;
- }
- }
-
if( !mObjectView )
{
mObjectView = Pepper::ObjectView::New();
mObjectViewAddedSignal.Emit( handle, mObjectView );
}
- if( shmBuffer != mShmBuffer )
+ shmBuffer = wl_shm_buffer_get( bufferResource );
+ if( shmBuffer )
{
- // create a new image
- PixelBuffer* pixelBuffer = static_cast< PixelBuffer* >( wl_shm_buffer_get_data( shmBuffer ) );
- mBufferImage = BufferImage::New( pixelBuffer, bufWidth, bufHeight );
+ bufWidth = wl_shm_buffer_get_width( shmBuffer );
+ bufHeight = wl_shm_buffer_get_height( shmBuffer );
+
+ if( shmBuffer != mShmBuffer )
+ {
+ // create a new image
+ PixelBuffer* pixelBuffer = static_cast< PixelBuffer* >( wl_shm_buffer_get_data( shmBuffer ) );
+ mBufferImage = BufferImage::New( pixelBuffer, bufWidth, bufHeight );
- mObjectView.SetImage( mBufferImage );
+ mObjectView.SetImage( mBufferImage );
- mShmBuffer = shmBuffer;
+ mShmBuffer = shmBuffer;
+ }
}
- else if ( tbmSurface != mTbmSurface )
+ else
{
- NativeImageSourcePtr nativeImageSource = NativeImageSource::New( tbmSurface );
- mNativeImage = NativeImage::New( *nativeImageSource );
+ tbmSurface = wayland_tbm_server_get_surface( NULL, bufferResource );
+ if( tbmSurface )
+ {
+ bufWidth = tbm_surface_get_width( tbmSurface );
+ bufHeight = tbm_surface_get_height( tbmSurface );
+
+ if ( tbmSurface != mTbmSurface )
+ {
+ // create a new image
+ NativeImageSourcePtr nativeImageSource = NativeImageSource::New( tbmSurface );
+ mNativeImage = NativeImage::New( *nativeImageSource );
- mObjectView.SetImage( mNativeImage );
+ mObjectView.SetImage( mNativeImage );
- mTbmSurface = tbmSurface;
+ mTbmSurface = tbmSurface;
+ }
+ }
+ else
+ {
+ DALI_LOG_INFO( gPepperObjectLogging, Debug::General, "Object::AttchBuffer: Failed to get buffer\n" );
+ return false;
+ }
}
if( ( mWidth != bufWidth ) || ( mHeight != bufHeight ) )
object->mObjectViewDeletedSignal.Emit( handle, object->mObjectView );
object->mSurface = NULL;
+ object->mTbmSurface = NULL;
if( object->mSurfaceDestroyListener )
{
pepper_event_listener_remove( object->mBufferDestroyListener );
}
+#if 0
if( object->mShmBuffer )
{
void* shmData = wl_shm_buffer_get_data( object->mShmBuffer );
else if( object->mTbmSurface )
{
}
+#endif
}
} // namespace Internal