My understanding is that the original rust font render code could replace something like FreeType. Do you envision using iconvg and vector as a replacement for the go freetype package, where font glyphs would be loaded in as iconvg byte streams in a cache and then simply read from there in the render loop, resulting in little to no additional allocations or re-parsing of the original font glyph?
On Sunday, October 23, 2016 at 11:52:48 PM UTC-7, Nigel Tao wrote: > > I was looking for a compact, binary format for simple vector graphics. > I didn't find one that did all I wanted. > > SVG is the de facto standard for vector graphics, in the open source > world. Unfortunately, https://www.w3.org/TR/SVG/single-page.html > prints as 400 pages, not including the XML, CSS or XSLT > specifications. The S in SVG doesn't stand for simple. > > The Haiku Vector Icon Format is pretty close. Unfortunately, I didn't > find a written specification, only a single C implementation, tightly > coupled, as far as I could tell, to the Haiku operating system. Also, > > https://www.haiku-os.org/articles/2009-09-14_why_haiku_vector_icons_are_so_small > > says that "you wouldn't really want to use HVIF to store generic > vector graphics". > > OpenType fonts contain vector graphics (glyphs), and people use it for > icon and emoji fonts. Unfortunately, there doesn't appear to be a > clear standard for colored or partially transparent glyphs. > https://en.wikipedia.org/wiki/OpenType#Color lists three competing > approaches, built on PNG, SVG or neither. > > So, as an experiment, I invented a new format: IconVG. The format > itself is documented at > https://godoc.org/golang.org/x/exp/shiny/iconvg and there are some > examples at https://go.googlesource.com/exp/+/master/shiny/iconvg/testdata > > The Material Design icon set (https://design.google.com/icons/) > consists of 961 vector icons. As SVG files, this totals 312,887 bytes. > As 24*24 pixel PNGs, 190,840 bytes. As 48*48 pixel PNGs, 318,219 > bytes. As IconVGs, 122,012 bytes. > > Like all of the golang.org/x/exp/shiny code, this is experimental, but > I think that IconVG is at an interesting enough point now to share. > > The vector rasterizer at golang.org/x/image/vector is also a nice Go > package, in my biased opinion, based on the algorithm described at > > https://medium.com/@raphlinus/inside-the-fastest-font-renderer-in-the-world-75ae5270c445#.ja3y3m6z2, > > > but that's probably a different topic for a different time. > > Comments welcome. > -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.