Я использую Skia для рисования текста на платформе BlackBerry 10.
У меня проблемы с применением стилей Condensed или Light к шрифту.
В Skia он имеет только тип enum для kNormal, kBold, kItalic, а также kBoldItalic стили.
Эти стили хорошо работает
skTypeface = SkTypeface::CreateFromName("Slate Pro", SkTypeface::kNormal);
skTypeface = SkTypeface::CreateFromName("Slate Pro", SkTypeface::kBold);
skTypeface = SkTypeface::CreateFromName("Slate Pro", SkTypeface::kItalic);
skTypeface = SkTypeface::CreateFromName("Slate Pro", SkTypeface::kBoldItalic);
Но мне нужно использовать сгущенный или же Свет стили шрифта Slate Pro, также встроенного в устройство BB10.
Я попробовал все эти комбинации, и это вызвало SIGSEGV.
skTypeface = SkTypeface::CreateFromName("SlateProLight", SkTypeface::kNormal);
skTypeface = SkTypeface::CreateFromName("Slate Pro-Light", SkTypeface::kNormal);
skTypeface = SkTypeface::CreateFromName("Slate Pro - Light", SkTypeface::kNormal);
skTypeface = SkTypeface::CreateFromName("SlatePro Light", SkTypeface::kNormal);
skTypeface = SkTypeface::CreateFromName("Slate Pro Condensed", SkTypeface::kNormal);
Оооочень, я попробовал другой подход, пытаясь загрузить системные шрифты напрямую. Но, тем не менее, даже несмотря на то, что файл Font существует, загруженный тип всегда равен NULL, не могу понять, почему.
QString loadedFont="/usr/fonts/font_repository/monotype/SlatePro-Light.ttf";
SkTypeface *loadedTypeface = SkTypeface::CreateFromFile(loadedFont.toUtf8().constData());
QFile targetFile(loadedFont);
if(targetFile.exists())
{
if(loadedTypeface!=NULL)
{
skTypeface = SkTypeface::CreateFromTypeface(loadedTypeface , SkTypeface::kNormal);
}
else //Fallback to Arial
{
skTypeface = SkTypeface::CreateFromName("Arial",SkTypeface::kNormal);
}
}
Любые мысли о том, как использовать сгущенный или же Свет стили шрифта? Спасибо
Заметки
Список Slate Pro файлы ttf Embeded в файловой системе BB10
Находится в /usr/fonts/font_repository/monotype/
SlatePro.ttf
SlatePro-MediumItalic.ttf
SlatePro-MediumCondensed.ttf
SlatePro-Medium.ttf
SlatePro-LightItalic.ttf
SlatePro-Light.ttf
SlatePro-Italic.ttf
SlatePro-Condensed.ttf
SlatePro-BoldItalic.ttf
SlatePro-BoldCondensed.ttf
SlatePro-Bold.ttf
Задача ещё не решена.
Других решений пока нет …