Announcement

Collapse
No announcement yet.

HarfBuzz 2.0 Released For Advancing Open-Source Text Shaping

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • HarfBuzz 2.0 Released For Advancing Open-Source Text Shaping

    Phoronix: HarfBuzz 2.0 Released For Advancing Open-Source Text Shaping

    The HarfBuzz open-source text shaping library that is used by GNOME, KDE, Firefox, LibreOffice, Chrome OS, Java, and countless other desktop applications has reached version 2.0...

    Phoronix, Linux Hardware Reviews, Linux hardware benchmarks, Linux server benchmarks, Linux benchmarking, Desktop Linux, Linux performance, Open Source graphics, Linux How To, Ubuntu benchmarks, Ubuntu hardware, Phoronix Test Suite

  • #2
    For anyone wondering:

    Originally posted by Wikipedia
    Apple Advanced Typography (AAT) is Apple Inc.'s computer software for advanced font rendering, supporting internationalization and complex features for typographers, a successor to Apple's little-used QuickDraw GX font technology of the mid-1990s. It is a set of extensions to the TrueType outline font standard, with smartfont features similar to the OpenType font format that was developed by Adobe and Microsoft, and the open source Graphite. It also incorporates concepts from Adobe's "multiple master" font format, allowing for axes of traits to be defined and morphing of a glyph independently along each of these axes. AAT font features do not alter the underlying typed text; they only affect the characters' representation during glyph conversion.

    Comment


    • #3
      Exciting stuff. I wanted to do a small Rust based HarfBuzz-Vulkan demo these days but it's good that I waited before these breaking changes came.

      Comment


      • #4
        I thought it was great and wanted to use it in one of my projects, until i found out what it depends on.

        ldd /usr/lib64/libharfbuzz.so
        linux-vdso.so.1 (0x00007fffe4ccc000)
        libm.so.6 => /lib64/libm.so.6 (0x00007f490c79e000)
        libglib-2.0.so.0 => /usr/lib64/libglib-2.0.so.0 (0x00007f490c488000)
        libfreetype.so.6 => /usr/lib64/libfreetype.so.6 (0x00007f490c1d4000)
        libc.so.6 => /lib64/libc.so.6 (0x00007f490bdea000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f490cb39000)
        libpcre.so.1 => /lib64/libpcre.so.1 (0x00007f490bb78000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f490b959000)
        libbz2.so.1 => /lib64/libbz2.so.1 (0x00007f490b749000)
        libpng16.so.16 => /usr/lib64/libpng16.so.16 (0x00007f490b516000)
        libz.so.1 => /lib64/libz.so.1 (0x00007f490b2ff000)


        Yea.. I just want to render some text, thx.

        Comment


        • #5
          Originally posted by gens View Post
          I thought it was great and wanted to use it in one of my projects, until i found out what it depends on.

          ldd /usr/lib64/libharfbuzz.so
          linux-vdso.so.1 (0x00007fffe4ccc000)
          libm.so.6 => /lib64/libm.so.6 (0x00007f490c79e000)
          libglib-2.0.so.0 => /usr/lib64/libglib-2.0.so.0 (0x00007f490c488000)
          libfreetype.so.6 => /usr/lib64/libfreetype.so.6 (0x00007f490c1d4000)
          libc.so.6 => /lib64/libc.so.6 (0x00007f490bdea000)
          /lib64/ld-linux-x86-64.so.2 (0x00007f490cb39000)
          libpcre.so.1 => /lib64/libpcre.so.1 (0x00007f490bb78000)
          libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f490b959000)
          libbz2.so.1 => /lib64/libbz2.so.1 (0x00007f490b749000)
          libpng16.so.16 => /usr/lib64/libpng16.so.16 (0x00007f490b516000)
          libz.so.1 => /lib64/libz.so.1 (0x00007f490b2ff000)


          Yea.. I just want to render some text, thx.
          Which of these dependencies do you think are weird? I see nothing excessive.

          Comment


          • #6
            Originally posted by JonathanM View Post

            Which of these dependencies do you think are weird? I see nothing excessive.
            Glib and pcre.

            Note that freetype is a dependency, and ldd includes dependencies of dependencies. Libpng i can understand-ish, as, idk, it's probably used by formats. Libz is used by libpng, as png is mostly DEFLATE, and bz2 is maybe from them as well. Pthread.. ok.. Libm.. i can see being used. But pcre, and i may be wrong but, i don't see the use for. And glib especially. Usually when i see something using glib, that is not a GTK program, it is only for a hashtable.

            Funny that libfreetype also pulls in libharfbuzz as a dependency on my computer. Idk how they fit together, but i found it funny.

            For my project i don't want many dependencies, so i went with the stb header-only libraries. They work fine. And i control the fonts used so there's no problem there either. I need to convert a font to a picture and coordinates/sizes/whatevertheotherfittingthingiscalled, nothing else.

            EDIT:
            For those who don't know, OpenType and TrueType fonts are ultimately Bezier curves.
            Last edited by gens; 19 October 2018, 11:02 AM.

            Comment


            • #7
              Originally posted by gens View Post

              Glib and pcre.

              Note that freetype is a dependency, and ldd includes dependencies of dependencies. Libpng i can understand-ish, as, idk, it's probably used by formats. Libz is used by libpng, as png is mostly DEFLATE, and bz2 is maybe from them as well. Pthread.. ok.. Libm.. i can see being used. But pcre, and i may be wrong but, i don't see the use for. And glib especially. Usually when i see something using glib, that is not a GTK program, it is only for a hashtable.

              Funny that libfreetype also pulls in libharfbuzz as a dependency on my computer. Idk how they fit together, but i found it funny.

              For my project i don't want many dependencies, so i went with the stb header-only libraries. They work fine. And i control the fonts used so there's no problem there either. I need to convert a font to a picture and coordinates/sizes/whatevertheotherfittingthingiscalled, nothing else.

              EDIT:
              For those who don't know, OpenType and TrueType fonts are ultimately Bezier curves.
              And libpng.

              Comment


              • #8
                Originally posted by gens View Post
                Glib and pcre (...)
                What cave do you live in that glib is such a horrible thing to have on your system?

                Comment


                • #9
                  Yeah, FreeType and HarfBuzz are circularly-dependent. I think HarfBuzz needs FreeType to know what fonts are available, and FreeType needs HarfBuzz to apply fancy shaping and such.

                  Comment


                  • #10
                    Originally posted by cl333r View Post
                    What cave do you live in that glib is such a horrible thing to have on your system?
                    Why do you desire bloat? It really makes no sense to depend on 14 megabytes of crap if you only need a hash table.

                    Comment

                    Working...
                    X