Re: [ft-devel] color framework

2018-12-15 Thread Alexei Podtelezhnikov
On Sat, Dec 15, 2018 at 2:55 PM Behdad Esfahbod  wrote:

>> It is wrong to use
>> FT_LOAD_COLOR in FT_Render_Glyph. There is a way to properly pass all
>> necessary information.to that function.
>
> I understand your desire to encode all info into FT_Outline; but given how 
> much glyphslot is tied to face, I don't think it's a big deal to require face 
> and load layers at render time.

Exactly. Besides FT_GlyphSlot, there is FT_Glyph completely detached
from FT_Face. Those are rendered with FT_Glyph_To_Bitmap, which calls
FT_Render_Glyph_Internal with dummy FT_Face and unaware of
FT_LOAD_COLOR. This works because FT_Render_Glyph does not (did not)
use to dig though FT_Face. Indeed the rendering used to be completely
separate from loading.

FreeType is about to make a major leap into color rendering. It is
possible to make it right while keeping rendering separate. The
current solution is way to specific to COLR/CPAL. What if CFF comes up
with something different? I agree that current FT_Color is too simple.
We can add an index field there to indicate layers explicitly or even
reference gradient colors of SVG fonts.

>> The choice is between a hack and a proper implementation.
>
> Not really.  It's not like glyphslot and face can be used separately.  
> That's, in fact, the biggest problem with FreeType API: that one cannot use 
> FT_Face from multiple threads at the same time, because all uses of it use 
> the embedded glyphslot.

Full circle: is FT_Glyph or rather FT_OutlineGlyph, extracted and
detached by FT_Get_Glyph, of any use?  It is stripped down to bare
bones though.

Thank you for your understanding of my position. Really.

Alexei

___
Freetype-devel mailing list
Freetype-devel@nongnu.org
https://lists.nongnu.org/mailman/listinfo/freetype-devel


Re: [ft-devel] color framework

2018-12-15 Thread Behdad Esfahbod
On Fri, Dec 14, 2018 at 8:25 AM Alexei Podtelezhnikov 
wrote:

> >> > As long as adding FT_LOAD_COLOR will get COLR/CPAL glyphs rendered
> into the bitmap, cairo/Chrome will work fine and I have no problem with
> that.
> >
> >> You started to use unreleased features.
> >
> > FT_LOAD_COLOR has been FreeType public API since 2013.
>
> FT_LOAD_COLOR used to be a loading flag only.


And cairo only uses it that way.


> It is wrong to use
> FT_LOAD_COLOR in FT_Render_Glyph. There is a way to properly pass all
> necessary information.to that function.
>

I understand your desire to encode all info into FT_Outline; but given how
much glyphslot is tied to face, I don't think it's a big deal to require
face and load layers at render time.



> The choice is between a hack and a proper implementation.
>

Not really.  It's not like glyphslot and face can be used separately.
That's, in fact, the biggest problem with FreeType API: that one cannot use
FT_Face from multiple threads at the same time, because all uses of it use
the embedded glyphslot.


> Which is it, Werner?
>


-- 
behdad
http://behdad.org/
___
Freetype-devel mailing list
Freetype-devel@nongnu.org
https://lists.nongnu.org/mailman/listinfo/freetype-devel