Добавлено спустя 8 часов 37 минут 12 секунд:
2 дня коту под хвост изза дурацкого устройства EasyLazFreeType. Он при своей финализации уничтожает все что в нем прокешировано:
- Код: Выделить всё
finalization
if FreeTypeInitialized then
begin
TT_Done_FreeType;
FreeTypeInitialized := false;
end;
end.
после этого классы TFreeTypeFont не могут быть униичтожены - некоторые элементы (а может и все) их FGlyphTable уничтожаются повторно. Все созданые TFreeTypeFont нужно уничтожать до финализации EasyLazFreeType.
Мой FontManager ниче о форматах шрифтов поддерживаемых программой не знает, и uses EasyLazFreeType не делает... если сделать такой усес то проблемы нет - EasyLazFreeType будет финализирован гарантировано позже FontManager со всеми его загружеными TFreeTypeFont.
Но блин без uses EasyLazFreeType внутри FontManager компилятор почемуто упорно финализирует EasyLazFreeType раньше FontManager как бы я не тосовал цепочки uses. Придется делать патчик на EasyLazFreeType позволяющий позже убивать TFreeTypeFont.
Си не фонтан, а его тупой перевод на паскаль и попытка завернуть в классы - вообще говно((
Добавлено спустя 24 минуты 13 секунд:
https://bugs.freepascal.org/view.php?id=32371
чудес как всегда небывает))