#include <gl/egl-factory.h>
#include <adaptor-impl.h>
#include <render-surface.h>
+#include <trigger-event-factory.h>
+
// Allow this to be encoded and saved:
-#include <platform-abstractions/tizen/resource-loader/resource-loader.h>
#include <bitmap-saver.h>
namespace Dali
mColorDepth( depth ),
mEglImageKHR( NULL ),
mEglImageExtensions( NULL ),
- mSetSource( false )
+ mSetSource( false ),
+ mNotification( NULL )
{
DALI_ASSERT_ALWAYS( Adaptor::IsAvailable() );
EglFactory& eglFactory = Adaptor::GetImplementation( Adaptor::Get() ).GetEGLFactory();
if( mTbmSurface != NULL )
{
tbm_surface_internal_unref( mTbmSurface );
+
+ if (mNotification != NULL) {
+ TriggerEventInterface* triggerEvent = static_cast<TriggerEventInterface* >(mNotification);
+ triggerEvent->Trigger();
+ }
}
}
}
return Any( mTbmSurface );
}
+
+void NativeImageSource::SetDestructorNotification(void* notification)
+{
+ mNotification = notification;
+}
+
bool NativeImageSource::GetPixels(std::vector<unsigned char>& pixbuf, unsigned& width, unsigned& height, Pixel::Format& pixelFormat) const
{
if( mTbmSurface != NULL )
{
cOffset = c*3;
offset = cOffset + r*stride;
- *(bufptr) = ptr[offset+2];
+ *(bufptr+cOffset) = ptr[offset+2];
*(bufptr+cOffset+1) = ptr[offset+1];
*(bufptr+cOffset+2) = ptr[offset];
}
{
cOffset = c*4;
offset = cOffset + r*stride;
- *(bufptr) = ptr[offset+3];
+ *(bufptr+cOffset) = ptr[offset+3];
*(bufptr+cOffset+1) = ptr[offset+2];
*(bufptr+cOffset+2) = ptr[offset+1];
*(bufptr+cOffset+3) = ptr[offset];
}
default:
{
- DALI_LOG_WARNING( "Tbm surface has unsupported pixel format.\n" );
-
- pixbuf.resize( 0 );
- width = 0;
- height = 0;
+ DALI_ASSERT_ALWAYS( 0 && "Tbm surface has unsupported pixel format.\n" );
return false;
}