X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali%2Finternal%2Fevent%2Fimages%2Fnative-image-impl.cpp;h=d7e3f9ed4840c55c7eb198c155aee2a70586efc9;hb=ab3d5e8328c351c6ec35659297b3d8f16494fc41;hp=4043f91cd8fa61b87092de93a096bc24bf89c79e;hpb=432923e17cb38a99fc012473ef97fa8c4fc36162;p=platform%2Fcore%2Fuifw%2Fdali-core.git diff --git a/dali/internal/event/images/native-image-impl.cpp b/dali/internal/event/images/native-image-impl.cpp index 4043f91..d7e3f9e 100644 --- a/dali/internal/event/images/native-image-impl.cpp +++ b/dali/internal/event/images/native-image-impl.cpp @@ -22,10 +22,8 @@ #include #include #include -#include -#include -#include #include +#include using namespace Dali::Integration; @@ -40,26 +38,26 @@ namespace 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( ticket.Get() ) && "Resource ticket not ImageTicket subclass for image resource.\n" ); - image->mTicket = static_cast(ticket.Get()); - image->mTicket->AddObserver( *image ); - + image->mTexture = Texture::New( resourceData ); return image; } @@ -67,10 +65,24 @@ NativeImage::~NativeImage() { } -void NativeImage::CreateGlTexture() +const char* NativeImage::GetCustomFragmentPreFix() { - ResourceClient& resourceClient = ThreadLocalStorage::Get().GetResourceClient(); - resourceClient.CreateGlTexture( GetResourceId() ); + if( mCustomFragmentPreFix.empty() ) + { + return NULL; + } + + return mCustomFragmentPreFix.c_str(); +} + +const char* NativeImage::GetCustomSamplerTypename() +{ + if( mCustomSamplerTypename.empty() ) + { + return NULL; + } + + return mCustomSamplerTypename.c_str(); } } // namespace Internal