Commit Graph

177 Commits

Author SHA1 Message Date
Behdad Esfahbod 350f3a02ce [ft] Add hb_ft_face_create_referenced() and hb_ft_font_create_referenced()
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
45fd9424c7, which make face destroy access
font tables.

Now, I fixed that issue in 395b35903e 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
2014-12-28 17:59:28 -08:00
Behdad Esfahbod 9a3b74884b Remove redundant check for FT_Face_GetCharVariantIndex
We require FreeType >= 2.8.3.  This symbol was introduced earlier
than that.
2014-12-28 17:27:39 -08:00
Behdad Esfahbod 1226b2e930 Fix FreeType version check 2014-12-28 17:04:23 -08:00
Behdad Esfahbod 66e37409b3 0.9.37 2014-12-17 12:09:17 -08:00
Behdad Esfahbod c0e95abc5f 0.9.36 2014-11-20 14:42:24 -08:00
Behdad Esfahbod cd5a1149d9 0.9.35 2014-08-13 12:43:34 -04:00
Behdad Esfahbod 91c2c0fd2b 0.9.34 2014-08-02 19:24:55 -04:00
Behdad Esfahbod 8c1bdb46fa 0.9.33 2014-07-22 18:02:11 -04:00
Behdad Esfahbod 66f30915b1 0.9.32 2014-07-17 16:05:47 -04:00
Behdad Esfahbod a18897f87c 0.9.31 2014-07-16 16:02:15 -04:00
Behdad Esfahbod ea001374b8 0.9.30 2014-07-09 17:41:09 -04:00
Behdad Esfahbod 824d00dce4 Fix commit 3f38c1137b
Previous commit was not compiling with clang.
2014-06-09 14:17:33 -04:00
Behdad Esfahbod 3f38c1137b Don't use -mstructure-size-boundary=8 on clang arm
As in building for Android / iPhone.  Only set it if
struct{char} alignment is not 1.

NOT tested on an actual Arm architecture.  Guess we'll know
when this makes it to people's build bots.
2014-06-06 16:03:40 -04:00
Behdad Esfahbod 5875ad9c46 0.9.29 2014-05-29 15:48:16 -04:00
Behdad Esfahbod 79ecdc3f95 0.9.28 2014-04-28 14:30:44 -07:00
Behdad Esfahbod 50a00535cc Require gobject-introspection 1.34.0
Fixes https://bugs.freedesktop.org/show_bug.cgi?id=75384
2014-04-10 16:03:29 -07:00
Konstantin Ritt b96af03c20 Fix build with --coretext on iOS
On iOS CoreText and CoreGraphics are stand-alone frameworks
2014-03-21 10:29:34 -07:00
Dominik Röttsches ba8c9d9293 0.9.27 2014-03-18 10:07:01 -07:00
Behdad Esfahbod bb8ffb581b Use AM_MISSING_PROG for ragel and git 2014-03-04 13:03:51 -08:00
Behdad Esfahbod 189bf23bfc 0.9.26 2014-01-30 15:14:58 -05:00
Konstantin Ritt c9522de233 Make it possible to disable the fallback shaper at configure time
The OT shaper supersedes the fallback shaper in every case
and the latter become an extra weight for 99.9% of users.
2014-01-28 11:13:53 -05:00
Behdad Esfahbod 2646aec1e6 Drop required automake version back to 1.11.3
Work around broken automake-1.13 changes.
2013-12-05 18:19:35 -05:00
Behdad Esfahbod 860fc9aa7b 0.9.25 2013-12-04 20:10:27 -05:00
Behdad Esfahbod d913f98d88 Require automake 1.13
Fix tests build.

https://bugs.freedesktop.org/show_bug.cgi?id=71353
2013-12-04 19:59:48 -05:00
Behdad Esfahbod 6300694f6e 0.9.24 2013-11-13 14:54:07 -05:00
Behdad Esfahbod dce79c2bd7 0.9.23 2013-10-28 20:26:40 +01:00
Behdad Esfahbod 2e990a3d72 Make "make distcheck" happy 2013-10-28 20:23:07 +01:00
Behdad Esfahbod e152d1a278 0.9.22 2013-10-03 15:09:37 -04:00
Behdad Esfahbod b61f97d544 0.9.21 2013-09-16 22:07:22 -04:00
Behdad Esfahbod a2a28235e8 [gtk-doc] Generate version.xml from configure
Even though this is not what autoconf recommends, it reduces doc
rebuilds when version doesn't change but configure changes.
2013-08-30 19:38:47 -04:00
Behdad Esfahbod ac1b723917 Remove hb-old and hb-icu-le test shapers
They've been disabled for a while and no one cared.  We're past
the point to need them for testing, and if we ever need to
resurrect them again, well, they're in git graveyard somewhere.
2013-08-30 19:32:10 -04:00
Behdad Esfahbod f730b5d1e2 0.9.20 2013-08-29 16:17:07 -04:00
Behdad Esfahbod 79d754efee Fix build 2013-08-28 13:43:35 -04:00
Behdad Esfahbod 71ef22b04d Turn hb-gobject, and introspection off by default
Also enable bootstrapping without them.
2013-08-28 12:52:55 -04:00
Behdad Esfahbod 71439a8c7a [gobject] Flesh out hb-gobject
Move it to new harfbuzz-gobject library.  Implement enums and
boxed types for object-types.  Still have to do boxed types for
value types.
2013-08-28 12:38:37 -04:00
Behdad Esfahbod 23027f7611 [introspection] Enable gobject-introspection again 2013-08-28 12:38:37 -04:00
Anthony Carrico f7c72b42ef [gtk-doc] Initial setup
Initial setup of gtk-doc. Straight forward setup following the gtk-doc
instructions. Ignore some troublesome types in src/hb-gobject.h. To
build use "./autogen.sh --enable-gtk-doc" then "make". Docs are in
harfbuzz/docs/reference/html/index.html.
2013-08-26 17:32:30 -04:00
Behdad Esfahbod 8ac2e88def [uniscribe] Use unique font name
When installing per-process fonts using AddFontMemResourceEx(),
if a font with the same family name is already installed, sometimes
that one gets used.  Which is problematic for us.  As such, we
now mangle the font to install a new 'name' table with a unique
name, which we then use to choose the font.

Patch from Jonathan Kew.
2013-07-21 17:17:44 -04:00
Behdad Esfahbod 2b78d67e9f 0.9.19 2013-07-16 16:06:27 -04:00
Behdad Esfahbod 570bcccd3f Fix PKG_CHECK_MODULES usage
Oops.

Bug 65246 - Fix build without graphite2
2013-06-10 13:57:25 -04:00
Behdad Esfahbod 270cfd7a9c Fix PKG_CHECK_MODULES usage
Bug 65246 - Fix build without graphite2

If we don't provide ACTION-IF-NOT-FOUND, configure aborts if it can't
find the libraries.  We handle that ourselves so we don't want the
macro to abort.
2013-06-06 18:57:15 -04:00
Behdad Esfahbod 4014aa4e53 0.9.18 2013-05-28 17:28:59 -04:00
Behdad Esfahbod 22ce096174 Generate harfbuzz-icu.pc
Currently it only works with ICU that has .pc files.  I'll
wait till someone complains before fixing it for icu-config
systems.
2013-05-28 17:18:30 -04:00
Behdad Esfahbod 2a17f9568d Bug 55494 - ScriptItemizeOpenType doesn't exists under Windows XP
Fallback to older API if OpenType variants are not available.
2013-05-28 13:13:46 -04:00
Behdad Esfahbod f8087ffbad Add --with-cairo 2013-05-27 19:44:26 -04:00
Behdad Esfahbod 82eddfe5d6 Add --with-freetype
Defaults to auto.
2013-05-27 19:33:36 -04:00
Behdad Esfahbod 5e25eb77a4 Default glib to auto again 2013-05-27 19:30:48 -04:00
Behdad Esfahbod eb63e786f3 Add --with-coretext
Defaults to no.
2013-05-27 19:29:09 -04:00
Behdad Esfahbod ab2af17bc6 Add --with-uniscribe
Defaults to no.
2013-05-27 19:27:43 -04:00
Behdad Esfahbod 58db2c2542 Disable UCDN if glib is available
We only want UCDN if we don't have any other Unicode provider.
I'm going to remove ICU from the list of default Unicode providers
as part of moving hb-icu into its own library.  As such, the only
providers will be UCDN and glib.
2013-05-27 19:10:33 -04:00