[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [ft-devel] various Type 1 -> CFF issues
From: |
Werner LEMBERG |
Subject: |
Re: [ft-devel] various Type 1 -> CFF issues |
Date: |
Wed, 27 Sep 2017 07:23:08 +0200 (CEST) |
>> * Make the old type 1 driver optional. The file `ftt1drv.h' is
>> talking about a `T1_CONFIG_OPTION_OLD_ENGINE' configuration
>> macro, however, this isn't implemented yet.
>
> I had actually implemented it, but did not commit later on, c.f.
> http://lists.nongnu.org/archive/html/freetype-devel/2017-07/msg00010.html
Ah, ok.
> I had decided that since the new engine incurs so much overhead it
> would not be good to use it for scanning advance widths. The old
> routine rightly does not initialise any of the glyph rendering
> objects, but it would take considerable changes to the new engine to
> do the same, which I felt was not worth it.
Mhmm. Getting advance widths quickly is something quite important, I
believe.
> I could extract the advance width processing from the old
> interpreter into a separate function, which gets always compiled in,
> with the rest switched by the macro.
Please proceed! I think it would be good to isolate the old Type1
engine as much as possible.
>> * Implement the `hinting-engine' property for the `type1' module.
>>
>> * `FT_PARAM_TAG_RANDOM_SEED' is defined twice (in `ftt1drv.h' and
>> `ftcffdrv.h'). I think this should be removed – all properties
>> for the new Type 1 engine should be in `ftcffdrv.h' only, and
>> it's not worth to add random seed control to the old engine. Do
>> you agree?
>
> I think so too - this is something I overlooked when copying the
> file over from `ftcffdrv.h'. I had renamed the class to PS_Driver,
> which all three drivers are now using.
OK.
> The only property there is `hinting_engine'. I differentiated
> `FT_T1_HINTING_' from `FT_CFF_HINTING_', but maybe we can just use
> `FT_PS_HINTING_' for both.
Please select a solution that you think fits best. For me it's
important to have a possibility to switch between the old and new
engines, both for testing and demonstration purposes in the demo
programs – and by default only the new engine should be available.
Werner