{
public:
- struct GlyphRecord
+ struct GlyphRecordEntry
{
- Text::FontId mFontId;
Text::GlyphIndex mIndex;
uint32_t mImageId;
+ int32_t mCount;
+ };
+
+ struct FontGlyphRecord
+ {
+ Text::FontId mFontId;
+ Vector< GlyphRecordEntry > mGlyphRecords;
};
AtlasGlyphManager();
/**
* @copydoc Toolkit::AtlasGlyphManager::Add
*/
- void Add( const Text::GlyphInfo& glyph,
+ void Add( Text::FontId fontId,
+ const Text::GlyphInfo& glyph,
const BufferImage& bitmap,
Dali::Toolkit::AtlasManager::AtlasSlot& slot );
/**
* @copydoc Toolkit::AtlasGlyphManager::Cached
*/
- void Cached( Text::FontId fontId,
+ bool Cached( Text::FontId fontId,
Text::GlyphIndex index,
Dali::Toolkit::AtlasManager::AtlasSlot& slot );
/**
- * @copydoc Toolkit::AtlasGlyphManager::SetAtlasSize
+ * @copydoc Toolkit::AtlasGlyphManager::GetAtlasSize
*/
- void SetAtlasSize( const Vector2& size,
- const Vector2& blockSize );
+ Vector2 GetAtlasSize( uint32_t atlasId );
/**
- * @copydoc Toolkit::AtlasGlyphManager::Remove
+ * @copydoc Toolkit::AtlasGlyphManager::SetNewAtlasSize
*/
- void Remove( uint32_t imageId );
+ void SetNewAtlasSize( uint32_t width, uint32_t height, uint32_t blockWidth, uint32_t blockHeight );
/**
* @copydoc toolkit::AtlasGlyphManager::GetPixelFormat
*/
Pixel::Format GetPixelFormat( uint32_t atlasId );
+ /**
+ * @copydoc toolkit::AtlasGlyphManager::GetMetrics
+ */
+ const Toolkit::AtlasGlyphManager::Metrics& GetMetrics();
+
+ /**
+ * @copydoc toolkit::AtlasGlyphManager::AdjustReferenceCount
+ */
+ void AdjustReferenceCount( Text::FontId fontId, uint32_t imageId, int32_t delta );
+
private:
Dali::Toolkit::AtlasManager mAtlasManager;
- Vector< GlyphRecord > mGlyphRecords;
+ std::vector< FontGlyphRecord > mFontGlyphRecords;
uint32_t mCount;
+ Toolkit::AtlasGlyphManager::Metrics mMetrics;
};
} // namespace Internal