On Sunday 20 November 2016, Nikolaus Waxweiler wrote: > > Anyway, on the API front. Forcing to autohinter is probably not > > acceptable. So we could enable stem darkening where native available, > > but then we need to know if what engine a face is using, or better yet > > specifically if the engine used right now on this face did stem > > darkening. > > I was just thinking. Can Qt mix font rendering modes on a face-by-face > basis? Even without FT_Face_Option(), you can query the font driver for > a face and the autohinter for stem darkening as described in [1]. If > FT_Property_Get returns an error for the property, the driver has no > means of darkening stems at all. Note that this is a font > driver/autohinter wide setting, affecting all faces that pass through them. > > So, how about something like this: for each face that should be > rendered, first query the driver (or the autohinter if it's to be used) > if it supports stem darkening. If so, turn it on while rendering the > face and use linear alpha blending and gamma correction (maybe with a > factor of 1.8 like Adobe recommends). If there is no stem darkening > support, blend naively.
Qt can't do that right now, right now it can only be controlled all or nothing by QPA platform or font-engine, but controlling it on a face-by-face basis was exactly the possible solution I was considering, but it requires exposing the data from the face-specific QFontEngine class to the drawing back-end. At least for the rasterizing engine. The whole thing first needs some cleanup in 5.9 though, it has been adjusted a bit too much for separate platforms to match native text rendering, and is not very consistent or elegant at the moment. `Allan _______________________________________________ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development