[Libreoffice-commits] .: 2 commits - vcl/coretext

Libreoffice Gerrit user logerrit at kemper.freedesktop.org
Tue Jan 29 23:49:38 PST 2013


 vcl/coretext/salcoretextlayout.cxx |  104 ++++++++++++++-----------------------
 vcl/coretext/salcoretextstyle.cxx  |    2 
 2 files changed, 41 insertions(+), 65 deletions(-)

New commits:
commit f3d360e4ca526c4c1e9ca06c7db2e778a6f397fd
Author: Tor Lillqvist <tml at iki.fi>
Date:   Tue Jan 29 23:20:38 2013 +0200

    Cosmetics and more informative SAL_INFO output from InitGIA()
    
    Change-Id: I1d97ba1cc643fb1c940b94e84e348812efae115b

diff --git a/vcl/coretext/salcoretextlayout.cxx b/vcl/coretext/salcoretextlayout.cxx
index 43abcdc..a2c7c04 100644
--- a/vcl/coretext/salcoretextlayout.cxx
+++ b/vcl/coretext/salcoretextlayout.cxx
@@ -186,33 +186,27 @@ void CoreTextLayout::InvalidateMeasurements()
 {
     SAL_INFO( "vcl.coretext.layout", "InvalidateMeasurements(" << this << ")" );
 
-    if(mpGlyphs)
-    {
+    if( mpGlyphs ) {
         delete[] mpGlyphs;
         mpGlyphs = NULL;
     }
-    if(mpChars2Glyphs)
-    {
+    if( mpChars2Glyphs ) {
         delete[] mpChars2Glyphs;
         mpChars2Glyphs = NULL;
     }
-    if(mpGlyphs2Chars)
-    {
+    if( mpGlyphs2Chars ) {
         delete[] mpGlyphs2Chars;
         mpGlyphs2Chars = NULL;
     }
-    if(mpCharWidths)
-    {
+    if( mpCharWidths ) {
         delete[] mpCharWidths;
         mpCharWidths = NULL;
     }
-    if(mpGlyphAdvances)
-    {
+    if( mpGlyphAdvances ) {
         delete[] mpGlyphAdvances;
         mpGlyphAdvances = NULL;
     }
-    if(mpGlyphPositions)
-    {
+    if( mpGlyphPositions ) {
         delete[] mpGlyphPositions;
         mpGlyphPositions = NULL;
     }
@@ -226,7 +220,7 @@ void CoreTextLayout::DrawText( SalGraphics& rGraphics ) const
     SAL_INFO( "vcl.coretext.layout", "DrawText(" << this << ")" );
 
     QuartzSalGraphics& gr = static_cast<QuartzSalGraphics&>(rGraphics);
-    if(mnCharCount <= 0 || !gr.CheckContext())
+    if( mnCharCount <= 0 || !gr.CheckContext() )
         return;
 
     CGContextSaveGState( gr.mrContext );
@@ -242,8 +236,7 @@ void CoreTextLayout::DrawText( SalGraphics& rGraphics ) const
     SAL_INFO( "vcl.coretext.layout", "at pos (" << pos.X() << "," << pos.Y() <<") ctfont=" << mpStyle->GetFont() );
 
     CGFontRef cg_font = CTFontCopyGraphicsFont(mpStyle->GetFont(), NULL);
-    if(!cg_font)
-    {
+    if( !cg_font ) {
         SAL_INFO( "vcl.coretext.layout", "Error cg_font is NULL" );
         return;
     }
@@ -251,13 +244,11 @@ void CoreTextLayout::DrawText( SalGraphics& rGraphics ) const
     CGContextSetFontSize(gr.mrContext, CTFontGetSize(mpStyle->GetFont()));
     CGContextSetTextDrawingMode(gr.mrContext, kCGTextFill);
     CGContextSetShouldAntialias( gr.mrContext, true );
-    if(mpStyle->GetColor())
-    {
+    if( mpStyle->GetColor() ) {
         CGContextSetFillColorWithColor(gr.mrContext, mpStyle->GetColor());
         CGContextSetStrokeColorWithColor(gr.mrContext, mpStyle->GetColor());
     }
-    else
-    {
+    else {
         CGContextSetRGBFillColor(gr.mrContext, 0.0, 0.0, 0.0, 1.0);
     }
     CFRelease(cg_font);
@@ -290,8 +281,7 @@ long CoreTextLayout::FillDXArray( sal_Int32* pDXArray ) const
     float scale = mpStyle->GetFontStretchFactor();
     CGFloat accumulated_width = 0;
 
-    for( int i = 0; i < mnCharCount; ++i )
-    {
+    for( int i = 0; i < mnCharCount; ++i ) {
         // convert and adjust for accumulated rounding errors
         accumulated_width += mpCharWidths[i];
         const long old_width = width;
@@ -309,12 +299,10 @@ bool CoreTextLayout::GetBoundRect( SalGraphics& rGraphics, Rectangle& rVCLRect )
 
     SAL_INFO( "vcl.coretext.layout", "GetBoundRect(" << this << ")" );
 
-    if ( !mbHasBoundRectangle )
-    {
+    if ( !mbHasBoundRectangle ) {
         QuartzSalGraphics& gr = static_cast<QuartzSalGraphics&>(rGraphics);
         CGRect bound_rect = CTLineGetImageBounds( mpLine, gr.mrContext );
-        if ( !CGRectIsNull( bound_rect ) )
-        {
+        if ( !CGRectIsNull( bound_rect ) ) {
             maBoundRectangle = Rectangle(
                 Point( round_to_long(bound_rect.origin.x * mpStyle->GetFontStretchFactor()),
                        round_to_long(bound_rect.origin.y - bound_rect.size.height )),
@@ -335,16 +323,14 @@ void CoreTextLayout::GetCaretPositions( int max_index, sal_Int32* caret_position
     SAL_INFO( "vcl.coretext.layout", "GetCaretPositions(" << this << ",max_index=" << max_index << ")" );
 
     int local_max = max_index < mnCharCount * 2 ? max_index : mnCharCount;
-    for(int i = 0 ; i < max_index - 1; i+=2)
-    {
+    for( int i = 0 ; i < max_index - 1; i+=2 ) {
         CGFloat primary, secondary;
         primary = CTLineGetOffsetForStringIndex(mpLine, i >> 1, &secondary);
         caret_position[i] = round_to_long(mnBaseAdvance + primary);
         caret_position[i+1] = round_to_long(mnBaseAdvance + secondary);
         i += 2;
     }
-    for(int i = local_max ; i < max_index ; ++i)
-    {
+    for( int i = local_max ; i < max_index ; ++i ) {
         caret_position[i] = -1;
     }
 }
@@ -359,22 +345,19 @@ int CoreTextLayout::GetNextGlyphs( int nLen, sal_GlyphId* pGlyphIDs, Point& rPos
 {
     SAL_INFO( "vcl.coretext.layout", "GetNextGlyphs(" << this << ",nLen=" << nLen << ",nStart=" << nStart << ")" );
 
-    if( nStart < 0 )                // first glyph requested?
-    {
+    if( nStart < 0 ) {              // first glyph requested?
         nStart = 0;
         mnCurrentRunIndex = 0;
         mnCurrentGlyphIndex = 0;
         mnCurrentGlyphRunIndex = 0;
     }
-    else if(nStart >= mnGlyphCount)
-    {
+    else if( nStart >= mnGlyphCount ) {
         mnCurrentRunIndex = 0;
         mnCurrentGlyphIndex = 0;
         mnCurrentGlyphRunIndex = 0;
         return 0;
     }
-    if(!mpRuns)
-    {
+    if( !mpRuns ) {
         mpRuns = CTLineGetGlyphRuns(mpLine);
     }
     CFIndex nb_runs = CFArrayGetCount( mpRuns );
@@ -383,21 +366,17 @@ int CoreTextLayout::GetNextGlyphs( int nLen, sal_GlyphId* pGlyphIDs, Point& rPos
 
     int i = 0;
     bool first = true;
-    while(i < nLen)
-    {
-        if(mnCurrentGlyphRunIndex >= nb_glyphs)
-        {
+    while( i < nLen ) {
+        if( mnCurrentGlyphRunIndex >= nb_glyphs ) {
             mnCurrentRunIndex += 1;
-            if(mnCurrentRunIndex >= nb_runs)
-            {
+            if( mnCurrentRunIndex >= nb_runs ) {
                 break;
             }
             run = (CTRunRef)CFArrayGetValueAtIndex( mpRuns, mnCurrentRunIndex );
             nb_glyphs = CTRunGetGlyphCount( run );
             mnCurrentGlyphRunIndex = 0;
         }
-        if(first)
-        {
+        if( first ) {
             CGPoint first_pos;
             CTRunGetPositions(run, CFRangeMake(mnCurrentGlyphRunIndex,1), &first_pos);
             Point pos(first_pos.x, first_pos.y);
@@ -406,12 +385,10 @@ int CoreTextLayout::GetNextGlyphs( int nLen, sal_GlyphId* pGlyphIDs, Point& rPos
             first = false;
         }
         pGlyphIDs[i] = mpGlyphs[mnCurrentGlyphIndex];
-        if(pGlyphAdvances)
-        {
+        if( pGlyphAdvances ) {
             pGlyphAdvances[i] = mpGlyphAdvances[mnCurrentGlyphIndex];
         }
-        if(pCharIndexes)
-        {
+        if( pCharIndexes ) {
             pCharIndexes[i] = mpGlyphs2Chars[mnCurrentGlyphIndex];
         }
         mnCurrentGlyphIndex += 1;
@@ -446,8 +423,7 @@ int CoreTextLayout::GetTextBreak( long nMaxWidth, long nCharExtra, int nFactor )
         ATSUTextMeasurement nATSUSumWidth = 0;
         const ATSUTextMeasurement nATSUMaxWidth = Vcl2Fixed( nMaxWidth / nFactor );
         const ATSUTextMeasurement nATSUExtraWidth = Vcl2Fixed( nCharExtra ) / nFactor;
-        for( int i = 0; i < mnCharCount; ++i )
-        {
+        for( int i = 0; i < mnCharCount; ++i ) {
             nATSUSumWidth += mpCharWidths[i];
             if( nATSUSumWidth >= nATSUMaxWidth )
                 return (mnMinCharPos + i);
@@ -561,8 +537,7 @@ bool CoreTextLayout::InitGIA( ImplLayoutArgs& rArgs ) const
     mpGlyphs = new CGGlyph[ mnGlyphCount ];
     mpCharWidths = new int[ mnCharCount ];
     mpChars2Glyphs = new int[ mnCharCount ];
-    for( int i = 0; i < mnCharCount; ++i)
-    {
+    for( int i = 0; i < mnCharCount; ++i) {
         mpCharWidths[i] = 0.0;
         mpChars2Glyphs[i] = -1;
     }
@@ -574,17 +549,14 @@ bool CoreTextLayout::InitGIA( ImplLayoutArgs& rArgs ) const
     CFIndex nb_runs = CFArrayGetCount( runs );
 
     int p = 0;
-    for( CFIndex i = 0; i < nb_runs; ++i )
-    {
+    for( CFIndex i = 0; i < nb_runs; ++i ) {
         CTRunRef run = (CTRunRef)CFArrayGetValueAtIndex( runs, i );
-        if( run )
-        {
+        if( run ) {
+            std::ostringstream glyph_info_line;
 			CFIndex nb_glyphs = CTRunGetGlyphCount( run );
-            if(nb_glyphs)
-            {
+            if( nb_glyphs ) {
                 CFRange text_range = CTRunGetStringRange( run );
-                if( text_range.location != kCFNotFound && text_range.length > 0 )
-                {
+                if( text_range.location != kCFNotFound && text_range.length > 0 ) {
                     CFIndex indices[ nb_glyphs ];
                     CGGlyph glyphs[ nb_glyphs ];
                     CTRunGetStringIndices( run, CFRangeMake( 0, 0 ), indices );
@@ -592,17 +564,20 @@ bool CoreTextLayout::InitGIA( ImplLayoutArgs& rArgs ) const
                     CTRunGetPositions( run, CFRangeMake( 0, 0 ), &mpGlyphPositions[p] );
                     bool is_vertical_run = false;
                     CFDictionaryRef aDict = CTRunGetAttributes( run );
-                    if ( aDict )
-                    {
+                    if ( aDict ) {
                         const CFBooleanRef aValue = (const CFBooleanRef)CFDictionaryGetValue( aDict, kCTVerticalFormsAttributeName );
                         is_vertical_run =  (aValue == kCFBooleanTrue) ? true : false;
                     }
 
-                    for (CFIndex j = 0 ; j < nb_glyphs; ++p, ++j )
-                    {
+                    for (CFIndex j = 0 ; j < nb_glyphs; ++p, ++j ) {
                         assert ( p < mnGlyphCount );
                         mpGlyphs[ p ] = glyphs[ j ];
-                        // SAL_INFO( "vcl.coretext.layout", "  mpGlyphs[" << p << "]=glyphs[" << j << "]=0x" << std::hex << glyphs[j] << std::dec );
+#ifdef SAL_LOG_INFO
+                        if (j < 7)
+                            glyph_info_line << " " << glyphs[j] << "@(" << mpGlyphPositions[p].x << "," << mpGlyphPositions[p].y << ")";
+                        else if (j == 7)
+                            glyph_info_line << "...";
+#endif
                         CFIndex k = indices[ j ];
                         mpGlyphs2Chars[p] = k;
                         assert( k < mnCharCount );
@@ -619,6 +594,7 @@ bool CoreTextLayout::InitGIA( ImplLayoutArgs& rArgs ) const
                     }
                 }
 			}
+            SAL_INFO( "vcl.coretext.layout", "  run " << run << " glyphs:" << glyph_info_line.str() );
         }
     }
 
commit 8cbf109e7050750632300d0b08ce1592464caa75
Author: Tor Lillqvist <tml at iki.fi>
Date:   Tue Jan 29 23:19:30 2013 +0200

    Fix SAL_INFO output from SetColor()
    
    Change-Id: I65e68de95ff30b74fe7052dc4a7429d49536b564

diff --git a/vcl/coretext/salcoretextstyle.cxx b/vcl/coretext/salcoretextstyle.cxx
index 5f2c15b..7ec73af 100644
--- a/vcl/coretext/salcoretextstyle.cxx
+++ b/vcl/coretext/salcoretextstyle.cxx
@@ -99,7 +99,7 @@ void CoreTextStyleInfo::SetFont(FontSelectPattern* requested_font)
 
 void CoreTextStyleInfo::SetColor(SalColor color)
 {
-    SAL_INFO( "vcl.coretext.style", "SetColor(" << this << ",color={" << SALCOLOR_RED(color) << "," << SALCOLOR_GREEN(color) << "," << SALCOLOR_BLUE(color) << "})" );
+    SAL_INFO( "vcl.coretext.style", "SetColor(" << this << ",color={" << (int)SALCOLOR_RED(color) << "," << (int)SALCOLOR_GREEN(color) << "," << (int)SALCOLOR_BLUE(color) << "})" );
 
     SafeCFRelease(m_color);
 #ifdef IOS


More information about the Libreoffice-commits mailing list