-Image* Image::New( const std::string& filename, LoadPolicy loadPol, ReleasePolicy releasePol )
-{
- Image* image = new Image( loadPol, releasePol );
-
- image->mRequest = image->mImageFactory.RegisterRequest( filename, NULL );
-
- if( ! filename.empty() )
- {
- Vector2 size;
- Internal::ThreadLocalStorage::Get().GetPlatformAbstraction().LoadImageMetadata( filename, size );
- image->mWidth = (int)size.width;
- image->mHeight = (int)size.height;
- }
-
- if( Dali::Image::OnDemand == loadPol )
- {
- // load image on demand,
- // ask for ticket on connect
- }
- else
- {
- // load image immediately
- image->mTicket = image->mImageFactory.Load( image->mRequest.Get() );
- image->mTicket->AddObserver( *image );
- }
-
- DALI_LOG_SET_OBJECT_STRING( image, filename );
-
- return image;
-}
-