X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fvisuals%2Ftexture-manager-impl.h;h=a3da3fcd582ad522fb79fcd3dfbb6a339f486a3a;hp=c3cd015d739ee8bef02eafd8754ae1aac3daf3ab;hb=f27c332dcf251d50ddfe3b2ab15ec2eaff5296b1;hpb=c13965db82ba91ac307c063c931c6a3cd8bc739e diff --git a/dali-toolkit/internal/visuals/texture-manager-impl.h b/dali-toolkit/internal/visuals/texture-manager-impl.h old mode 100755 new mode 100644 index c3cd015..a3da3fc --- a/dali-toolkit/internal/visuals/texture-manager-impl.h +++ b/dali-toolkit/internal/visuals/texture-manager-impl.h @@ -27,6 +27,7 @@ #include #include #include +#include // INTERNAL INCLUDES #include @@ -75,7 +76,7 @@ public: /** * Whether the pixel data should be kept in TextureManager, returned with pixelBuffer or uploaded for rendering */ - enum StorageType + enum class StorageType: uint8_t { KEEP_PIXEL_BUFFER, RETURN_PIXEL_BUFFER, @@ -85,7 +86,7 @@ public: /** * Whether the texture should be loaded synchronously or asynchronously. */ - enum LoadType + enum class LoadType: uint8_t { LOAD_ASYNCHRONOUSLY, LOAD_SYNCHRONOUSLY @@ -94,7 +95,7 @@ public: /** * @brief The LoadState Enumeration represents the current state of a particular Texture's life-cycle. */ - enum LoadState + enum class LoadState: uint8_t { NOT_STARTED, ///< Default LOADING, ///< Loading has been started, but not finished. @@ -159,7 +160,7 @@ public: /** * Destructor. */ - ~TextureManager(); + ~TextureManager() override; // TextureManager Main API: @@ -426,6 +427,21 @@ public: */ void SetBrokenImageUrl(const std::string& brokenImageUrl); + /** + * @brief Get an image to be used when a visual has failed to correctly render + * @return Returns The broken image url. + */ + const std::string GetBrokenImageUrl(); + + /** + * @brief Returns the geometry associated with texture. + * @param[in] textureId Id of the texture + * @param[out] frontElements number of front elements + * @param[out] backElements number of back elements + * @return Returns valid geometry object + */ + Geometry GetRenderGeometry(TextureId textureId, uint32_t& frontElements, uint32_t& backElements ); + private: /** @@ -520,10 +536,10 @@ private: hash( hash ), scaleFactor( scaleFactor ), referenceCount( 1u ), - loadState( NOT_STARTED ), + loadState( LoadState::NOT_STARTED ), fittingMode( fittingMode ), samplingMode( samplingMode ), - storageType( UPLOAD_TO_TEXTURE ), + storageType( StorageType::UPLOAD_TO_TEXTURE ), animatedImageLoading( animatedImageLoading ), frameIndex( frameIndex ), loadSynchronously( loadSynchronously ), @@ -553,10 +569,10 @@ private: TextureManager::TextureHash hash; ///< The hash used to cache this Texture float scaleFactor; ///< The scale factor to apply to the Texture when masking int16_t referenceCount; ///< The reference count of clients using this Texture - LoadState loadState:4; ///< The load state showing the load progress of the Texture + LoadState loadState; ///< The load state showing the load progress of the Texture FittingMode::Type fittingMode:3; ///< The requested FittingMode Dali::SamplingMode::Type samplingMode:3; ///< The requested SamplingMode - StorageType storageType:2; ///< CPU storage / GPU upload; + StorageType storageType; ///< CPU storage / GPU upload; Dali::AnimatedImageLoading animatedImageLoading; ///< AnimatedImageLoading that contains animated image information. uint32_t frameIndex; ///< frame index that be loaded, in case of animated image bool loadSynchronously:1; ///< True if synchronous loading was requested @@ -690,6 +706,14 @@ private: void UploadTexture( Devel::PixelBuffer& pixelBuffer, TextureInfo& textureInfo ); /** + * Creates tiled geometry of for the texture which separates fully-opaque + * tiles from ones which use transparency. + * @param pixelBuffer + * @param textureInfo + */ + bool CreateTiledGeometry( const Devel::PixelBuffer& pixelBuffer, TextureInfo& textureInfo ); + + /** * Mark the texture as complete, and inform observers * @param[in] textureInfo The struct associated with this Texture */ @@ -735,7 +759,7 @@ private: TextureHash GenerateHash( const std::string& url, const ImageDimensions size, const FittingMode::Type fittingMode, const Dali::SamplingMode::Type samplingMode, const UseAtlas useAtlas, - TextureId maskTextureId, StorageType storageType, bool isAnimatedImage, uint32_t frameIndex ); + TextureId maskTextureId, bool isAnimatedImage, uint32_t frameIndex ); /** * @brief Looks up a cached texture by its hash. @@ -748,7 +772,6 @@ private: * @param[in] useAtlas True if atlased * @param[in] maskTextureId Optional texture ID to use to mask this image * @param[in] preMultiplyOnLoad if the image's color should be multiplied by it's alpha. Set to OFF if there is no alpha. - * @param[in] storageType Whether the pixel data is stored in the cache, returned with PixelBuffer or uploaded to the GPU * @param[in] isAnimatedImage The boolean value to know whether the request is for animated image or not * @param[in] frameIndex The frame index of a frame to be loaded frame * @return A TextureId of a cached Texture if found. Or INVALID_TEXTURE_ID if not found. @@ -762,7 +785,6 @@ private: const bool useAtlas, TextureId maskTextureId, MultiplyOnLoad preMultiplyOnLoad, - StorageType storageType, bool isAnimatedImage, uint32_t frameIndex );