SET( devel_api_src_files
- ${adaptor_devel_api_dir}/adaptor-framework/accessibility-adaptor.cpp
- ${adaptor_devel_api_dir}/adaptor-framework/application-devel.cpp
- ${adaptor_devel_api_dir}/adaptor-framework/bitmap-saver.cpp
- ${adaptor_devel_api_dir}/adaptor-framework/clipboard.cpp
- ${adaptor_devel_api_dir}/adaptor-framework/clipboard-event-notifier.cpp
- ${adaptor_devel_api_dir}/adaptor-framework/color-controller.cpp
- ${adaptor_devel_api_dir}/adaptor-framework/environment-variable.cpp
- ${adaptor_devel_api_dir}/adaptor-framework/event-feeder.cpp
- ${adaptor_devel_api_dir}/adaptor-framework/event-thread-callback.cpp
- ${adaptor_devel_api_dir}/adaptor-framework/feedback-player.cpp
- ${adaptor_devel_api_dir}/adaptor-framework/file-loader.cpp
- ${adaptor_devel_api_dir}/adaptor-framework/file-stream.cpp
- ${adaptor_devel_api_dir}/adaptor-framework/image-loading.cpp
- ${adaptor_devel_api_dir}/adaptor-framework/gif-loading.cpp
- ${adaptor_devel_api_dir}/adaptor-framework/input-method-context.cpp
- ${adaptor_devel_api_dir}/adaptor-framework/input-method-options.cpp
- ${adaptor_devel_api_dir}/adaptor-framework/native-image-source-queue.cpp
- ${adaptor_devel_api_dir}/adaptor-framework/orientation.cpp
- ${adaptor_devel_api_dir}/adaptor-framework/performance-logger.cpp
- ${adaptor_devel_api_dir}/adaptor-framework/physical-keyboard.cpp
- ${adaptor_devel_api_dir}/adaptor-framework/key-devel.cpp
- ${adaptor_devel_api_dir}/adaptor-framework/pixel-buffer.cpp
- ${adaptor_devel_api_dir}/adaptor-framework/sound-player.cpp
- ${adaptor_devel_api_dir}/adaptor-framework/style-monitor.cpp
- ${adaptor_devel_api_dir}/adaptor-framework/tilt-sensor.cpp
- ${adaptor_devel_api_dir}/adaptor-framework/lifecycle-controller.cpp
- ${adaptor_devel_api_dir}/adaptor-framework/vector-animation-renderer.cpp
- ${adaptor_devel_api_dir}/adaptor-framework/video-player.cpp
- ${adaptor_devel_api_dir}/adaptor-framework/virtual-keyboard.cpp
- ${adaptor_devel_api_dir}/adaptor-framework/thread-settings.cpp
- ${adaptor_devel_api_dir}/adaptor-framework/web-engine.cpp
+ ${adaptor_devel_api_dir}/adaptor-framework/accessibility-adaptor.cpp
+ ${adaptor_devel_api_dir}/adaptor-framework/application-devel.cpp
+ ${adaptor_devel_api_dir}/adaptor-framework/bitmap-saver.cpp
+ ${adaptor_devel_api_dir}/adaptor-framework/clipboard.cpp
+ ${adaptor_devel_api_dir}/adaptor-framework/clipboard-event-notifier.cpp
+ ${adaptor_devel_api_dir}/adaptor-framework/color-controller.cpp
+ ${adaptor_devel_api_dir}/adaptor-framework/environment-variable.cpp
+ ${adaptor_devel_api_dir}/adaptor-framework/event-feeder.cpp
+ ${adaptor_devel_api_dir}/adaptor-framework/event-thread-callback.cpp
+ ${adaptor_devel_api_dir}/adaptor-framework/feedback-player.cpp
+ ${adaptor_devel_api_dir}/adaptor-framework/file-loader.cpp
+ ${adaptor_devel_api_dir}/adaptor-framework/file-stream.cpp
+ ${adaptor_devel_api_dir}/adaptor-framework/image-loading.cpp
+ ${adaptor_devel_api_dir}/adaptor-framework/gif-loading.cpp
+ ${adaptor_devel_api_dir}/adaptor-framework/input-method-context.cpp
+ ${adaptor_devel_api_dir}/adaptor-framework/input-method-options.cpp
+ ${adaptor_devel_api_dir}/adaptor-framework/native-image-source-devel.cpp
+ ${adaptor_devel_api_dir}/adaptor-framework/native-image-source-queue.cpp
+ ${adaptor_devel_api_dir}/adaptor-framework/orientation.cpp
+ ${adaptor_devel_api_dir}/adaptor-framework/performance-logger.cpp
+ ${adaptor_devel_api_dir}/adaptor-framework/physical-keyboard.cpp
+ ${adaptor_devel_api_dir}/adaptor-framework/key-devel.cpp
+ ${adaptor_devel_api_dir}/adaptor-framework/pixel-buffer.cpp
+ ${adaptor_devel_api_dir}/adaptor-framework/sound-player.cpp
+ ${adaptor_devel_api_dir}/adaptor-framework/style-monitor.cpp
+ ${adaptor_devel_api_dir}/adaptor-framework/tilt-sensor.cpp
+ ${adaptor_devel_api_dir}/adaptor-framework/lifecycle-controller.cpp
+ ${adaptor_devel_api_dir}/adaptor-framework/vector-animation-renderer.cpp
+ ${adaptor_devel_api_dir}/adaptor-framework/video-player.cpp
+ ${adaptor_devel_api_dir}/adaptor-framework/virtual-keyboard.cpp
+ ${adaptor_devel_api_dir}/adaptor-framework/thread-settings.cpp
+ ${adaptor_devel_api_dir}/adaptor-framework/web-engine.cpp
${adaptor_devel_api_dir}/adaptor-framework/window-devel.cpp
)
SET( devel_api_adaptor_framework_header_files
- ${adaptor_devel_api_dir}/adaptor-framework/accessibility-adaptor.h
- ${adaptor_devel_api_dir}/adaptor-framework/accessibility-action-handler.h
- ${adaptor_devel_api_dir}/adaptor-framework/accessibility-gesture-handler.h
- ${adaptor_devel_api_dir}/adaptor-framework/accessibility-gesture-event.h
- ${adaptor_devel_api_dir}/adaptor-framework/application-devel.h
- ${adaptor_devel_api_dir}/adaptor-framework/atspi-accessibility.h
- ${adaptor_devel_api_dir}/adaptor-framework/bitmap-saver.h
- ${adaptor_devel_api_dir}/adaptor-framework/clipboard-event-notifier.h
- ${adaptor_devel_api_dir}/adaptor-framework/clipboard.h
- ${adaptor_devel_api_dir}/adaptor-framework/color-controller-plugin.h
- ${adaptor_devel_api_dir}/adaptor-framework/color-controller.h
- ${adaptor_devel_api_dir}/adaptor-framework/environment-variable.h
- ${adaptor_devel_api_dir}/adaptor-framework/event-feeder.h
- ${adaptor_devel_api_dir}/adaptor-framework/event-thread-callback.h
- ${adaptor_devel_api_dir}/adaptor-framework/feedback-plugin.h
- ${adaptor_devel_api_dir}/adaptor-framework/feedback-player.h
- ${adaptor_devel_api_dir}/adaptor-framework/file-loader.h
- ${adaptor_devel_api_dir}/adaptor-framework/file-stream.h
- ${adaptor_devel_api_dir}/adaptor-framework/image-loader-input.h
- ${adaptor_devel_api_dir}/adaptor-framework/image-loader-plugin.h
- ${adaptor_devel_api_dir}/adaptor-framework/image-loading.h
- ${adaptor_devel_api_dir}/adaptor-framework/gif-loading.h
- ${adaptor_devel_api_dir}/adaptor-framework/input-method-context.h
- ${adaptor_devel_api_dir}/adaptor-framework/input-method-options.h
- ${adaptor_devel_api_dir}/adaptor-framework/keyboard.h
- ${adaptor_devel_api_dir}/adaptor-framework/lifecycle-controller.h
- ${adaptor_devel_api_dir}/adaptor-framework/native-image-source-queue.h
- ${adaptor_devel_api_dir}/adaptor-framework/orientation.h
- ${adaptor_devel_api_dir}/adaptor-framework/performance-logger.h
- ${adaptor_devel_api_dir}/adaptor-framework/pixel-buffer.h
- ${adaptor_devel_api_dir}/adaptor-framework/sound-player.h
- ${adaptor_devel_api_dir}/adaptor-framework/style-monitor.h
- ${adaptor_devel_api_dir}/adaptor-framework/tilt-sensor.h
- ${adaptor_devel_api_dir}/adaptor-framework/vector-animation-renderer.h
- ${adaptor_devel_api_dir}/adaptor-framework/vector-animation-renderer-plugin.h
- ${adaptor_devel_api_dir}/adaptor-framework/video-player.h
- ${adaptor_devel_api_dir}/adaptor-framework/video-player-plugin.h
- ${adaptor_devel_api_dir}/adaptor-framework/web-engine.h
- ${adaptor_devel_api_dir}/adaptor-framework/web-engine-plugin.h
- ${adaptor_devel_api_dir}/adaptor-framework/key-extension-plugin.h
- ${adaptor_devel_api_dir}/adaptor-framework/virtual-keyboard.h
- ${adaptor_devel_api_dir}/adaptor-framework/physical-keyboard.h
- ${adaptor_devel_api_dir}/adaptor-framework/key-devel.h
- ${adaptor_devel_api_dir}/adaptor-framework/thread-settings.h
+ ${adaptor_devel_api_dir}/adaptor-framework/accessibility-adaptor.h
+ ${adaptor_devel_api_dir}/adaptor-framework/accessibility-action-handler.h
+ ${adaptor_devel_api_dir}/adaptor-framework/accessibility-gesture-handler.h
+ ${adaptor_devel_api_dir}/adaptor-framework/accessibility-gesture-event.h
+ ${adaptor_devel_api_dir}/adaptor-framework/application-devel.h
+ ${adaptor_devel_api_dir}/adaptor-framework/atspi-accessibility.h
+ ${adaptor_devel_api_dir}/adaptor-framework/bitmap-saver.h
+ ${adaptor_devel_api_dir}/adaptor-framework/clipboard-event-notifier.h
+ ${adaptor_devel_api_dir}/adaptor-framework/clipboard.h
+ ${adaptor_devel_api_dir}/adaptor-framework/color-controller-plugin.h
+ ${adaptor_devel_api_dir}/adaptor-framework/color-controller.h
+ ${adaptor_devel_api_dir}/adaptor-framework/environment-variable.h
+ ${adaptor_devel_api_dir}/adaptor-framework/event-feeder.h
+ ${adaptor_devel_api_dir}/adaptor-framework/event-thread-callback.h
+ ${adaptor_devel_api_dir}/adaptor-framework/feedback-plugin.h
+ ${adaptor_devel_api_dir}/adaptor-framework/feedback-player.h
+ ${adaptor_devel_api_dir}/adaptor-framework/file-loader.h
+ ${adaptor_devel_api_dir}/adaptor-framework/file-stream.h
+ ${adaptor_devel_api_dir}/adaptor-framework/image-loader-input.h
+ ${adaptor_devel_api_dir}/adaptor-framework/image-loader-plugin.h
+ ${adaptor_devel_api_dir}/adaptor-framework/image-loading.h
+ ${adaptor_devel_api_dir}/adaptor-framework/gif-loading.h
+ ${adaptor_devel_api_dir}/adaptor-framework/input-method-context.h
+ ${adaptor_devel_api_dir}/adaptor-framework/input-method-options.h
+ ${adaptor_devel_api_dir}/adaptor-framework/keyboard.h
+ ${adaptor_devel_api_dir}/adaptor-framework/lifecycle-controller.h
+ ${adaptor_devel_api_dir}/adaptor-framework/native-image-source-devel.h
+ ${adaptor_devel_api_dir}/adaptor-framework/native-image-source-queue.h
+ ${adaptor_devel_api_dir}/adaptor-framework/orientation.h
+ ${adaptor_devel_api_dir}/adaptor-framework/performance-logger.h
+ ${adaptor_devel_api_dir}/adaptor-framework/pixel-buffer.h
+ ${adaptor_devel_api_dir}/adaptor-framework/sound-player.h
+ ${adaptor_devel_api_dir}/adaptor-framework/style-monitor.h
+ ${adaptor_devel_api_dir}/adaptor-framework/tilt-sensor.h
+ ${adaptor_devel_api_dir}/adaptor-framework/vector-animation-renderer.h
+ ${adaptor_devel_api_dir}/adaptor-framework/vector-animation-renderer-plugin.h
+ ${adaptor_devel_api_dir}/adaptor-framework/video-player.h
+ ${adaptor_devel_api_dir}/adaptor-framework/video-player-plugin.h
+ ${adaptor_devel_api_dir}/adaptor-framework/web-engine.h
+ ${adaptor_devel_api_dir}/adaptor-framework/web-engine-plugin.h
+ ${adaptor_devel_api_dir}/adaptor-framework/key-extension-plugin.h
+ ${adaptor_devel_api_dir}/adaptor-framework/virtual-keyboard.h
+ ${adaptor_devel_api_dir}/adaptor-framework/physical-keyboard.h
+ ${adaptor_devel_api_dir}/adaptor-framework/key-devel.h
+ ${adaptor_devel_api_dir}/adaptor-framework/thread-settings.h
${adaptor_devel_api_dir}/adaptor-framework/window-devel.h
)
SET( devel_api_text_abstraction_src_files
- ${adaptor_devel_api_dir}/text-abstraction/bidirectional-support.cpp
- ${adaptor_devel_api_dir}/text-abstraction/bitmap-font.cpp
- ${adaptor_devel_api_dir}/text-abstraction/font-client.cpp
- ${adaptor_devel_api_dir}/text-abstraction/font-list.cpp
- ${adaptor_devel_api_dir}/text-abstraction/font-metrics.cpp
- ${adaptor_devel_api_dir}/text-abstraction/glyph-info.cpp
- ${adaptor_devel_api_dir}/text-abstraction/script.cpp
- ${adaptor_devel_api_dir}/text-abstraction/segmentation.cpp
- ${adaptor_devel_api_dir}/text-abstraction/shaping.cpp
- ${adaptor_devel_api_dir}/text-abstraction/text-renderer.cpp
+ ${adaptor_devel_api_dir}/text-abstraction/bidirectional-support.cpp
+ ${adaptor_devel_api_dir}/text-abstraction/bitmap-font.cpp
+ ${adaptor_devel_api_dir}/text-abstraction/font-client.cpp
+ ${adaptor_devel_api_dir}/text-abstraction/font-list.cpp
+ ${adaptor_devel_api_dir}/text-abstraction/font-metrics.cpp
+ ${adaptor_devel_api_dir}/text-abstraction/glyph-info.cpp
+ ${adaptor_devel_api_dir}/text-abstraction/script.cpp
+ ${adaptor_devel_api_dir}/text-abstraction/segmentation.cpp
+ ${adaptor_devel_api_dir}/text-abstraction/shaping.cpp
+ ${adaptor_devel_api_dir}/text-abstraction/text-renderer.cpp
${adaptor_devel_api_dir}/text-abstraction/text-renderer-layout-helper.cpp
)
SET( text_abstraction_header_files
- ${adaptor_devel_api_dir}/text-abstraction/bidirectional-support.h
- ${adaptor_devel_api_dir}/text-abstraction/bitmap-font.h
- ${adaptor_devel_api_dir}/text-abstraction/font-client.h
- ${adaptor_devel_api_dir}/text-abstraction/font-list.h
- ${adaptor_devel_api_dir}/text-abstraction/font-metrics.h
- ${adaptor_devel_api_dir}/text-abstraction/glyph-info.h
- ${adaptor_devel_api_dir}/text-abstraction/script.h
- ${adaptor_devel_api_dir}/text-abstraction/segmentation.h
- ${adaptor_devel_api_dir}/text-abstraction/shaping.h
- ${adaptor_devel_api_dir}/text-abstraction/text-abstraction.h
- ${adaptor_devel_api_dir}/text-abstraction/text-abstraction-definitions.h
- ${adaptor_devel_api_dir}/text-abstraction/text-renderer.h
+ ${adaptor_devel_api_dir}/text-abstraction/bidirectional-support.h
+ ${adaptor_devel_api_dir}/text-abstraction/bitmap-font.h
+ ${adaptor_devel_api_dir}/text-abstraction/font-client.h
+ ${adaptor_devel_api_dir}/text-abstraction/font-list.h
+ ${adaptor_devel_api_dir}/text-abstraction/font-metrics.h
+ ${adaptor_devel_api_dir}/text-abstraction/glyph-info.h
+ ${adaptor_devel_api_dir}/text-abstraction/script.h
+ ${adaptor_devel_api_dir}/text-abstraction/segmentation.h
+ ${adaptor_devel_api_dir}/text-abstraction/shaping.h
+ ${adaptor_devel_api_dir}/text-abstraction/text-abstraction.h
+ ${adaptor_devel_api_dir}/text-abstraction/text-abstraction-definitions.h
+ ${adaptor_devel_api_dir}/text-abstraction/text-renderer.h
${adaptor_devel_api_dir}/text-abstraction/text-renderer-layout-helper.h
)
mEglGraphics( NULL ),
mEglImageExtensions( NULL ),
mSetSource( false ),
- mMutex()
+ mMutex(),
+ mIsBufferAcquired( false )
{
DALI_ASSERT_ALWAYS( Adaptor::IsAvailable() );
{
case Dali::NativeImageSource::COLOR_DEPTH_DEFAULT:
{
- format = TBM_FORMAT_RGBA8888;
+ format = TBM_FORMAT_ARGB8888;
depth = 32;
break;
}
}
case Dali::NativeImageSource::COLOR_DEPTH_32:
{
- format = TBM_FORMAT_RGBA8888;
+ format = TBM_FORMAT_ARGB8888;
depth = 32;
break;
}
}
}
-NativeImageSourceTizen::~NativeImageSourceTizen()
+void NativeImageSourceTizen::DestroySurface()
{
- if( mOwnTbmSurface )
+ if( mTbmSurface )
{
- if( mTbmSurface != NULL && tbm_surface_destroy( mTbmSurface ) != TBM_SURFACE_ERROR_NONE )
+ if( mIsBufferAcquired )
{
- DALI_LOG_ERROR( "Failed to destroy tbm_surface\n" );
+ ReleaseBuffer();
}
- }
- else
- {
- if( mTbmSurface != NULL )
+ if( mOwnTbmSurface )
+ {
+ if( tbm_surface_destroy( mTbmSurface ) != TBM_SURFACE_ERROR_NONE )
+ {
+ DALI_LOG_ERROR( "Failed to destroy tbm_surface\n" );
+ }
+ }
+ else
{
tbm_surface_internal_unref( mTbmSurface );
}
}
}
+NativeImageSourceTizen::~NativeImageSourceTizen()
+{
+ DestroySurface();
+}
+
Any NativeImageSourceTizen::GetNativeImageSource() const
{
return Any( mTbmSurface );
}
break;
}
+ case TBM_FORMAT_ARGB8888:
+ {
+ lineSize = width*4;
+ pixelFormat = Pixel::RGBA8888;
+ pixbuf.resize( lineSize*height );
+ unsigned char* bufptr = &pixbuf[0];
+
+ for( unsigned int r = 0; r < height; ++r, bufptr += lineSize )
+ {
+ for( unsigned int c = 0; c < width; ++c )
+ {
+ cOffset = c*4;
+ offset = cOffset + r*stride;
+ *(bufptr+cOffset) = ptr[offset];
+ *(bufptr+cOffset+1) = ptr[offset+3];
+ *(bufptr+cOffset+2) = ptr[offset+2];
+ *(bufptr+cOffset+3) = ptr[offset+1];
+ }
+ }
+ break;
+ }
default:
{
DALI_ASSERT_ALWAYS( 0 && "Tbm surface has unsupported pixel format.\n" );
void NativeImageSourceTizen::SetSource( Any source )
{
Dali::Mutex::ScopedLock lock( mMutex );
- if( mOwnTbmSurface )
- {
- if( mTbmSurface != NULL && tbm_surface_destroy( mTbmSurface ) != TBM_SURFACE_ERROR_NONE )
- {
- DALI_LOG_ERROR( "Failed to destroy tbm_surface\n" );
- }
- mTbmSurface = NULL;
- mOwnTbmSurface = false;
- }
- else
- {
- if( mTbmSurface != NULL )
- {
- tbm_surface_internal_unref( mTbmSurface );
- mTbmSurface = NULL;
- }
- }
+ DestroySurface();
+ mOwnTbmSurface = false;
mTbmSurface = GetSurfaceFromAny( source );
if( mTbmSurface != NULL )
{
case Dali::NativeImageSource::COLOR_DEPTH_DEFAULT:
{
- format = TBM_FORMAT_RGBA8888;
+ format = TBM_FORMAT_ARGB8888;
break;
}
case Dali::NativeImageSource::COLOR_DEPTH_8:
}
case Dali::NativeImageSource::COLOR_DEPTH_32:
{
- format = TBM_FORMAT_RGBA8888;
+ format = TBM_FORMAT_ARGB8888;
break;
}
}
return mBlendingRequired;
}
+uint8_t* NativeImageSourceTizen::AcquireBuffer( uint16_t& width, uint16_t& height, uint16_t& stride )
+{
+ Dali::Mutex::ScopedLock lock( mMutex );
+ if( mTbmSurface != NULL )
+ {
+ tbm_surface_info_s info;
+
+ if( tbm_surface_map( mTbmSurface, TBM_SURF_OPTION_READ, &info) != TBM_SURFACE_ERROR_NONE )
+ {
+ DALI_LOG_ERROR( "Fail to map tbm_surface\n" );
+
+ width = 0;
+ height = 0;
+
+ return NULL;
+ }
+ tbm_surface_internal_ref( mTbmSurface );
+ mIsBufferAcquired = true;
+
+ stride = info.planes[0].stride;
+ width = mWidth;
+ height = mHeight;
+
+ return info.planes[0].ptr;
+ }
+ return NULL;
+}
+
+
+bool NativeImageSourceTizen::ReleaseBuffer()
+{
+ Dali::Mutex::ScopedLock lock( mMutex );
+ bool ret = false;
+ if( mTbmSurface != NULL )
+ {
+ ret = ( tbm_surface_unmap( mTbmSurface ) != TBM_SURFACE_ERROR_NONE );
+ if( !ret )
+ {
+ DALI_LOG_ERROR( "Fail to unmap tbm_surface\n" );
+ }
+ tbm_surface_internal_unref( mTbmSurface );
+ mIsBufferAcquired = false;
+ }
+ return ret;
+}
+
+
} // namespace Adaptor
} // namespace internal