> I don't think this is an issue. For other rendering modes like LCD > there are similar requirements, and platforms that are going to use > SFDs certainly have plenty of memory. It would be nice, however, if > you can add this constraint to the documentation, and, if possible, > also add a logging message that either predicts the necessary > (approximate) amount of memory before the computation, and/or the > actual memory use after generating an SFD.
Alright, I will add a log message about the exact memory used after generating the SDF. Is there any profiling tool built into FreeType? If there is the exact time can be logged as well. > Don't worry about changing the internals! You know best what to do, > and we can discuss later whether your solution is the right approach. > Regarding the second issue I think that you probably have to create a > second renderer that shares most of the code with the original one. > Alexei? Okay, I will probably only need to remove this case statement. ``` case FT_GLYPH_FORMAT_BITMAP: /* already a bitmap, don't do anything */ break; ``` And yeah I like the idea of creating a seperate renderer, since it won't be used much. The only cases I can think of where SDF from bitmap will be generated is either for bitmap fonts or for glyphs with overlapping contours( until I add something to remove the overlapps ). So, if it is a separate module it can easily be disabled. >> I have updated the demo, added bilinear filtering, shape >> reconstruction and has all optimization modes which can be toggled. >> I have attached the new list of keys. >> (https://github.com/preversewharf45/ft2sdf-demo) > > Looks excellent! Some items for the wishlist of `ftstd`: > > * A help menu showing the list of keys. > > * Easy navigation to get to large glyph indices easily. I will later create the demo from scratch, so will add these. > * It probably makes sense to not allow 'Width' values in > reconstruction mode to be larger than '(Spread - 1)' or something > similar, emitting a warning if this threshold is reached. Otherwise > you get white boxes without a warning. Yeah, I forgot about that. The `Width' shouldn't exceed `(Spread - 1)' Thanks for pointing that out, I will add this while creating the new demo. Thanks, Anuj
