X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Finternal%2Ftext%2Flayouts%2Flayout-parameters.h;h=f8a62b3aaba9c51365b4cb405c28452f46098105;hp=808e1aeefbf8221ab049e8634eb33d906541cf1c;hb=HEAD;hpb=2c7cfdb64f1a8281c8cbbe9531ec0b2ed779f915 diff --git a/dali-toolkit/internal/text/layouts/layout-parameters.h b/dali-toolkit/internal/text/layouts/layout-parameters.h index 808e1ae..f8a62b3 100644 --- a/dali-toolkit/internal/text/layouts/layout-parameters.h +++ b/dali-toolkit/internal/text/layouts/layout-parameters.h @@ -1,8 +1,8 @@ -#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. @@ -23,71 +23,63 @@ // INTERNAL INCLUDES #include +#include +#include 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 ), - charactersToGlyphsBuffer( NULL ), - glyphsPerCharacterBuffer( NULL ), - lineBidirectionalInfoRunsBuffer( NULL ), - numberOfBidirectionalInfoRuns( 0u ) - {} + 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; - GlyphIndex* charactersToGlyphsBuffer; ///< The character to glyph conversion table. - Length* glyphsPerCharacterBuffer; ///< The number of glyphs per character. - BidirectionalLineInfoRun* lineBidirectionalInfoRunsBuffer; ///< Bidirectional conversion tables per line. - Length numberOfBidirectionalInfoRuns; ///< The number of lines with bidirectional info. + 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