X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Finternal%2Ftext%2Frendering%2Fatlas%2Fatlas-manager-impl.h;h=7fb81fd539f2d2d4037e95f787c39a5be0258f60;hp=b4828a0c6b0358117ee8060c36dbb98c14515b27;hb=9ddd5fea6278d06b8874988498c7c4c6508750ba;hpb=225ea9dd33c2d8669d8dac1f2b116eeb2ea00c0d diff --git a/dali-toolkit/internal/text/rendering/atlas/atlas-manager-impl.h b/dali-toolkit/internal/text/rendering/atlas/atlas-manager-impl.h index b4828a0..7fb81fd 100644 --- a/dali-toolkit/internal/text/rendering/atlas/atlas-manager-impl.h +++ b/dali-toolkit/internal/text/rendering/atlas/atlas-manager-impl.h @@ -1,8 +1,8 @@ -#ifndef __DALI_TOOLKIT_ATLAS_MANAGER_IMPL_H__ -#define __DALI_TOOLKIT_ATLAS_MANAGER_IMPL_H__ +#ifndef DALI_TOOLKIT_ATLAS_MANAGER_IMPL_H +#define DALI_TOOLKIT_ATLAS_MANAGER_IMPL_H /* - * Copyright (c) 2015 Samsung Electronics Co., Ltd. + * Copyright (c) 2021 Samsung Electronics Co., Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -17,7 +17,6 @@ * limitations under the License. */ - // EXTERNAL INCLUDES #include #include @@ -27,21 +26,17 @@ namespace Dali { - namespace Toolkit { - class AtlasManager; } // namespace Toolkit namespace Toolkit { - namespace Internal { - -typedef Dali::Vector< Toolkit::AtlasManager::AtlasSlot > slotContainer; +typedef Dali::Vector slotContainer; class AtlasManager; typedef IntrusivePtr AtlasManagerPtr; @@ -49,7 +44,6 @@ typedef IntrusivePtr AtlasManagerPtr; class AtlasManager : public Dali::BaseObject { public: - typedef uint32_t SizeType; typedef SizeType AtlasId; typedef SizeType ImageId; @@ -59,24 +53,24 @@ public: */ struct AtlasDescriptor { - Dali::Atlas mAtlas; // atlas image - Toolkit::AtlasManager::AtlasSize mSize; // size of atlas - Pixel::Format mPixelFormat; // pixel format used by atlas - BufferImage mHorizontalStrip; // Image used to pad upload - BufferImage mVerticalStrip; // Image used to pad upload - Material mMaterial; // material used for atlas texture - SizeType mTotalBlocks; // total number of blocks in atlas - SizeType mAvailableBlocks; // number of blocks available in atlas - Dali::Vector< SizeType > mFreeBlocksList; // unless there are any previously freed blocks + Dali::Texture mAtlas; // atlas image + Toolkit::AtlasManager::AtlasSize mSize; // size of atlas + Pixel::Format mPixelFormat; // pixel format used by atlas + PixelData mHorizontalStrip; // Image used to pad upload + PixelData mVerticalStrip; // Image used to pad upload + TextureSet mTextureSet; // Texture set used for atlas texture + SizeType mTotalBlocks; // total number of blocks in atlas + SizeType mAvailableBlocks; // number of blocks available in atlas + Dali::Vector mFreeBlocksList; // unless there are any previously freed blocks }; struct AtlasSlotDescriptor { - SizeType mCount; // Reference count for this slot - SizeType mImageWidth; // Width of image stored - SizeType mImageHeight; // Height of image stored - AtlasId mAtlasId; // Image is stored in this Atlas - SizeType mBlock; // Block within atlas used for image + SizeType mCount; // Reference count for this slot + SizeType mImageWidth; // Width of image stored + SizeType mImageHeight; // Height of image stored + AtlasId mAtlasId; // Image is stored in this Atlas + SizeType mBlock; // Block within atlas used for image }; AtlasManager(); @@ -91,62 +85,62 @@ public: /** * @copydoc: Toolkit::AtlasManager::CreateAtlas */ - AtlasId CreateAtlas( const Toolkit::AtlasManager::AtlasSize& size, Pixel::Format pixelformat ); + AtlasId CreateAtlas(const Toolkit::AtlasManager::AtlasSize& size, Pixel::Format pixelformat); /** * @copydoc Toolkit::AtlasManager::SetAddPolicy */ - void SetAddPolicy( Toolkit::AtlasManager::AddFailPolicy policy ); + void SetAddPolicy(Toolkit::AtlasManager::AddFailPolicy policy); /** * @copydoc Toolkit::AtlasManager::Add */ - bool Add( const BufferImage& image, - Toolkit::AtlasManager::AtlasSlot& slot, - Toolkit::AtlasManager::AtlasId atlas ); + bool Add(const PixelData& image, + Toolkit::AtlasManager::AtlasSlot& slot, + Toolkit::AtlasManager::AtlasId atlas); /** * @copydoc Toolkit::AtlasManager::GenerateMeshData */ - void GenerateMeshData( ImageId id, - const Vector2& position, - Toolkit::AtlasManager::Mesh2D& mesh, - bool addReference ); + void GenerateMeshData(ImageId id, + const Vector2& position, + Toolkit::AtlasManager::Mesh2D& mesh, + bool addReference); /** * @copydoc Toolkit::AtlasManager::Remove */ - bool Remove( ImageId id ); + bool Remove(ImageId id); /** * @copydoc Toolkit::AtlasManager::GetAtlasContainer */ - Dali::Atlas GetAtlasContainer( AtlasId atlas ) const; + Dali::Texture GetAtlasContainer(AtlasId atlas) const; /** * @copydoc Toolkit::AtlasManager::GetAtlas */ - AtlasId GetAtlas( ImageId id ) const; + AtlasId GetAtlas(ImageId id) const; /** * @copydoc Toolkit::AtlasManager::SetNewAtlasSize */ - void SetNewAtlasSize( const Toolkit::AtlasManager::AtlasSize& size ); + void SetNewAtlasSize(const Toolkit::AtlasManager::AtlasSize& size); /** * @copydoc Toolkit::AtlasManager::GetAtlasSize */ - const Toolkit::AtlasManager::AtlasSize& GetAtlasSize( AtlasId atlas ); + const Toolkit::AtlasManager::AtlasSize& GetAtlasSize(AtlasId atlas); /** * @copydoc Toolkit::AtlasManager::GetBlockSize */ - Vector2 GetBlockSize( AtlasId atlas ); + Vector2 GetBlockSize(AtlasId atlas); /** * @copydoc Toolkit::AtlasManager::GetFreeBlocks */ - SizeType GetFreeBlocks( AtlasId atlas ) const; + SizeType GetFreeBlocks(AtlasId atlas) const; /* * @copydoc Toolkit::AtlasManager::GetAtlasCount @@ -156,45 +150,43 @@ public: /** * @copydoc Toolkit::AtlasManager::GetPixelFormat */ - Pixel::Format GetPixelFormat( AtlasId atlas ); + Pixel::Format GetPixelFormat(AtlasId atlas) const; /** * @copydoc Toolkit::AtlasManager::GetMetrics */ - void GetMetrics( Toolkit::AtlasManager::Metrics& metrics ); + void GetMetrics(Toolkit::AtlasManager::Metrics& metrics); /** - * @copydoc Toolkit::AtlasManager::GetMaterial + * @copydoc Toolkit::AtlasManager::GetTextures */ - Material GetMaterial( AtlasId atlas ) const; + TextureSet GetTextures(AtlasId atlas) const; /** - * @copydoc Toolkit::AtlasManager::SetMaterial + * @copydoc Toolkit::AtlasManager::SetTextures */ - void SetMaterial( AtlasId atlas, Material& material ); + void SetTextures(AtlasId atlas, TextureSet& textureSet); private: - - std::vector< AtlasDescriptor > mAtlasList; // List of atlases created - Vector< AtlasSlotDescriptor > mImageList; // List of bitmaps stored in atlases - Toolkit::AtlasManager::AtlasSize mNewAtlasSize; // Atlas size to use in next creation - Toolkit::AtlasManager::AddFailPolicy mAddFailPolicy; // Policy for faling to add an Image - - SizeType CheckAtlas( SizeType atlas, - SizeType width, - SizeType height, - Pixel::Format pixelFormat ); - - void UploadImage( const BufferImage& image, - const AtlasSlotDescriptor& desc ); - + std::vector mAtlasList; // List of atlases created + Vector mImageList; // List of bitmaps stored in atlases + Toolkit::AtlasManager::AtlasSize mNewAtlasSize; // Atlas size to use in next creation + Toolkit::AtlasManager::AddFailPolicy mAddFailPolicy; // Policy for failing to add an Image + + SizeType CheckAtlas(SizeType atlas, + SizeType width, + SizeType height, + Pixel::Format pixelFormat); + + void UploadImage(const PixelData& image, + const AtlasSlotDescriptor& desc); }; } // namespace Internal inline const Internal::AtlasManager& GetImplementation(const Toolkit::AtlasManager& manager) { - DALI_ASSERT_ALWAYS( manager && "AtlasManager handle is empty" ); + DALI_ASSERT_ALWAYS(manager && "AtlasManager handle is empty"); const BaseObject& handle = manager.GetBaseObject(); @@ -203,7 +195,7 @@ inline const Internal::AtlasManager& GetImplementation(const Toolkit::AtlasManag inline Internal::AtlasManager& GetImplementation(Toolkit::AtlasManager& manager) { - DALI_ASSERT_ALWAYS( manager && "AtlasManager handle is empty" ); + DALI_ASSERT_ALWAYS(manager && "AtlasManager handle is empty"); BaseObject& handle = manager.GetBaseObject(); @@ -214,5 +206,4 @@ inline Internal::AtlasManager& GetImplementation(Toolkit::AtlasManager& manager) } // namespace Dali - - #endif // __DALI_TOOLKIT_ATLAS_MANAGER_IMPL_H__ +#endif // DALI_TOOLKIT_ATLAS_MANAGER_IMPL_H