Advertisement
Guest User

siyuan

a guest
Mar 28th, 2009
185
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.73 KB | None | 0 0
  1. diff -Naur qt-x11-opensource-src-4.5.0.orig/src/gui/text/qfontengine_ft.cpp qt-x11-opensource-src-4.5.0/src/gui/text/qfontengine_ft.cpp
  2. --- qt-x11-opensource-src-4.5.0.orig/src/gui/text/qfontengine_ft.cpp 2009-02-26 10:09:23.000000000 +1300
  3. +++ qt-x11-opensource-src-4.5.0/src/gui/text/qfontengine_ft.cpp 2009-03-29 14:23:38.624379465 +1300
  4. @@ -60,6 +60,7 @@
  5. #include <ft2build.h>
  6. #include FT_FREETYPE_H
  7. #include FT_OUTLINE_H
  8. +#include FT_SYNTHESIS_H
  9. #include FT_TRUETYPE_TABLES_H
  10. #include FT_TYPE1_TABLES_H
  11. #include FT_GLYPH_H
  12. @@ -605,6 +606,7 @@
  13. cache_cost = 100;
  14. kerning_pairs_loaded = false;
  15. transform = false;
  16. + embolden = false;
  17. antialias = true;
  18. default_load_flags = 0;
  19. default_hint_style = HintNone;
  20. @@ -671,6 +673,9 @@
  21. freetype->matrix = matrix;
  22. if (fake_oblique)
  23. transform = true;
  24. + // fake bold
  25. + if ((fontDef.weight == QFont::Bold) && !(face->style_flags & FT_STYLE_FLAG_BOLD))
  26. + embolden = true;
  27. } else {
  28. // copied from QFontEngineQPF
  29. // ad hoc algorithm
  30. @@ -863,6 +868,7 @@
  31.  
  32. if (set->outline_drawing)
  33. load_flags |= FT_LOAD_NO_BITMAP;
  34. + load_flags |= FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH;
  35.  
  36. if (format == Format_Mono) {
  37. load_target = FT_LOAD_TARGET_MONO;
  38. @@ -896,6 +902,7 @@
  39.  
  40. if (transform)
  41. load_flags |= FT_LOAD_NO_BITMAP;
  42. + load_flags |= FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH;
  43.  
  44. FT_Face face = freetype->face;
  45. FT_Error err = FT_Load_Glyph(face, glyph, load_flags);
  46. @@ -915,6 +922,7 @@
  47. return 0;
  48.  
  49. FT_GlyphSlot slot = face->glyph;
  50. + if (embolden) FT_GlyphSlot_Embolden(slot);
  51. FT_Library library = qt_getFreetype();
  52.  
  53. info.xOff = TRUNC(ROUND(slot->advance.x));
  54. @@ -1176,6 +1184,8 @@
  55. int s = 0;
  56. if ((fontDef.style != QFont::StyleNormal) && !(freetype->face->style_flags & FT_STYLE_FLAG_ITALIC))
  57. s = SynthesizedItalic;
  58. + if ((fontDef.weight == QFont::Bold) && !(freetype->face->style_flags & FT_STYLE_FLAG_BOLD))
  59. + s |= SynthesizedBold;
  60. if (fontDef.stretch != 100 && FT_IS_SCALABLE(freetype->face))
  61. s |= SynthesizedStretch;
  62. return s;
  63. diff -Naur qt-x11-opensource-src-4.5.0.orig/src/gui/text/qfontengine_ft_p.h qt-x11-opensource-src-4.5.0/src/gui/text/qfontengine_ft_p.h
  64. --- qt-x11-opensource-src-4.5.0.orig/src/gui/text/qfontengine_ft_p.h 2009-02-26 10:09:23.000000000 +1300
  65. +++ qt-x11-opensource-src-4.5.0/src/gui/text/qfontengine_ft_p.h 2009-03-29 14:23:38.624379465 +1300
  66. @@ -288,6 +288,7 @@
  67.  
  68. bool antialias;
  69. bool transform;
  70. + bool embolden;
  71. SubpixelAntialiasingType subpixelType;
  72. int lcdFilterType;
  73. bool canUploadGlyphsToServer;
  74.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement