[Text] Add some more trace marker for text 70/286170/1
authorEunki, Hong <eunkiki.hong@samsung.com>
Thu, 29 Dec 2022 13:28:01 +0000 (22:28 +0900)
committerEunki, Hong <eunkiki.hong@samsung.com>
Thu, 29 Dec 2022 13:28:01 +0000 (22:28 +0900)
Change-Id: Id0d9161cce9af8cfcbeb891d9dee18d477be2b46
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
dali-toolkit/internal/text/controller/text-controller-event-handler.cpp
dali-toolkit/internal/text/controller/text-controller-impl-model-updater.cpp
dali-toolkit/internal/text/controller/text-controller-relayouter.cpp
dali-toolkit/internal/text/rendering/text-typesetter.cpp
dali-toolkit/internal/visuals/text/text-visual.cpp

index ca6d7f5..812b38e 100644 (file)
 #include <dali/devel-api/adaptor-framework/clipboard-event-notifier.h>
 #include <dali/devel-api/adaptor-framework/key-devel.h>
 #include <dali/integration-api/debug.h>
+#include <dali/integration-api/trace.h>
 
 // INTERNAL INCLUDES
-#include <dali-toolkit/internal/text/cursor-helper-functions.h>
 #include <dali-toolkit/internal/text/controller/text-controller-impl.h>
 #include <dali-toolkit/internal/text/controller/text-controller-placeholder-handler.h>
 #include <dali-toolkit/internal/text/controller/text-controller-text-updater.h>
+#include <dali-toolkit/internal/text/cursor-helper-functions.h>
 #include <dali-toolkit/internal/text/text-editable-control-interface.h>
 
 namespace
@@ -36,6 +37,8 @@ namespace
 Debug::Filter* gLogFilter = Debug::Filter::New(Debug::NoLogging, true, "LOG_TEXT_CONTROLS");
 #endif
 
+DALI_INIT_TRACE_FILTER(gTraceFilter, DALI_TRACE_PERFORMANCE_MARKER, false);
+
 const std::string KEY_C_NAME      = "c";
 const std::string KEY_V_NAME      = "v";
 const std::string KEY_X_NAME      = "x";
@@ -604,6 +607,8 @@ void Controller::EventHandler::ProcessModifyEvents(Controller& controller)
     return;
   }
 
+  DALI_TRACE_BEGIN(gTraceFilter, "DALI_TEXT_MODIFY_EVENTS");
+
   for(Vector<ModifyEvent>::ConstIterator it    = events.Begin(),
                                          endIt = events.End();
       it != endIt;
@@ -653,6 +658,7 @@ void Controller::EventHandler::ProcessModifyEvents(Controller& controller)
 
   // DISCARD temporary text
   events.Clear();
+  DALI_TRACE_END(gTraceFilter, "DALI_TEXT_MODIFY_EVENTS");
 }
 
 void Controller::EventHandler::TextReplacedEvent(Controller& controller)
@@ -827,7 +833,7 @@ InputMethodContext::CallbackData Controller::EventHandler::OnInputMethodContextE
     case InputMethodContext::SELECTION_SET:
     {
       uint32_t start = static_cast<uint32_t>(inputMethodContextEvent.startIndex);
-      uint32_t end = static_cast<uint32_t>(inputMethodContextEvent.endIndex);
+      uint32_t end   = static_cast<uint32_t>(inputMethodContextEvent.endIndex);
       if(start == end)
       {
         controller.SetPrimaryCursorPosition(start, true);
index 91d7eaa..48546c9 100644 (file)
@@ -20,6 +20,7 @@
 
 // EXTERNAL INCLUDES
 #include <dali/integration-api/debug.h>
+#include <dali/integration-api/trace.h>
 #include <dali/public-api/math/math-utils.h>
 
 // INTERNAL INCLUDES
@@ -40,6 +41,8 @@ namespace
 Debug::Filter* gLogFilter = Debug::Filter::New(Debug::NoLogging, true, "LOG_TEXT_CONTROLS");
 #endif
 
+DALI_INIT_TRACE_FILTER(gTraceFilter, DALI_TRACE_PERFORMANCE_MARKER, false);
+
 // The relative luminance of a color is defined as (L = 0.2126 * R + 0.7152 * G + 0.0722 * B)
 // based on W3C Recommendations (https://www.w3.org/TR/WCAG20/)
 constexpr float         BRIGHTNESS_THRESHOLD = 0.179f;
@@ -67,6 +70,7 @@ bool ControllerImplModelUpdater::Update(Controller::Impl& impl, OperationsMask o
     // Nothing to do if no operations are pending and required.
     return false;
   }
+  DALI_TRACE_BEGIN(gTraceFilter, "DALI_TEXT_MODEL_UPDATE");
 
   Vector<Character>& srcCharacters = impl.mModel->mLogicalModel->mText;
   Vector<Character>  displayCharacters;
@@ -602,6 +606,8 @@ bool ControllerImplModelUpdater::Update(Controller::Impl& impl, OperationsMask o
   // Set the previous number of characters for the next time the text is updated.
   impl.mTextUpdateInfo.mPreviousNumberOfCharacters = numberOfCharacters;
 
+  DALI_TRACE_END(gTraceFilter, "DALI_TEXT_MODEL_UPDATE");
+
   return updated;
 }
 
index a2ebc3f..f792ad5 100644 (file)
@@ -20,6 +20,7 @@
 
 // EXTERNAL INCLUDES
 #include <dali/integration-api/debug.h>
+#include <dali/integration-api/trace.h>
 #include <dali/public-api/math/math-utils.h>
 #include <limits>
 
@@ -34,6 +35,8 @@ namespace
 Debug::Filter* gLogFilter = Debug::Filter::New(Debug::NoLogging, true, "LOG_TEXT_CONTROLS");
 #endif
 
+DALI_INIT_TRACE_FILTER(gTraceFilter, DALI_TRACE_PERFORMANCE_MARKER, false);
+
 constexpr float MAX_FLOAT = std::numeric_limits<float>::max();
 
 float ConvertToEven(float value)
@@ -157,6 +160,7 @@ Size Controller::Relayouter::CalculateLayoutSizeOnRequiredControllerSize(Control
 Vector3 Controller::Relayouter::GetNaturalSize(Controller& controller)
 {
   DALI_LOG_INFO(gLogFilter, Debug::Verbose, "-->Controller::GetNaturalSize\n");
+  DALI_TRACE_BEGIN(gTraceFilter, "DALI_TEXT_GET_NATURAL_SIZE");
   Vector3 naturalSizeVec3;
 
   // Make sure the model is up-to-date before layouting
@@ -195,6 +199,8 @@ Vector3 Controller::Relayouter::GetNaturalSize(Controller& controller)
   naturalSizeVec3.x = ConvertToEven(naturalSizeVec3.x);
   naturalSizeVec3.y = ConvertToEven(naturalSizeVec3.y);
 
+  DALI_TRACE_END(gTraceFilter, "DALI_TEXT_GET_NATURAL_SIZE");
+
   return naturalSizeVec3;
 }
 
@@ -245,6 +251,7 @@ void Controller::Relayouter::FitPointSizeforLayout(Controller& controller, const
   const OperationsMask operations = impl.mOperationsPending;
   if(NO_OPERATION != (UPDATE_LAYOUT_SIZE & operations) || impl.mTextFitContentSize != layoutSize)
   {
+    DALI_TRACE_BEGIN(gTraceFilter, "DALI_TEXT_FIT_LAYOUT");
     ModelPtr& model = impl.mModel;
 
     bool  actualellipsis      = model->mElideEnabled;
@@ -315,12 +322,15 @@ void Controller::Relayouter::FitPointSizeforLayout(Controller& controller, const
     impl.mFontDefaults->mFitPointSize = bestPointSize;
     impl.mFontDefaults->sizeDefined   = true;
     impl.ClearFontData();
+
+    DALI_TRACE_END(gTraceFilter, "DALI_TEXT_FIT_LAYOUT");
   }
 }
 
 float Controller::Relayouter::GetHeightForWidth(Controller& controller, float width)
 {
   DALI_LOG_INFO(gLogFilter, Debug::Verbose, "-->Controller::GetHeightForWidth %p width %f\n", &controller, width);
+  DALI_TRACE_BEGIN(gTraceFilter, "DALI_TEXT_GET_HEIGHT_FOR_WIDTH");
 
   // Make sure the model is up-to-date before layouting
   EventHandler::ProcessModifyEvents(controller);
@@ -350,6 +360,8 @@ float Controller::Relayouter::GetHeightForWidth(Controller& controller, float wi
     DALI_LOG_INFO(gLogFilter, Debug::Verbose, "<--Controller::GetHeightForWidth cached %f\n", layoutSize.height);
   }
 
+  DALI_TRACE_END(gTraceFilter, "DALI_TEXT_GET_HEIGHT_FOR_WIDTH");
+
   return layoutSize.height;
 }
 
@@ -361,6 +373,7 @@ Controller::UpdateTextType Controller::Relayouter::Relayout(Controller& controll
   TextUpdateInfo&   textUpdateInfo = impl.mTextUpdateInfo;
 
   DALI_LOG_INFO(gLogFilter, Debug::Verbose, "-->Controller::Relayout %p size %f,%f, autoScroll[%s]\n", &controller, size.width, size.height, impl.mIsAutoScrollEnabled ? "true" : "false");
+  DALI_TRACE_BEGIN(gTraceFilter, "DALI_TEXT_RELAYOUT");
 
   UpdateTextType updateTextType = NONE_UPDATED;
 
@@ -377,6 +390,7 @@ Controller::UpdateTextType Controller::Relayouter::Relayout(Controller& controll
 
     // Not worth to relayout if width or height is equal to zero.
     DALI_LOG_INFO(gLogFilter, Debug::Verbose, "<--Controller::Relayout (skipped)\n");
+    DALI_TRACE_END(gTraceFilter, "DALI_TEXT_RELAYOUT");
 
     return updateTextType;
   }
@@ -531,6 +545,7 @@ Controller::UpdateTextType Controller::Relayouter::Relayout(Controller& controll
   // Clear the update info. This info will be set the next time the text is updated.
   textUpdateInfo.Clear();
   DALI_LOG_INFO(gLogFilter, Debug::Verbose, "<--Controller::Relayout\n");
+  DALI_TRACE_END(gTraceFilter, "DALI_TEXT_RELAYOUT");
 
   return updateTextType;
 }
@@ -538,6 +553,7 @@ Controller::UpdateTextType Controller::Relayouter::Relayout(Controller& controll
 bool Controller::Relayouter::DoRelayout(Controller::Impl& impl, const Size& size, OperationsMask operationsRequired, Size& layoutSize)
 {
   DALI_LOG_INFO(gLogFilter, Debug::Verbose, "-->Controller::Relayouter::DoRelayout %p size %f,%f\n", &impl, size.width, size.height);
+  DALI_TRACE_BEGIN(gTraceFilter, "DALI_TEXT_DORELAYOUT");
   bool viewUpdated(false);
 
   // Calculate the operations to be done.
@@ -580,6 +596,8 @@ bool Controller::Relayouter::DoRelayout(Controller::Impl& impl, const Size& size
       DALI_LOG_ERROR("Current text is: %s\n", currentText.c_str());
       DALI_LOG_ERROR("startIndex: %u, lastIndex: %u, requestedNumberOfCharacters: %u, charactersToGlyph.Count = %lu, glyphsPerCharacter.Count = %lu\n", startIndex, lastIndex, requestedNumberOfCharacters, charactersToGlyph.Count(), glyphsPerCharacter.Count());
 
+      DALI_TRACE_END(gTraceFilter, "DALI_TEXT_DORELAYOUT");
+
       return false;
     }
 
@@ -595,6 +613,7 @@ bool Controller::Relayouter::DoRelayout(Controller::Impl& impl, const Size& size
 
       // Nothing else to do if there is no glyphs.
       DALI_LOG_INFO(gLogFilter, Debug::Verbose, "<--Controller::DoRelayout no glyphs, view updated true\n");
+      DALI_TRACE_END(gTraceFilter, "DALI_TEXT_DORELAYOUT");
       return true;
     }
 
@@ -693,6 +712,7 @@ bool Controller::Relayouter::DoRelayout(Controller::Impl& impl, const Size& size
   DALI_LOG_INFO(gLogFilter, Debug::Concise, "Controller::Relayouter::DoRelayout [%p] mImpl->mIsTextDirectionRTL[%s] [%s]\n", &impl, (impl.mIsTextDirectionRTL) ? "true" : "false", currentText.c_str());
 #endif
   DALI_LOG_INFO(gLogFilter, Debug::Verbose, "<--Controller::Relayouter::DoRelayout, view updated %s\n", (viewUpdated ? "true" : "false"));
+  DALI_TRACE_END(gTraceFilter, "DALI_TEXT_DORELAYOUT");
   return viewUpdated;
 }
 
index aaa3911..4a3474b 100644 (file)
@@ -20,6 +20,7 @@
 
 // EXTERNAL INCLUDES
 #include <dali/devel-api/text-abstraction/font-client.h>
+#include <dali/integration-api/trace.h>
 #include <dali/public-api/common/constants.h>
 #include <dali/public-api/math/math-utils.h>
 #include <memory.h>
@@ -41,6 +42,8 @@ namespace Text
 {
 namespace
 {
+DALI_INIT_TRACE_FILTER(gTraceFilter, DALI_TRACE_PERFORMANCE_MARKER, false);
+
 const float HALF(0.5f);
 const float ONE_AND_A_HALF(1.5f);
 
@@ -882,6 +885,7 @@ ViewModel* Typesetter::GetViewModel()
 
 PixelData Typesetter::Render(const Vector2& size, Toolkit::DevelText::TextDirection::Type textDirection, RenderBehaviour behaviour, bool ignoreHorizontalAlignment, Pixel::Format pixelFormat)
 {
+  DALI_TRACE_BEGIN(gTraceFilter, "DALI_TEXT_RENDERING_TYPESETTER");
   // @todo. This initial implementation for a TextLabel has only one visible page.
 
   // Elides the text if needed.
@@ -1071,6 +1075,8 @@ PixelData Typesetter::Render(const Vector2& size, Toolkit::DevelText::TextDirect
   // Create the final PixelData for the combined image buffer
   PixelData pixelData = Devel::PixelBuffer::Convert(imageBuffer);
 
+  DALI_TRACE_END(gTraceFilter, "DALI_TEXT_RENDERING_TYPESETTER");
+
   return pixelData;
 }
 
index 3c6bdf3..64be4ad 100644 (file)
@@ -25,6 +25,7 @@
 #include <dali/devel-api/rendering/texture-devel.h>
 #include <dali/devel-api/text-abstraction/text-abstraction-definitions.h>
 #include <dali/integration-api/debug.h>
+#include <dali/integration-api/trace.h>
 #include <string.h>
 
 // INTERNAL HEADER
@@ -51,6 +52,8 @@ namespace Internal
 {
 namespace
 {
+DALI_INIT_TRACE_FILTER(gTraceFilter, DALI_TRACE_PERFORMANCE_MARKER, false);
+
 const int CUSTOM_PROPERTY_COUNT(5); // anim,premul,size,offset,multicol
 
 const Vector4 FULL_TEXTURE_RECT(0.f, 0.f, 1.f, 1.f);
@@ -660,6 +663,8 @@ void TextVisual::AddRenderer(Actor& actor, const Vector2& size, bool hasMultiple
   Shader shader = GetTextShader(mFactoryCache, TextVisualShaderFeature::FeatureBuilder().EnableMultiColor(hasMultipleTextColors).EnableEmoji(containsColorGlyph).EnableStyle(styleEnabled).EnableOverlay(isOverlayStyle));
   mImpl->mRenderer.SetShader(shader);
 
+  DALI_TRACE_BEGIN(gTraceFilter, "DALI_TEXT_VISUAL_UPDATE_RENDERER");
+
   // Get the maximum size.
   const int maxTextureSize = Dali::GetMaxTextureSize();
 
@@ -789,6 +794,8 @@ void TextVisual::AddRenderer(Actor& actor, const Vector2& size, bool hasMultiple
       }
     }
   }
+
+  DALI_TRACE_END(gTraceFilter, "DALI_TEXT_VISUAL_UPDATE_RENDERER");
 }
 
 TextureSet TextVisual::GetTextTexture(const Vector2& size)