0025691: Visualization, TKService - fix font corruption on FreeType 2.5.4
authorkgv <kgv@opencascade.com>
Wed, 7 Jan 2015 20:29:06 +0000 (23:29 +0300)
committerbugmaster <bugmaster@opencascade.com>
Thu, 15 Jan 2015 12:12:15 +0000 (15:12 +0300)
src/Font/Font_FTFont.cxx
src/Font/Font_FTFont.hxx

index f4d203b..86000a9 100755 (executable)
@@ -160,7 +160,7 @@ bool Font_FTFont::RenderGlyph (const Standard_Utf32Char theUChar)
 
   FT_Bitmap aBitmap = myFTFace->glyph->bitmap;
   if (aBitmap.pixel_mode != FT_PIXEL_MODE_GRAY
-   || aBitmap.buffer == NULL || aBitmap.width <= 0 || aBitmap.rows <= 0)
+   || aBitmap.buffer == NULL || aBitmap.width == 0 || aBitmap.rows == 0)
   {
     return false;
   }
index 510d36b..f4ba85c 100755 (executable)
@@ -171,11 +171,11 @@ public:
   //! Retrieve glyph bitmap rectangle
   inline void GlyphRect (Font_FTFont::Rect& theRect) const
   {
-    FT_Bitmap aBitmap = myFTFace->glyph->bitmap;
+    const FT_Bitmap& aBitmap = myFTFace->glyph->bitmap;
     theRect.Left   = float(myFTFace->glyph->bitmap_left);
     theRect.Top    = float(myFTFace->glyph->bitmap_top);
-    theRect.Right  = float(myFTFace->glyph->bitmap_left + aBitmap.width);
-    theRect.Bottom = float(myFTFace->glyph->bitmap_top  - aBitmap.rows);
+    theRect.Right  = float(myFTFace->glyph->bitmap_left + (int )aBitmap.width);
+    theRect.Bottom = float(myFTFace->glyph->bitmap_top  - (int )aBitmap.rows);
   }
 
 protected: