[prev in list] [next in list] [prev in thread] [next in thread] 

List:       cairo
Subject:    Re: [cairo] OpenType font variations and cairo
From:       Adrian Johnson <ajohnson () redneon ! com>
Date:       2017-09-28 23:41:03
Message-ID: 896e37bd-3204-3fc8-b3da-a6c076b0df2a () redneon ! com
[Download RAW message or body]

On 29/09/17 08:31, Behdad Esfahbod wrote:
> On Thu, Sep 28, 2017 at 6:09 PM, Adrian Johnson <ajohnson@redneon.com
> <mailto:ajohnson@redneon.com>> 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/
> 
> 


["fc.diff" (text/x-patch)]

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);
     }
 

[Attachment #4 (text/plain)]

-- 
cairo mailing list
cairo@cairographics.org
https://lists.cairographics.org/mailman/listinfo/cairo

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic