#include <dali/public-api/common/dali-common.h>
#include <dali/public-api/object/type-registry.h>
#include <dali/integration-api/debug.h>
-#include <dali/internal/event/resources/resource-ticket.h>
-#include <dali/internal/event/common/thread-local-storage.h>
-#include <dali/internal/event/resources/resource-client.h>
#include <dali/internal/event/common/stage-impl.h>
+#include <dali/devel-api/images/native-image-interface-extension.h>
using namespace Dali::Integration;
TypeRegistration mType( typeid(Dali::NativeImage), typeid(Dali::Image), NULL );
}
-NativeImage::NativeImage()
+NativeImage::NativeImage( NativeImageInterface& resourceData )
: Image()
{
+ NativeImageInterface::Extension* extension = resourceData.GetExtension();
+ if( extension != NULL )
+ {
+ mCustomFragmentPreFix = extension->GetCustomFragmentPreFix();
+ mCustomSamplerTypename = extension->GetCustomSamplerTypename();
+ }
}
NativeImagePtr NativeImage::New( NativeImageInterface& resourceData )
{
- NativeImagePtr image = new NativeImage;
+ NativeImagePtr image = new NativeImage( resourceData );
image->Initialize();
- ResourceClient &resourceClient = ThreadLocalStorage::Get().GetResourceClient();
-
image->mWidth = resourceData.GetWidth();
image->mHeight = resourceData.GetHeight();
- const ResourceTicketPtr& ticket = resourceClient.AddNativeImage( resourceData );
- DALI_ASSERT_DEBUG( dynamic_cast<ImageTicket*>( ticket.Get() ) && "Resource ticket not ImageTicket subclass for image resource.\n" );
- image->mTicket = static_cast<ImageTicket*>(ticket.Get());
- image->mTicket->AddObserver( *image );
-
+ image->mTexture = Texture::New( resourceData );
return image;
}
{
}
+const char* NativeImage::GetCustomFragmentPreFix()
+{
+ if( mCustomFragmentPreFix.empty() )
+ {
+ return NULL;
+ }
+
+ return mCustomFragmentPreFix.c_str();
+}
+
+const char* NativeImage::GetCustomSamplerTypename()
+{
+ if( mCustomSamplerTypename.empty() )
+ {
+ return NULL;
+ }
+
+ return mCustomSamplerTypename.c_str();
+}
+
} // namespace Internal
} // namespace Dali