+ /**
+ * Get the text rendering shader.
+ * @param[in] factoryCache A pointer pointing to the VisualFactoryCache object
+ * @param[in] featureBuilder Collection of current text shader's features. It will be cached as text visual.
+ */
+ Shader GetTextShader(VisualFactoryCache& factoryCache, const TextVisualShaderFeature::FeatureBuilder& featureBuilder);
+
+ /**
+ * @brief Retrieve the TextVisual object.
+ * @param[in] visual A handle to the TextVisual
+ * @return The TextVisual object
+ */
+ static TextVisual& GetVisualObject(Toolkit::Visual::Base visual)
+ {
+ return static_cast<TextVisual&>(Toolkit::GetImplementation(visual).GetVisualObject());
+ };
+
+private:
+ typedef std::vector<Renderer> RendererContainer;
+
+private:
+ Text::ControllerPtr mController; ///< The text's controller.
+ Text::TypesetterPtr mTypesetter; ///< The text's typesetter.
+
+ TextVisualShaderFactory& mTextVisualShaderFactory; ///< The shader factory for text visual.
+ TextVisualShaderFeature::FeatureBuilder mTextShaderFeatureCache; ///< The cached shader feature for text visual.
+
+ WeakHandle<Actor> mControl; ///< The control where the renderer is added.
+ Constraint mColorConstraint{}; ///< Color constraint
+ Constraint mOpacityConstraint{}; ///< Opacity constraint
+ Property::Index mHasMultipleTextColorsIndex; ///< The index of uHasMultipleTextColors proeprty.
+ Property::Index mAnimatableTextColorPropertyIndex; ///< The index of animatable text color property registered by the control.
+ Property::Index mTextColorAnimatableIndex; ///< The index of uTextColorAnimatable property.
+ bool mRendererUpdateNeeded : 1; ///< The flag to indicate whether the renderer needs to be updated.
+ RendererContainer mRendererList;