DALI_TYPE_REGISTRATION_END()
-struct wl_buffer* preBuffer;
-struct tizen_remote_surface* remoteSurface;
-
const char* const STATE_TEXT( "stateText" );
const char* const FONT_STYLE( "fontStyle" );
const char* const TEXT_POINT_SIZE( "textPointSize" );
if( widgetView )
{
- if( !widgetView->IsWidgetRenderer() )
- {
- tizen_remote_surface_transfer_visibility( surface, TIZEN_REMOTE_SURFACE_VISIBILITY_TYPE_VISIBLE);
-
- widgetView->CreateWidgetRenderer();
- widgetView->ConnectSignal( surface );
- }
-
- //get tbm surface from buffer
- tbm_surface_h tbmSurface = static_cast< tbm_surface_h >( wl_buffer_get_user_data( buffer ) );
- widgetView->UpdateImageSource( tbmSurface );
- }
-
- if( preBuffer != NULL && tizen_remote_surface_get_version( surface ) >= TIZEN_REMOTE_SURFACE_RELEASE_SINCE_VERSION )
- {
- tizen_remote_surface_release( surface, preBuffer );
- tbm_surface_h preTbmSurface = (tbm_surface_h)wl_buffer_get_user_data( preBuffer );
- tbm_surface_internal_unref( preTbmSurface );
- wl_buffer_destroy( preBuffer );
+ widgetView->UpdateBuffer( surface, buffer, img_file_fd);
}
-
- remoteSurface = surface;
- preBuffer = buffer;
-
- close( img_file_fd );
}
static void OnBufferAdded( const char *appid, const char *instance_id, const int pid, void *data )
mRetryState( false ),
mPermanentDelete( false ),
mWatcherHandle( NULL ),
- mRemoteSurface( NULL )
+ mRemoteSurface( NULL ),
+ mBuffer( NULL )
{
}
mRetryState( false ),
mPermanentDelete( false ),
mWatcherHandle( NULL ),
- mRemoteSurface( NULL )
+ mRemoteSurface( NULL ),
+ mBuffer( NULL )
{
}
{
if( mWatcherHandle != NULL )
{
- if( remoteSurface != NULL && preBuffer != NULL && tizen_remote_surface_get_version( remoteSurface ) >= TIZEN_REMOTE_SURFACE_RELEASE_SINCE_VERSION )
+ if( mRemoteSurface != NULL && mBuffer != NULL && tizen_remote_surface_get_version( mRemoteSurface ) >= TIZEN_REMOTE_SURFACE_RELEASE_SINCE_VERSION )
{
- tizen_remote_surface_release( remoteSurface, preBuffer );
- tbm_surface_h preTbmSurface = (tbm_surface_h)wl_buffer_get_user_data( preBuffer );
- tbm_surface_internal_unref( preTbmSurface );
- wl_buffer_destroy( preBuffer );
- preBuffer = NULL;
+ screen_connector_toolkit_dispose_buffer( mWatcherHandle , mBuffer );
+ mBuffer = NULL;
}
screen_connector_toolkit_remove( mWatcherHandle );
return true;
}
+void WidgetView::UpdateBuffer( struct tizen_remote_surface *surface, struct wl_buffer *buffer, int32_t fd)
+{
+ if( !IsWidgetRenderer() )
+ {
+ tizen_remote_surface_transfer_visibility( surface, TIZEN_REMOTE_SURFACE_VISIBILITY_TYPE_VISIBLE);
+
+ CreateWidgetRenderer();
+ ConnectSignal( surface );
+ }
+
+ //get tbm surface from buffer
+ tbm_surface_h tbmSurface = static_cast< tbm_surface_h >( wl_buffer_get_user_data( buffer ) );
+ UpdateImageSource( tbmSurface );
+
+ if( mBuffer != NULL && tizen_remote_surface_get_version( surface ) >= TIZEN_REMOTE_SURFACE_RELEASE_SINCE_VERSION )
+ {
+ screen_connector_toolkit_dispose_buffer( mWatcherHandle , mBuffer );
+ }
+
+ mRemoteSurface = surface;
+ mBuffer = buffer;
+
+ close( fd );
+
+}
+
Dali::Shader WidgetView::CreateShader()
{
std::string fragmentShader = "#extension GL_OES_EGL_image_external:require\n";