X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali-toolkit%2Finternal%2Ftext%2Fglyph-metrics-helper.h;h=0c996db0844f4bec7aa22cd2e590bd01c5491157;hb=16561908a5e0e9bbef2aa11c9cdc3a27aeb1bd54;hp=05ba882dfc7b64786ee83649655611b7f258ecc2;hpb=d0b0cfa4a44953be9af9128885eb6ef5d83a214e;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/dali-toolkit/internal/text/glyph-metrics-helper.h b/dali-toolkit/internal/text/glyph-metrics-helper.h index 05ba882..0c996db 100644 --- a/dali-toolkit/internal/text/glyph-metrics-helper.h +++ b/dali-toolkit/internal/text/glyph-metrics-helper.h @@ -2,7 +2,7 @@ #define DALI_TOOLKIT_TEXT_GLYPH_METRICS_HELPER_H /* - * Copyright (c) 2021 Samsung Electronics Co., Ltd. + * Copyright (c) 2022 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,9 @@ */ // INTERNAL INCLUDES +#include #include +#include namespace Dali { @@ -76,12 +78,46 @@ Length GetNumberOfGlyphsOfGroup(GlyphIndex glyphIndex, * @param[out] glyphMetrics Some glyph metrics (font height, advance, ascender and x bearing). * @param[in] glyphsBuffer The glyphs buffer. * @param[in] metrics Used to access metrics from FontClient. + * @param[in] calculatedAdvance The final advance value obtained by adding the CharacterSpacing value to the original advance. In some cases the CharacterSpacing should not be added. Ex: when the glyph is a ZWSP (Zero Width Space) */ void GetGlyphsMetrics(GlyphIndex glyphIndex, Length numberOfGlyphs, GlyphMetrics& glyphMetrics, const GlyphInfo* const glyphsBuffer, - MetricsPtr& metrics); + MetricsPtr& metrics, + float calculatedAdvance); + +/** + * @brief Gets the final advance value by adding the CharacterSpacing value to it + *In some cases the CharacterSpacing should not be added. Ex: when the glyph is a ZWSP (Zero Width Space) + * + * @param[in] character The character of which the advance is to be calculated. + * @param[in] characterSpacing The character spacing to be added to the advance. + * @param[in] advance The original advance. + * + * @return The calculated advance + */ +float GetCalculatedAdvance(unsigned int character, float characterSpacing, float advance); + +/** + * @brief Takes the character index, obtains the glyph index (and the number of Glyphs) from it and finally gets the glyph metrics. + * + * @param[in] index The character index. + * @param[in] visualModel The visual model. + * @param[in] logicalModel The logical model. + * @param[in] metrics Used to access metrics from FontClient. + * @param[out] glyphMetrics Some glyph metrics (font height, advance, ascender and x bearing). + * @param[out] glyphIndex The glyph index obtained from the character index. + * @param[out] numberOfGlyphs The number of glyphs in the character of which the index was passed to the function. + * + */ +void GetGlyphMetricsFromCharacterIndex(CharacterIndex index, + const VisualModelPtr& visualModel, + const LogicalModelPtr& logicalModel, + MetricsPtr& metrics, + GlyphMetrics& glyphMetrics, + GlyphIndex& glyphIndex, + Length& numberOfGlyphs); } // namespace Text