1. 08 10月, 2015 1 次提交
    • B
      [ft] API: Add hb_font_[sg]et_load_flags() API · 2a9627c5
      Behdad Esfahbod 提交于
      This changes the default load_flags of fonts created using
      hb_ft_font_create() from NO_HINTING to DEFAULT.  Hope that doesn't
      break too much client code.
      
      Code calling hb_ft_font_set_funcs() is unaffected.
      2a9627c5
  2. 03 9月, 2015 1 次提交
  3. 01 6月, 2015 1 次提交
  4. 19 5月, 2015 1 次提交
  5. 29 1月, 2015 1 次提交
  6. 24 1月, 2015 1 次提交
  7. 05 1月, 2015 1 次提交
  8. 29 12月, 2014 4 次提交
    • B
      [ft] Don't set font ppem · f34aaba8
      Behdad Esfahbod 提交于
      For discussion see:
      
        http://lists.freedesktop.org/archives/harfbuzz/2012-April/001905.html
      
      Over time we have had added NO_HINTING all over the place in hb-ft.  Finish it off.
      Not setting ppem on hb-font disables get_contour_point() calls which is good anyway.
      
      See comments in the commit.
      f34aaba8
    • B
      [ft] Add hb_ft_face_create_referenced() and hb_ft_font_create_referenced() · 350f3a02
      Behdad Esfahbod 提交于
      When I originally wrote hb-ft, FreeType objects did not support reference
      counting.  As such, hb_ft_face_create() and hb_ft_font_create() had a
      "destroy" callback and client was responsible for making sure FT_Face is
      kept around as long as the hb-font/face are alive.
      
      However, since this was not clearly documented, some clienets didn't
      correctly did that.  In particular, some clients assumed that it's safe
      to destroy FT_Face and then hb_face_t.  This, indeed, used to work, until
      45fd9424, which make face destroy access
      font tables.
      
      Now, I fixed that issue in 395b3590 since
      the access was not needed, but the problem remains that not all clients
      handle this correctly.  See:
      
        https://bugs.freedesktop.org/show_bug.cgi?id=86300
      
      Fortunately, FT_Reference_Face() was added to FreeType in 2010, and so we
      can use it now.  Originally I wanted to change hb_ft_face_create() and
      hb_ft_font_create() to reference the face if destroy==NULL was passed in.
      That would improve pretty much all clients, with little undesired effects.
      Except that FreeType itself, when compiled with HarfBuzz support, calls
      hb_ft_font_create() with destroy==NULL and saves the resulting hb-font on
      the ft-face (why does it not free it immediately?).  Making hb-face
      reference ft-face causes a cycling reference there.  At least, that's my
      current understanding.
      
      At any rate, a cleaner approach, even if it means all clients will need a
      change, is to introduce brand new API.  Which this commit does.
      
      Some comments added to hb-ft.h, hoping to make future clients make better
      choices.
      
      Fixes https://bugs.freedesktop.org/show_bug.cgi?id=75299
      350f3a02
    • B
      Remove redundant check for FT_Face_GetCharVariantIndex · 9a3b7488
      Behdad Esfahbod 提交于
      We require FreeType >= 2.8.3.  This symbol was introduced earlier
      than that.
      9a3b7488
    • B
      [ft] Open blob in READONLY mode · affacf2f
      Behdad Esfahbod 提交于
      HB_MEMORY_MODE_READONLY_MAY_MAKE_WRITABLE is deprecated and fairly
      useless now.
      affacf2f
  9. 03 10月, 2014 1 次提交
  10. 07 8月, 2014 1 次提交
  11. 07 11月, 2013 1 次提交
    • B
      Fix llvm warnings on Mac · 83408cf8
      Behdad Esfahbod 提交于
      Patch from Scott Fleischman.  Warnings were:
      
      harfbuzz/src/hb-font-private.hh:121:42: Implicit conversion loses
      integer precision: 'long long' to 'hb_position_t' (aka 'int')
      harfbuzz/src/hb-font-private.hh:126:42: Implicit conversion loses
      integer precision: 'long long' to 'hb_position_t' (aka 'int')
      harfbuzz/src/hb-font-private.hh:400:85: Implicit conversion loses
      integer precision: 'long long' to 'hb_position_t' (aka 'int')
      harfbuzz/src/hb-ot-layout-common-private.hh:1115:37: Implicit conversion
      loses integer precision: 'long long' to 'int'
      harfbuzz/src/hb-ft.cc:421:97: Implicit conversion loses integer
      precision: 'unsigned long long' to 'int'
      harfbuzz/src/hb-ft.cc:422:97: Implicit conversion loses integer
      precision: 'unsigned long long' to 'int'
      83408cf8
  12. 18 10月, 2013 1 次提交
    • B
      [ft] Round metrics instead of truncate · 755b44cc
      Behdad Esfahbod 提交于
      Lohit-Punjabi has a upem of 769!  We were losing one unit in our
      code, and FreeType is losing another one...  Test with U+0A06.
      Has an advance of 854 in the font.  We were producing 852.
      Now we do 853, which is what FreeType is telling us.
      755b44cc
  13. 14 9月, 2013 1 次提交
  14. 12 7月, 2013 1 次提交
  15. 14 6月, 2013 1 次提交
    • B
      If variation selector is not consumed by cmap, pass it on to GSUB · 79d1007a
      Behdad Esfahbod 提交于
      This changes the semantics of get_glyph() callback and expect that
      callbacks return false if the requested variant is not available, and
      then we will call them back with variation_selector=0 and will retain
      the glyph for the selector in the glyph stream.
      
      Apparently most Mongolian fonts implement the Mongolian Variation
      Selectors using GSUB, not cmap.
      
      https://bugs.freedesktop.org/show_bug.cgi?id=65258
      
      Note that this doesn't fix the Mongolian shaping yet, because the way
      that's implemented is that the, say, 'init' feature ligates the letter
      and the variation-selector.  However, since currently the variation
      selector doesn't have the 'init' mask on, it will not be matched...
      79d1007a
  16. 10 3月, 2013 2 次提交
    • B
      [ft] Remove TODO items that I'm not going to fix · 190e19e6
      Behdad Esfahbod 提交于
      190e19e6
    • B
      [ft] Remove TODO item re FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH · 392ee974
      Behdad Esfahbod 提交于
      That flag is redundant, deprecated, and ignored since April 2011.
      From FreeType git log:
      
      commit 8c82ec5b17d0cfc9b0876a2d848acc207a62a25a
      Author: Behdad Esfahbod <behdad@behdad.org>
      Date:   Thu Apr 21 08:21:37 2011 +0200
      
          Always ignore global advance.
      
          This makes FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH redundant,
          deprecated, and ignored.  The new behavior is what every major user
          of FreeType has been requesting.  Global advance is broken in many
          CJK fonts.  Just ignoring it by default makes most sense.
      
          * src/truetype/ttdriver.c (tt_get_advances),
          src/truetype/ttgload.c (TT_Get_HMetrics, TT_Get_VMetrics,
          tt_get_metrics, compute_glyph_metrics, TT_Load_Glyph),
          src/truetype/ttgload.h: Implement it.
      
          * docs/CHANGES: Updated.
      392ee974
  17. 07 3月, 2013 1 次提交
  18. 30 1月, 2013 1 次提交
  19. 13 11月, 2012 1 次提交
  20. 08 8月, 2012 1 次提交
  21. 13 7月, 2012 1 次提交
  22. 12 7月, 2012 2 次提交
  23. 06 6月, 2012 4 次提交
  24. 28 5月, 2012 1 次提交
  25. 13 4月, 2012 1 次提交
  26. 16 8月, 2011 1 次提交
  27. 15 8月, 2011 2 次提交
  28. 14 8月, 2011 1 次提交
  29. 11 8月, 2011 1 次提交
  30. 09 8月, 2011 2 次提交