}
-class DALI_IMPORT_API AtlasGlyphManager : public BaseHandle
+class AtlasGlyphManager : public BaseHandle
{
public:
/**
* @brief Ask Atlas Manager to add a glyph
*
+ * @param[in] fontId fontId glyph comes from
* @param[in] glyph glyph to add to an atlas
* @param[in] bitmap bitmap to use for glyph addition
* @param[out] slot information returned by atlas manager for addition
*/
- void Add( const Text::GlyphInfo& glyph,
+ void Add( Text::FontId fontId,
+ const Text::GlyphInfo& glyph,
const BufferImage& bitmap,
AtlasManager::AtlasSlot& slot );
* @param[in] fontId The font that this glyph comes from
* @param[in] index The GlyphIndex of this glyph
* @param[out] slot container holding information about the glyph( mImage = 0 indicates not being cached )
+ *
+ * @return Whether glyph is cached or not ?
*/
- void Cached( Text::FontId fontId,
+ bool Cached( Text::FontId fontId,
Text::GlyphIndex index,
AtlasManager::AtlasSlot& slot );
/**
- * @brief Set the Atlas size and block size for subsequent atlas generation
+ * @brief Retrieve the size of an atlas
*
- * @param[in] size size of the atlas in pixels
- * @param[in] blockSize size of a block in this atlas in pixels
- */
- void SetNewAtlasSize( const Vector2& size,
- const Vector2& blockSize );
-
- /**
- * @brief Unreference an image from the atlas and remove from cache if no longer needed
+ * @param[in] atlasId Id of the atlas to interrogate
*
- * @param[in] imageId ID of the image
+ * @return The pixel size of the atlas
*/
- void Remove( uint32_t imageId );
+ Vector2 GetAtlasSize( uint32_t atlasId );
+
+ /**
+ * @brief Set the atlas size and block size for subsequent Atlas generation
+ *
+ * @param[in] width width of atlas in pixels
+ * @param[in] height height of atlas in pixels
+ * @param[in] blockWidth width of a block in pixels
+ * @param[in] blockHeight height of a block in pixels
+ */
+ void SetNewAtlasSize( uint32_t width, uint32_t height, uint32_t blockWidth, uint32_t blockHeight );
/**
* @brief Get the Pixel Format used by an atlas
*/
const Metrics& GetMetrics();
+ /**
+ * @brief Adjust the reference count for an imageId and remove cache entry if it becomes free
+ *
+ * @param[in] fontId the font this image came from
+ * @param[in] imageId The imageId
+ * @param[in] delta adjustment to make to reference count
+ */
+ void AdjustReferenceCount( Text::FontId fontId, uint32_t imageId, int32_t delta );
+
private:
explicit DALI_INTERNAL AtlasGlyphManager(Internal::AtlasGlyphManager *impl);