Re: OpenType font variations and cairo

Adrian Johnson <[email protected]>
Newsgroups gmane.comp.lib.cairo
Message-ID <[email protected]>
On 29/09/17 08:31, Behdad Esfahbod wrote:
> On Thu, Sep 28, 2017 at 6:09 PM, Adrian Johnson <[email protected]
> <mailto:[email protected]>> wrote:
> 
>     On 29/09/17 06:06, Matthias Clasen wrote:
>     I pulled your latest changes and tested with various combinations of
>     freetype and fontconfig - see below. All good on the cairo side, except
>     for the build fail with FT 2.6.3 but I mentioned that needs fixing in my
>     review comments.
> 
>     There appears to be a bug in fontconfig master when using freetype 2.8.
> 
>     If you cleanup and rebase your commits to master with all review
>     comments addressed, I'll do a final check and then it should be good to
>     commit.
> 
> 
> Thanks Adrian for all the help.
> 
>     freetype 2.6.3: build failed - FT_Get_Var_Design_Coordinates not found
> 
>     freetype 2.8, fontconfig 2.11.0 : pass
> 
>     freetype 2.8, fontconfig 2.12.5 : pass
> 
>     freetype 2.8, fontconfig master :
> 
>     When running the fc-cache built from master I get:
>       fc-cache: fcfreetype.c:2143: IA__FcFreeTypeQueryAll: Assertion
>       `mm_var' failed.
> 
>     fc-cache succeeds after removing AdobeVFPrototype.ttf from ~/.fonts
> 
>     I tried again with AdobeVFPrototype.otf. fc-cache ran successfully and
>     the cairo test passed.
> 
> 
> Humm.  This sounds very much like what might happen with old FreeType .
> If not, can you elaborate what happens again?  Can you reproduce?  What
> FreeType exactly?   Does `fc-query AdobeVFPrototype.ttf` work?

FreeType 2.8.0. I can reproduce. fc-query AdobeVFPrototype.ttf also
produces the same error.

I looked into it and it seems to be the same problem Matthias fixed in
a827d7e515c7c. I applied a similar patch to fontconfig (see attached)
and fc-cache and fc-query now work.


> 
> I can probably replace assert with a less harsh mode of failure.
> 
>  
> 
>     freetype 2.8.1, fontconfig 2.11.0 : pass
> 
>     freetype 2.8.1, fontconfig 2.12.5 : pass
> 
>     freetype 2.8.1, fontconfig master : pass
> 
>     freetype master, fontconfig master : pass
> 
> 
> 
> 
> 
> 
> 
> 
> -- 
> behdad
> http://behdad.org/
> 
>

-- 
cairo mailing list
[email protected]
https://lists.cairographics.org/mailman/listinfo/cairo
fc.diff (text/x-patch, 466 B)
diff --git a/src/fcfreetype.c b/src/fcfreetype.c
index cddd3a1..f8c81ee 100644
--- a/src/fcfreetype.c
+++ b/src/fcfreetype.c
@@ -2139,7 +2139,10 @@ FcFreeTypeQueryAll(const FcChar8	*file,
     num_instances = face->style_flags >> 16;
     if (num_instances && (!index_set || instance_num))
     {
-	FT_Get_MM_Var (face, &mm_var);
+	FT_Error ret;
+	ret = FT_Get_MM_Var (face, &mm_var);
+	if (ret != 0)
+	    FT_Get_MM_Var (face, &mm_var);
 	assert (mm_var);
     }
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.