mooman219 / fontdue

The fastest font renderer in the world, written in pure rust.
Apache License 2.0
1.44k stars 71 forks source link

Doc: what does "scale" do? #68

Closed dhardy closed 3 years ago

dhardy commented 3 years ago

As far as I can tell from reading the code, this is a simplification step (performed while loading a font) which omits details which would not be visible at smaller sizes. Is that correct?

Related: #60.

Also related: #49. If I wished to render a glyph for multiple sub-pixel positions (e.g. (0, 0) and (0.5, 0)not RGB sub-pixel rendering)... this isn't supported. Does the "outline simplification" above conflict with supporting this?

mooman219 commented 3 years ago

As far as I can tell from reading the code, this is a simplification step (performed while loading a font) which omits details which would not be visible at smaller sizes. Is that correct?

Yes

https://docs.rs/fontdue/0.5.0/fontdue/struct.FontSettings.html#structfield.scale


Related: #60.

?

https://docs.rs/fontdue/0.5.0/fontdue/layout/struct.Layout.html#method.new


Also related: #49. If I wished to render a glyph for multiple sub-pixel positions (e.g. (0, 0) and (0.5, 0) — not RGB sub-pixel rendering)... this isn't supported. Does the "outline simplification" above conflict with supporting this?

Outline simplification is independent from rasterization. Sub-pixel positioning as described is trivial.

image

This already works in fontdue but I didn't expose it (see: offset_x/offset_y). I'll expose it when I do a pass at cleaning up layout since it'll break everyone with an extra parameter and it has caching implications.