Hello Alexei,
> Using signed char is a bit problematic because the FT_Bitmap buffer is
> unsigned char. Going from signed to unsigned is well-defined, but
> backwards is implementation-defined.
I'm assuming here that `FT_Bitmap` is simply a typeless buffer and the client
can do a pointer cast ( like: FT_Char* buff = (FT_Char*)buffer ) to get the values
without modifying/casting each and every value.
> Can we simply map distances like this?
>
> SDF = 128 * ( distance - spread ) / spread;
>
> assuming positive values outside and clamping to [0,255]
Mapping the buffer to any range is fine as long as the client can figure out where
the actual edge is. In the current implementation the edge is at `0`. So if we map
the [-128, 127] range to [0, 255], the values from [0, 127] will be `inside` and
values [129, 255] will be `outside` with the edge being at 128.
Thanks,
Anuj