Changes following "Remove Sampler scene object"
[platform/core/uifw/dali-toolkit.git] / dali-toolkit / internal / text / rendering / atlas / atlas-glyph-manager-impl.h
index 3b2b8af..da659bc 100644 (file)
@@ -1,4 +1,3 @@
-
 #ifndef __DALI_TOOLKIT_ATLAS_GLYPH_MANAGER_IMPL_H__
 #define __DALI_TOOLKIT_ATLAS_GLYPH_MANAGER_IMPL_H__
 
@@ -49,21 +48,23 @@ class AtlasGlyphManager : public Dali::BaseObject
 {
 public:
 
-  struct GlyphRecord
+  struct GlyphRecordEntry
   {
-    Text::FontId mFontId;
     Text::GlyphIndex mIndex;
     uint32_t mImageId;
+    int32_t mCount;
   };
 
-  AtlasGlyphManager();
-
-  virtual ~AtlasGlyphManager();
+  struct FontGlyphRecord
+  {
+    Text::FontId mFontId;
+    Vector< GlyphRecordEntry > mGlyphRecords;
+  };
 
-/**
-   * Create a new AtlasGlyphManager
+  /**
+   * @brief Constructor
    */
-  static AtlasGlyphManagerPtr New();
+  AtlasGlyphManager();
 
   /**
    * @copydoc Toolkit::AtlasGlyphManager::Add
@@ -88,7 +89,7 @@ public:
   /**
    * @copydoc Toolkit::AtlasGlyphManager::Cached
    */
-  void Cached( Text::FontId fontId,
+  bool Cached( Text::FontId fontId,
                Text::GlyphIndex index,
                Dali::Toolkit::AtlasManager::AtlasSlot& slot );
 
@@ -103,14 +104,14 @@ public:
   void SetNewAtlasSize( uint32_t width, uint32_t height, uint32_t blockWidth, uint32_t blockHeight );
 
   /**
-   * @copydoc Toolkit::AtlasGlyphManager::Remove
+   * @copydoc Toolkit::AtlasGlyphManager::GetPixelFormat
    */
-  void Remove( uint32_t imageId );
+  Pixel::Format GetPixelFormat( uint32_t atlasId );
 
   /**
-   * @copydoc Toolkit::AtlasGlyphManager::GetPixelFormat
+   * @copydoc toolkit::AtlasGlyphManager::AdjustReferenceCount
    */
-  Pixel::Format GetPixelFormat( uint32_t atlasId );
+  void AdjustReferenceCount( Text::FontId fontId, Text::GlyphIndex index, int32_t delta );
 
   /**
    * @copydoc Toolkit::AtlasGlyphManager::GetMaterial
@@ -120,7 +121,7 @@ public:
   /**
    * @copydoc Toolkit::AtlasGlyphManager::GetMaterial
    */
-  Sampler GetSampler( uint32_t atlasId ) const;
+  Image GetImage( uint32_t atlasId ) const;
 
   /**
    * @copydoc Toolkit::AtlasGlyphManager::GetMetrics
@@ -143,10 +144,17 @@ public:
     return mShadowShader;
   }
 
+protected:
+
+  /**
+   * A reference counted object may only be deleted by calling Unreference()
+   */
+  virtual ~AtlasGlyphManager();
+
 private:
 
   Dali::Toolkit::AtlasManager mAtlasManager;          ///> Atlas Manager created by GlyphManager
-  Vector< GlyphRecord > mGlyphRecords;                ///> Cached glyph information
+  std::vector< FontGlyphRecord > mFontGlyphRecords;
   Toolkit::AtlasGlyphManager::Metrics mMetrics;       ///> Metrics to pass back on GlyphManager status
   Shader mEffectBufferShader;                         ///> Shader used to render drop shadow buffer textures
   Shader mShadowShader;                               ///> Shader used to render drop shadow into buffer
@@ -176,5 +184,4 @@ inline Internal::AtlasGlyphManager& GetImplementation(Toolkit::AtlasGlyphManager
 
 } // namespace Dali
 
-
- #endif // __DALI_TOOLKIT_ATLAS_GLYPH_MANAGER_IMPL_H__
\ No newline at end of file
+#endif // __DALI_TOOLKIT_ATLAS_GLYPH_MANAGER_IMPL_H__