From: Paul Wisbey
Date: Sat, 2 May 2015 12:40:22 +0000 (+0100)
Subject: More Text related logging & clean-up
X-Git-Tag: accepted/tizen/common/20150512.125104~7^2
X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F54%2F38954%2F8;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git
More Text related logging & clean-up
Change-Id: If565d84d0543cdbc8e80c8c8a0f9e4ae16f2fe89
---
diff --git a/dali-toolkit/internal/controls/text-controls/text-field-impl.cpp b/dali-toolkit/internal/controls/text-controls/text-field-impl.cpp
index abefb7f..ec6f12d 100644
--- a/dali-toolkit/internal/controls/text-controls/text-field-impl.cpp
+++ b/dali-toolkit/internal/controls/text-controls/text-field-impl.cpp
@@ -987,7 +987,7 @@ bool TextField::OnKeyEvent( const KeyEvent& event )
ImfManager::ImfCallbackData TextField::OnImfEvent( Dali::ImfManager& imfManager, const ImfManager::ImfEventData& imfEvent )
{
- DALI_LOG_INFO( gLogFilter, Debug::Verbose, "TextField::OnImfEvent %p eventName %d\n", imfEvent.eventName );
+ DALI_LOG_INFO( gLogFilter, Debug::Verbose, "TextField::OnImfEvent %p eventName %d\n", mController.Get(), imfEvent.eventName );
bool update( false );
@@ -1080,7 +1080,7 @@ void TextField::EnableClipping( bool clipping, const Vector2& size )
void TextField::KeyboardStatusChanged(bool keyboardShown)
{
- DALI_LOG_INFO( gLogFilter, Debug::Verbose, "TextField::KeyboardStatusChanged %p keyboardShown %d\n", keyboardShown );
+ DALI_LOG_INFO( gLogFilter, Debug::Verbose, "TextField::KeyboardStatusChanged %p keyboardShown %d\n", mController.Get(), keyboardShown );
// Just hide the grab handle when keyboard is hidden.
if (!keyboardShown )
diff --git a/dali-toolkit/internal/text/character-set-conversion.cpp b/dali-toolkit/internal/text/character-set-conversion.cpp
index 3afecbb..b1b9993 100644
--- a/dali-toolkit/internal/text/character-set-conversion.cpp
+++ b/dali-toolkit/internal/text/character-set-conversion.cpp
@@ -211,6 +211,17 @@ uint32_t Utf32ToUtf8( const uint32_t* const utf32, uint32_t numberOfCharacters,
return utf8 - utf8Begin;
}
+void Utf32ToUtf8( const uint32_t* const utf32, uint32_t numberOfCharacters, std::string& utf8 )
+{
+ utf8.clear();
+
+ uint32_t numberOfBytes = GetNumberOfUtf8Bytes( &utf32[0], numberOfCharacters );
+ utf8.resize( numberOfBytes );
+
+ // This is a bit horrible but std::string returns a (signed) char*
+ Utf32ToUtf8( utf32, numberOfCharacters, reinterpret_cast(&utf8[0]) );
+}
+
} // namespace Toolkit
} // namespace Dali
diff --git a/dali-toolkit/internal/text/character-set-conversion.h b/dali-toolkit/internal/text/character-set-conversion.h
index 7a62498..19784fb 100644
--- a/dali-toolkit/internal/text/character-set-conversion.h
+++ b/dali-toolkit/internal/text/character-set-conversion.h
@@ -20,6 +20,7 @@
// EXTERNAL INCLUDES
#include
+#include
// INTERNAL INCLUDES
#include
@@ -76,6 +77,15 @@ uint32_t Utf8ToUtf32( const uint8_t* const utf8, uint32_t length, uint32_t* utf3
*/
uint32_t Utf32ToUtf8( const uint32_t* const utf32, uint32_t numberOfCharacters, uint8_t* utf8 );
+/**
+ * @brief Converts a text array encoded in UTF32 into a text array encoded in UTF8.
+ *
+ * @param[in] utf32 The pointer to the UTF32 array.
+ * @param[in] numberOfCharacters The number of characters of the UTF32 array.
+ * @param[out] utf8 The UTF8 characters will be stored here.
+ */
+void Utf32ToUtf8( const uint32_t* const utf32, uint32_t numberOfCharacters, std::string& utf8 );
+
} // namespace Toolkit
} // namespace Dali
diff --git a/dali-toolkit/internal/text/rendering/atlas/text-atlas-renderer.cpp b/dali-toolkit/internal/text/rendering/atlas/text-atlas-renderer.cpp
index 6453f9a..9e8a3fa 100644
--- a/dali-toolkit/internal/text/rendering/atlas/text-atlas-renderer.cpp
+++ b/dali-toolkit/internal/text/rendering/atlas/text-atlas-renderer.cpp
@@ -29,9 +29,6 @@
#include
#include
#include
-#if defined(DEBUG_ENABLED)
-Debug::Filter* gLogFilter = Debug::Filter::New(Debug::Concise, true, "LOG_TEXT_ATLAS_RENDERER");
-#endif
using namespace Dali;
using namespace Dali::Toolkit;
@@ -39,6 +36,10 @@ using namespace Dali::Toolkit::Text;
namespace
{
+#if defined(DEBUG_ENABLED)
+ Debug::Filter* gLogFilter = Debug::Filter::New(Debug::Concise, true, "LOG_TEXT_RENDERING");
+#endif
+
const float ZERO( 0.0f );
const float HALF( 0.5f );
const float ONE( 1.0f );
@@ -684,6 +685,8 @@ struct AtlasRenderer::Impl : public ConnectionTracker
Text::RendererPtr AtlasRenderer::New()
{
+ DALI_LOG_INFO( gLogFilter, Debug::Verbose, "Text::AtlasRenderer::New()\n" );
+
return Text::RendererPtr( new AtlasRenderer() );
}
diff --git a/dali-toolkit/internal/text/rendering/basic/text-basic-renderer.cpp b/dali-toolkit/internal/text/rendering/basic/text-basic-renderer.cpp
index dc6ec3e..68ba70c 100644
--- a/dali-toolkit/internal/text/rendering/basic/text-basic-renderer.cpp
+++ b/dali-toolkit/internal/text/rendering/basic/text-basic-renderer.cpp
@@ -18,12 +18,15 @@
// CLASS HEADER
#include
-// INTERNAL INCLUDES
+// EXTERNAL INCLUDES
#include
#include
#include
#include
#include
+#include
+
+// INTERNAL INCLUDES
#include
#include
@@ -35,6 +38,10 @@ using namespace Dali::Toolkit::Text;
namespace
{
+#if defined(DEBUG_ENABLED)
+ Debug::Filter* gLogFilter = Debug::Filter::New(Debug::Concise, true, "LOG_TEXT_RENDERING");
+#endif
+
const std::size_t PADDING = 2; //< To avoid GL filtering artefacts
struct TextureCoordinates
@@ -330,6 +337,8 @@ struct BasicRenderer::Impl
Text::RendererPtr BasicRenderer::New()
{
+ DALI_LOG_INFO( gLogFilter, Debug::Verbose, "Text::BasicRenderer::New()\n" );
+
return Text::RendererPtr( new BasicRenderer() );
}
diff --git a/dali-toolkit/internal/text/segmentation.cpp b/dali-toolkit/internal/text/segmentation.cpp
index efac834..d89a935 100644
--- a/dali-toolkit/internal/text/segmentation.cpp
+++ b/dali-toolkit/internal/text/segmentation.cpp
@@ -20,6 +20,25 @@
// EXTERNAL INCLUDES
#include
+#ifdef DEBUG_ENABLED
+#include
+#include
+#endif
+
+// INTERNAL INCLUDES
+#ifdef DEBUG_ENABLED
+#include
+#endif
+
+namespace
+{
+
+#if defined(DEBUG_ENABLED)
+ Debug::Filter* gLogFilter = Debug::Filter::New(Debug::Concise, true, "LOG_TEXT_SEGMENTATION");
+#endif
+
+} // namespace
+
namespace Dali
{
@@ -46,6 +65,23 @@ void SetLineBreakInfo( const Vector& text,
TextAbstraction::Segmentation::Get().GetLineBreakPositions( text.Begin(),
numberOfCharacters,
lineBreakInfo.Begin() );
+#ifdef DEBUG_ENABLED
+ if( gLogFilter->IsEnabledFor(Debug::Verbose) )
+ {
+ std::string utf8;
+ Utf32ToUtf8( text.Begin(), numberOfCharacters, utf8 );
+
+ std::string info;
+ info.reserve( numberOfCharacters );
+ for( unsigned int i=0; i('0' + lineBreakInfo[i]) );
+ }
+
+ DALI_LOG_INFO( gLogFilter, Debug::Verbose, "SetLineBreakInfo Characters: %s\n", utf8.c_str() );
+ DALI_LOG_INFO( gLogFilter, Debug::Verbose, "SetLineBreakInfo Break info: %s\n", info.c_str() );
+ }
+#endif
}
void ReplaceLineBreakInfo( LogicalModel& model,
@@ -71,6 +107,23 @@ void SetWordBreakInfo( const Vector& text,
TextAbstraction::Segmentation::Get().GetWordBreakPositions( text.Begin(),
numberOfCharacters,
wordBreakInfo.Begin() );
+#ifdef DEBUG_ENABLED
+ if( gLogFilter->IsEnabledFor(Debug::Verbose) )
+ {
+ std::string utf8;
+ Utf32ToUtf8( text.Begin(), numberOfCharacters, utf8 );
+
+ std::string info;
+ info.reserve( numberOfCharacters );
+ for( unsigned int i=0; i('0' + wordBreakInfo[i]) );
+ }
+
+ DALI_LOG_INFO( gLogFilter, Debug::Verbose, "SetWordBreakInfo Characters: %s\n", utf8.c_str() );
+ DALI_LOG_INFO( gLogFilter, Debug::Verbose, "SetWordBreakInfo Break info: %s\n", info.c_str() );
+ }
+#endif
}
void ReplaceWordBreakInfo( LogicalModel& model,
diff --git a/dali-toolkit/internal/text/text-controller-impl.cpp b/dali-toolkit/internal/text/text-controller-impl.cpp
index 00c666e..c50b753 100644
--- a/dali-toolkit/internal/text/text-controller-impl.cpp
+++ b/dali-toolkit/internal/text/text-controller-impl.cpp
@@ -245,7 +245,7 @@ void Controller::Impl::UpdateModel( OperationsMask operationsRequired )
Vector& utf32Characters = mLogicalModel->mText;
- const Length numberOfCharacters = mLogicalModel->GetNumberOfCharacters();
+ const Length numberOfCharacters = utf32Characters.Count();
Vector& lineBreakInfo = mLogicalModel->mLineBreakInfo;
if( GET_LINE_BREAKS & operations )
diff --git a/dali-toolkit/internal/text/text-controller.cpp b/dali-toolkit/internal/text/text-controller.cpp
index 99bed83..61ca6e0 100644
--- a/dali-toolkit/internal/text/text-controller.cpp
+++ b/dali-toolkit/internal/text/text-controller.cpp
@@ -128,12 +128,7 @@ void Controller::GetText( std::string& text ) const
if( 0u != utf32Characters.Count() )
{
- uint32_t numberOfBytes = GetNumberOfUtf8Bytes( &utf32Characters[0], utf32Characters.Count() );
-
- text.resize( numberOfBytes );
-
- // This is a bit horrible but std::string returns a (signed) char*
- Utf32ToUtf8( &utf32Characters[0], utf32Characters.Count(), reinterpret_cast(&text[0]) );
+ Utf32ToUtf8( &utf32Characters[0], utf32Characters.Count(), text );
}
}
else
@@ -464,6 +459,8 @@ Vector3 Controller::GetNaturalSize()
if( mImpl->mRecalculateNaturalSize )
{
+ DALI_LOG_INFO( gLogFilter, Debug::Verbose, "-->Controller::GetNaturalSize\n" );
+
// Operations that can be done only once until the text changes.
const OperationsMask onlyOnceOperations = static_cast( CONVERT_TO_UTF32 |
GET_SCRIPTS |
@@ -497,10 +494,14 @@ Vector3 Controller::GetNaturalSize()
mImpl->mVisualModel->SetNaturalSize( naturalSize.GetVectorXY() );
mImpl->mRecalculateNaturalSize = false;
+
+ DALI_LOG_INFO( gLogFilter, Debug::Verbose, "<--Controller::GetNaturalSize calculated %f,%f,%f\n", naturalSize.x, naturalSize.y, naturalSize.z );
}
else
{
naturalSize = mImpl->mVisualModel->GetNaturalSize();
+
+ DALI_LOG_INFO( gLogFilter, Debug::Verbose, "Controller::GetNaturalSize cached %f,%f,%f\n", naturalSize.x, naturalSize.y, naturalSize.z );
}
return naturalSize;
@@ -552,7 +553,7 @@ float Controller::GetHeightForWidth( float width )
bool Controller::Relayout( const Size& size )
{
- DALI_LOG_INFO( gLogFilter, Debug::Verbose, "Controller::Relayout %p --> size %f,%f\n", this, size.width, size.height );
+ DALI_LOG_INFO( gLogFilter, Debug::Verbose, "-->Controller::Relayout %p size %f,%f\n", this, size.width, size.height );
if( ( size.width < Math::MACHINE_EPSILON_1000 ) || ( size.height < Math::MACHINE_EPSILON_1000 ) )
{
@@ -563,7 +564,7 @@ bool Controller::Relayout( const Size& size )
glyphsRemoved = true;
}
// Not worth to relayout if width or height is equal to zero.
- DALI_LOG_INFO( gLogFilter, Debug::Verbose, "Controller::Relayout <-- (skipped)\n" );
+ DALI_LOG_INFO( gLogFilter, Debug::Verbose, "<--Controller::Relayout (skipped)\n" );
return glyphsRemoved;
}
@@ -602,7 +603,7 @@ bool Controller::Relayout( const Size& size )
updated = mImpl->ProcessInputEvents() || updated;
}
- DALI_LOG_INFO( gLogFilter, Debug::Verbose, "Controller::Relayout <--\n" );
+ DALI_LOG_INFO( gLogFilter, Debug::Verbose, "<--Controller::Relayout\n" );
return updated;
}