X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fvisuals%2Fnpatch-loader.h;h=a3aa464336db69be5ebf6797f6f52578602cf374;hp=0d39d0d7aea9edd4d169c428c7711aa87f5455a5;hb=f27c332dcf251d50ddfe3b2ab15ec2eaff5296b1;hpb=f00334715a31692c0bfd7eb0a7fc67c5ae09f327 diff --git a/dali-toolkit/internal/visuals/npatch-loader.h b/dali-toolkit/internal/visuals/npatch-loader.h index 0d39d0d..a3aa464 100644 --- a/dali-toolkit/internal/visuals/npatch-loader.h +++ b/dali-toolkit/internal/visuals/npatch-loader.h @@ -20,12 +20,12 @@ // EXTERNAL INCLUDES #include #include -#include #include #include -// INTERNAL HEADERS +// INTERNAL INCLUDES #include +#include namespace Dali { @@ -36,13 +36,6 @@ namespace Toolkit namespace Internal { -namespace NPatchBuffer -{ - -void GetRedOffsetAndMask( Dali::Pixel::Format pixelFormat, int& byteOffset, int& bitMask ); - -} // namespace NPatchBuffer - /** * The manager for loading Npatch textures. * It caches them internally for better performance; i.e. to avoid loading and @@ -56,8 +49,6 @@ class NPatchLoader { public: - typedef Dali::Vector< Uint16Pair > StretchRanges; - enum { UNINITIALIZED_ID = 0 ///< uninitialised id, use to initialize ids @@ -66,18 +57,31 @@ public: struct Data { Data() - : loadCompleted( false ) + : url(), + textureSet(), + hash( 0 ), + croppedWidth( 0 ), + croppedHeight( 0 ), + border( 0, 0, 0, 0 ), + loadCompleted( false ), + renderingMap{ nullptr } {} - std::string url; ///< Url of the N-Patch - TextureSet textureSet; ///< Texture containing the cropped image - StretchRanges stretchPixelsX; ///< X stretch pixels - StretchRanges stretchPixelsY; ///< Y stretch pixels - std::size_t hash; ///< Hash code for the Url - uint32_t croppedWidth; ///< Width of the cropped middle part of N-patch - uint32_t croppedHeight; ///< Height of the cropped middle part of N-patch - Rect< int > border; ///< The size of the border - bool loadCompleted; ///< True if the data loading is completed + ~Data(); + + using ObserverListType = Dali::Vector< TextureUploadObserver* >; + + ObserverListType observerList; ///< Container used to store all observer clients of this Texture + std::string url; ///< Url of the N-Patch + TextureSet textureSet; ///< Texture containing the cropped image + NPatchUtility::StretchRanges stretchPixelsX; ///< X stretch pixels + NPatchUtility::StretchRanges stretchPixelsY; ///< Y stretch pixels + std::size_t hash; ///< Hash code for the Url + uint32_t croppedWidth; ///< Width of the cropped middle part of N-patch + uint32_t croppedHeight; ///< Height of the cropped middle part of N-patch + Rect< int > border; ///< The size of the border + bool loadCompleted; ///< True if the data loading is completed + void* renderingMap; ///< NPatch rendering data }; public: @@ -109,10 +113,13 @@ public: /** * @brief Set loaded PixelBuffer and its information * + * @param [in] loadSuccess True if the texture load was successful (i.e. the resource is available). If false, then the resource failed to load. * @param [in] id cache data id * @param [in] pixelBuffer of loaded image + * @param [in] url The url address of the loaded image. + * @param [in] preMultiplied True if the image had pre-multiplied alpha applied */ - void SetNPatchData( std::size_t id, Devel::PixelBuffer& pixelBuffer ); + void SetNPatchData( bool loadSuccess, std::size_t id, Devel::PixelBuffer& pixelBuffer, const Internal::VisualUrl& url, bool preMultiplied ); /** * @brief Retrieve N patch data matching to an id