-#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.
*/
// 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
~Metrics()
{}
- uint32_t mGlyphCount; // number of glyphs being managed
- AtlasManager::Metrics mAtlasMetrics; // metrics from the Atlas Manager
+ uint32_t mGlyphCount; ///< number of glyphs being managed
+ std::string mVerboseGlyphCounts; ///< a verbose list of the glyphs + ref counts
+ 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 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] 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( Text::FontId fontId,
- const Text::GlyphInfo& glyph,
- const BufferImage& bitmap,
+ void Add( const Text::GlyphInfo& glyph,
+ const GlyphStyle& style,
+ const PixelData& bitmap,
AtlasManager::AtlasSlot& slot );
/**
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
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
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 );
-
- /**
- * @brief Get Shader used for rendering glyph effect buffers
- *
- * @return Handle of shader needed
- */
- Shader GetEffectBufferShader() const;
-
- /**
- * @brief Get Shader used rendering Glyph Shadows
+ * @brief Adjust the reference count for glyph
*
- * @return Handle of shader needed
+ * @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
*/
- Shader GetGlyphShadowShader() const;
+ void AdjustReferenceCount( Text::FontId fontId, Text::GlyphIndex index, const GlyphStyle& style, int32_t delta );
private:
} // namespace Dali
-#endif // __DALI_TOOLKIT_ATLAS_GLYPH_MANAGER_H__
+#endif // DALI_TOOLKIT_ATLAS_GLYPH_MANAGER_H