-#ifndef __DALI_TOOLKIT_TEXT_LAYOUT_PARAMETERS_H__
-#define __DALI_TOOLKIT_TEXT_LAYOUT_PARAMETERS_H__
+#ifndef DALI_TOOLKIT_TEXT_LAYOUT_PARAMETERS_H
+#define DALI_TOOLKIT_TEXT_LAYOUT_PARAMETERS_H
/*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2021 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/text/text-definitions.h>
+#include <dali-toolkit/internal/text/text-model.h>
+#include <dali-toolkit/public-api/text/text-enumerations.h>
namespace Dali
{
-
namespace Toolkit
{
-
namespace Text
{
+struct BidirectionalLineInfoRun;
+namespace Layout
+{
/**
* @brief Struct used to pass parameters.
*/
-struct LayoutParameters
+struct Parameters
{
/**
* Constructor with the needed parameters to layout the text.
*
* @param[in] boundingBox The size of the box containing the text.
- * @param[in] lineBreakInfoBuffer The line break info.
- * @param[in] wordBreakInfoBuffer The word break info.
- * @param[in] totalNumberOfGlyphs The number of glyphs.
- * @param[in] glyphsBuffer A vector with glyphs.
- * @param[in] glyphsToCharactersBuffer Vector with indices pointing the first character of each glyph.
- * @param[in] charactersPerGlyphBuffer Vector with the number of characters that forms each glyph.
+ * @param[in,out] textModel The text's model.
*/
- LayoutParameters( const Vector2& boundingBox,
- const LineBreakInfo* const lineBreakInfoBuffer,
- const WordBreakInfo* const wordBreakInfoBuffer,
- Length totalNumberOfGlyphs,
- const GlyphInfo* const glyphsBuffer,
- const CharacterIndex* const glyphsToCharactersBuffer,
- const Length* const charactersPerGlyphBuffer )
- : boundingBox( boundingBox ),
- lineBreakInfoBuffer( lineBreakInfoBuffer ),
- wordBreakInfoBuffer( wordBreakInfoBuffer ),
- totalNumberOfGlyphs( totalNumberOfGlyphs ),
- glyphsBuffer( glyphsBuffer ),
- glyphsToCharactersBuffer( glyphsToCharactersBuffer ),
- charactersPerGlyphBuffer( charactersPerGlyphBuffer )
- {}
+ Parameters(const Vector2& boundingBox,
+ ModelPtr textModel)
+ : boundingBox{boundingBox},
+ textModel{textModel},
+ lineBidirectionalInfoRunsBuffer{nullptr},
+ numberOfBidirectionalInfoRuns{0u},
+ startGlyphIndex{0u},
+ numberOfGlyphs{0u},
+ startLineIndex{0u},
+ estimatedNumberOfLines{0u},
+ interGlyphExtraAdvance{0.f},
+ isLastNewParagraph{false}
+ {
+ }
- Vector2 boundingBox;
- const LineBreakInfo* const lineBreakInfoBuffer;
- const WordBreakInfo* const wordBreakInfoBuffer;
- Length totalNumberOfGlyphs;
- const GlyphInfo* const glyphsBuffer;
- const CharacterIndex* const glyphsToCharactersBuffer;
- const Length* const charactersPerGlyphBuffer;
+ Vector2 boundingBox; ///< The size of the box containing the text.
+ ModelPtr textModel;
+ BidirectionalLineInfoRun* lineBidirectionalInfoRunsBuffer; ///< Bidirectional conversion tables per line.
+ Length numberOfBidirectionalInfoRuns; ///< The number of lines with bidirectional info.
+ GlyphIndex startGlyphIndex; ///< Index to the first glyph to layout.
+ Length numberOfGlyphs; ///< The number of glyphs to layout.
+ LineIndex startLineIndex; ///< The line index where to insert the new lines.
+ Length estimatedNumberOfLines; ///< The estimated number of lines.
+ float interGlyphExtraAdvance; ///< Extra advance added to each glyph.
+ bool isLastNewParagraph : 1; ///< Whether the last character is a new paragraph character.
};
+} // namespace Layout
+
} // namespace Text
} // namespace Toolkit
} // namespace Dali
-#endif // __DALI_TOOLKIT_TEXT_LAYOUT_PARAMETERS_H__
+#endif // DALI_TOOLKIT_TEXT_LAYOUT_PARAMETERS_H