X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fvisuals%2Ftext%2Ftext-visual.h;h=6fbf8ed5969e3974d02c712ce1662894bd6b2d5e;hb=8d1847634591eb37796c5b02b7357a4be5e89b09;hp=2ed7beec21e64308f40cf8f5cf54e6aebb5a5077;hpb=f5e86ed8fd10a19aaeac4be8703887ffa24fcf7f;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 2ed7bee..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,6 +202,24 @@ 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] 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 hasMultipleTextColors, bool containsColorGlyph, bool styleEnabled ); + + /** * @brief Retrieve the text's controller. * @param[in] visual The text visual. * @return The text controller @@ -202,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.