class AtlasManager;
typedef IntrusivePtr<AtlasManager> AtlasManagerPtr;
-class AtlasManager : public Dali::BaseObject
+class AtlasManager : public Dali::BaseObject, public ConnectionTracker
{
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
+ Sampler mSampler; // sampler used for atlas texture
SizeType mNextFreeBlock; // next free block will be placed here ( actually +1 )
Dali::Vector< SizeType > mFreeBlocksList; // unless there are any previously freed blocks
};
*/
void GenerateMeshData( ImageId id,
const Vector2& position,
- Toolkit::AtlasManager::Mesh2D& mesh );
+ Toolkit::AtlasManager::Mesh2D& mesh,
+ bool addReference );
/**
* @copydoc Toolkit::AtlasManager::StitchMesh
*/
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,
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