Text improvement
[platform/core/uifw/dali-toolkit.git] / dali-toolkit / internal / text / rendering / atlas / atlas-glyph-manager.h
index a74ce28..592017b 100644 (file)
@@ -1,8 +1,8 @@
-#ifndef __DALI_TOOLKIT_ATLAS_GLYPH_MANAGER_H__
-#define __DALI_TOOLKIT_ATLAS_GLYPH_MANAGER_H__
+#ifndef DALI_TOOLKIT_ATLAS_GLYPH_MANAGER_H
+#define DALI_TOOLKIT_ATLAS_GLYPH_MANAGER_H
 
 /*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2019 Samsung Electronics Co., Ltd.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,7 +19,7 @@
  */
 
 // INTERNAL INCLUDES
-#include <dali-toolkit/internal/atlas-manager/atlas-manager.h>
+#include <dali-toolkit/internal/text/rendering/atlas/atlas-manager.h>
 #include <dali-toolkit/internal/text/text-definitions.h>
 
 namespace Dali
@@ -55,6 +55,19 @@ public:
     AtlasManager::Metrics mAtlasMetrics;    ///< metrics from the Atlas Manager
   };
 
+  struct GlyphStyle
+  {
+    GlyphStyle()
+    : outline{ 0u },
+      isItalic{ false },
+      isBold{ false }
+    {}
+
+    uint16_t outline; ///< The outline width of this glyph
+    bool isItalic:1;  ///< Whether the glyph is italic.
+    bool isBold:1;    ///< Whether the glyph is bold.
+  };
+
   /**
    * @brief Create a AtlasGlyphManager handle.
    *
@@ -80,11 +93,13 @@ public:
    * @brief Ask Atlas Manager to add a glyph
    *
    * @param[in] glyph glyph to add to an atlas
+   * @param[in] style The style of this glyph
    * @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,
-            const BufferImage& bitmap,
+            const GlyphStyle& style,
+            const PixelData& bitmap,
             AtlasManager::AtlasSlot& slot );
 
   /**
@@ -99,26 +114,19 @@ public:
                          Toolkit::AtlasManager::Mesh2D& mesh );
 
   /**
-   * @brief Stitch Two Meshes together
-   *
-   * @param[in] first first mesh
-   * @param[in] second second mesh
-   */
-  void StitchMesh( Toolkit::AtlasManager::Mesh2D& first,
-                   const Toolkit::AtlasManager::Mesh2D& second );
-
-  /**
    * @brief Check to see if a glyph is being cached
    *
    * @param[in] fontId The font that this glyph comes from
    * @param[in] index The GlyphIndex of this glyph
+   * @param[in] style The style 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 ?
    */
-  bool Cached( Text::FontId fontId,
-               Text::GlyphIndex index,
-               AtlasManager::AtlasSlot& slot );
+  bool IsCached( Text::FontId fontId,
+                 Text::GlyphIndex index,
+                 const GlyphStyle& style,
+                 AtlasManager::AtlasSlot& slot );
 
   /**
    * @brief Retrieve the size of an atlas
@@ -149,22 +157,13 @@ public:
   Pixel::Format GetPixelFormat( uint32_t atlasId );
 
   /**
-   * @brief Get the material used by an atlas
+   * @brief Get the texture set used by an atlas
    *
    * @param[in] atlasId Id of an atlas
    *
-   * @return The material used by the atlas
+   * @return The texture set used by the atlas
    */
-  Material GetMaterial( uint32_t atlasId ) const;
-
-  /**
-   * @brief Get the sampler used by an atlas
-   *
-   * @param[in] atlasId Id of an atlas
-   *
-   * @return The sampler used by the atlas
-   */
-  Sampler GetSampler( uint32_t atlasId ) const;
+  TextureSet GetTextures( uint32_t atlasId ) const;
 
   /**
    * @brief Get Glyph Manager metrics
@@ -178,23 +177,10 @@ public:
    *
    * @param[in] fontId The font this image came from
    * @param[in] index The index of the glyph
+   * @param[in] style The style of this glyph
    * @param[in] delta The adjustment to make to the reference count
    */
-  void AdjustReferenceCount( Text::FontId fontId, Text::GlyphIndex index, int32_t delta );
-
-  /**
-   * @brief Get Shader used for rendering glyph effect buffers
-   *
-   * @return Handle of shader needed
-   */
-  Shader GetEffectBufferShader() const;
-
-  /**
-   * @brief Get Shader used rendering Glyph Shadows
-   *
-   * @return Handle of shader needed
-   */
-  Shader GetGlyphShadowShader() const;
+  void AdjustReferenceCount( Text::FontId fontId, Text::GlyphIndex index, const GlyphStyle& style, int32_t delta );
 
 private:
 
@@ -206,4 +192,4 @@ private:
 
 } // namespace Dali
 
-#endif // __DALI_TOOLKIT_ATLAS_GLYPH_MANAGER_H__
+#endif // DALI_TOOLKIT_ATLAS_GLYPH_MANAGER_H