X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fvisuals%2Ftext%2Ftext-visual.h;h=6fbf8ed5969e3974d02c712ce1662894bd6b2d5e;hb=e3a661ed9b8268e1ebac5ab26088673de706c509;hp=31353b92d444a2ba78a15a52fe18ee75cabf6539;hpb=58ae307297125b55c93c38a631a8745c6a7c51f1;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/dali-toolkit/internal/visuals/text/text-visual.h b/dali-toolkit/internal/visuals/text/text-visual.h index 31353b9..6fbf8ed 100644 --- a/dali-toolkit/internal/visuals/text/text-visual.h +++ b/dali-toolkit/internal/visuals/text/text-visual.h @@ -20,6 +20,7 @@ // EXTERNAL INCLUDES #include +#include // INTERNAL INCLUDES #include @@ -113,6 +114,15 @@ public: GetVisualObject( visual ).mRendererUpdateNeeded = true; }; + /** + * @brief Instantly updates the renderer + * @param[in] visual The text visual. + */ + static void UpdateRenderer( Toolkit::Visual::Base visual ) + { + GetVisualObject( visual ).UpdateRenderer(); + }; + public: // from Visual::Base /** @@ -192,11 +202,22 @@ private: void RemoveTextureSet(); /** + * Get the texture of the text for rendering. + * @param[in] size The texture size. + * @param[in] hasMultipleTextColors Whether the text contains multiple colors. + * @param[in] containsColorGlyph Whether the text contains color glyph. + * @param[in] styleEnabled Whether the text contains any styles (e.g. shadow, underline, etc.). + */ + TextureSet GetTextTexture( const Vector2& size, bool hasMultipleTextColors, bool containsColorGlyph, bool styleEnabled ); + + /** * Get the text rendering shader. * @param[in] factoryCache A pointer pointing to the VisualFactoryCache object - * @param[in] isRgbaTexture Whether the texture is in RGBA format. + * @param[in] hasMultipleTextColors Whether the text contains multiple colors. + * @param[in] containsColorGlyph Whether the text contains color glyph. + * @param[in] styleEnabled Whether the text contains any styles (e.g. shadow, underline, etc.). */ - Shader GetTextShader( VisualFactoryCache& factoryCache, bool isRgbaTexture ); + Shader GetTextShader( VisualFactoryCache& factoryCache, bool hasMultipleTextColors, bool containsColorGlyph, bool styleEnabled ); /** * @brief Retrieve the text's controller. @@ -209,6 +230,24 @@ private: }; private: + + /** + * Used as an alternative to boolean so that it is obvious whether the text contains single or multiple text colors, and emoji and styles. + */ + struct TextType + { + enum Type + { + SINGLE_COLOR_TEXT = 0, ///< The text contains single color only. + MULTI_COLOR_TEXT = 1, ///< The text contains multiple colors. + NO_EMOJI = 0, ///< The text contains no emoji. + HAS_EMOJI = 1, ///< The text contains emoji. + NO_STYLES = 0, ///< The text contains contains no styles. + HAS_SYLES = 1 ///< The text contains contains styles. + }; + }; + +private: Text::ControllerPtr mController; ///< The text's controller. Text::TypesetterPtr mTypesetter; ///< The text's typesetter. WeakHandle mControl; ///< The control where the renderer is added.