X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;ds=sidebyside;f=dali-toolkit%2Finternal%2Fatlas-manager%2Fatlas-manager-impl.h;h=5111a6ba6321787e68a655612144c5caf786d044;hb=d84ed16e09247b8cff122c22b3cb0e9856cea7aa;hp=02a2e7d8d994a5a8aa99cad4e058ef7b868dceaf;hpb=5f6befa398f1c68fcc8edff409a086f54af4d5f9;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/dali-toolkit/internal/atlas-manager/atlas-manager-impl.h b/dali-toolkit/internal/atlas-manager/atlas-manager-impl.h index 02a2e7d..5111a6b 100644 --- a/dali-toolkit/internal/atlas-manager/atlas-manager-impl.h +++ b/dali-toolkit/internal/atlas-manager/atlas-manager-impl.h @@ -46,7 +46,7 @@ typedef Dali::Vector< Toolkit::AtlasManager::AtlasSlot > slotContainer; class AtlasManager; typedef IntrusivePtr AtlasManagerPtr; -class AtlasManager : public Dali::BaseObject +class AtlasManager : public Dali::BaseObject, public ConnectionTracker { public: @@ -67,7 +67,9 @@ public: BufferImage mFilledPixelImage; // Image used by atlas for operations such as underline PixelBuffer* mStripBuffer; // Blank image buffer used to pad upload Material mMaterial; // material used for atlas texture - SizeType mNextFreeBlock; // next free block will be placed here ( actually +1 ) + Sampler mSampler; // sampler 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 }; @@ -111,7 +113,8 @@ public: */ void GenerateMeshData( ImageId id, const Vector2& position, - Toolkit::AtlasManager::Mesh2D& mesh ); + Toolkit::AtlasManager::Mesh2D& mesh, + bool addReference ); /** * @copydoc Toolkit::AtlasManager::StitchMesh @@ -183,17 +186,25 @@ public: */ Material GetMaterial( AtlasId atlas ) const; +/** + * @copydoc Toolkit::AtlasManager::GetSampler + */ + Sampler GetSampler( AtlasId atlas ) const; + private: - std::vector< AtlasDescriptor > mAtlasList; // List of atlases created - std::vector< AtlasSlotDescriptor > mImageList; // List of bitmaps store in atlases + std::vector< AtlasDescriptor > mAtlasList; // List of atlases created + std::vector< AtlasSlotDescriptor > mImageList; // List of bitmaps store in atlases + Vector< PixelBuffer* > mUploadedImages; // List of PixelBuffers passed to UploadedSignal + Toolkit::AtlasManager::AtlasSize mNewAtlasSize; // Atlas size to use in next creation + Toolkit::AtlasManager::AddFailPolicy mAddFailPolicy; // Policy for faling to add an Image + SizeType mFilledPixel; // 32Bit pixel image for underlining SizeType CheckAtlas( SizeType atlas, SizeType width, SizeType height, Pixel::Format pixelFormat, - SizeType& blockArea, - SizeType& totalBlocks ); + SizeType& blockArea ); void CreateMesh( SizeType atlas, SizeType imageWidth, @@ -212,9 +223,11 @@ private: void PrintMeshData( const Toolkit::AtlasManager::Mesh2D& mesh ); - Toolkit::AtlasManager::AtlasSize mNewAtlasSize; - Toolkit::AtlasManager::AddFailPolicy mAddFailPolicy; - uint32_t mFilledPixel; + void OnUpload( Image image ); + + Shader mShaderL8; + Shader mShaderRgba; + }; } // namespace Internal