|
|
cece70 |
|
|
|
cece70 |
|
|
|
cece70 |
<meta charset="UTF-8">
|
|
|
cece70 |
<link href="style.css" rel="stylesheet" type="text/css">
|
|
|
cece70 |
<title>Шрифты и текст - Helianthus</title>
|
|
|
cece70 |
|
|
|
cece70 |
|
|
|
cece70 |
|
|
|
77a314 |
Helianthus
|
|
|
77a314 |
|
|
|
77a314 |
Helianthus: Документация
|
|
|
77a314 |
Установка
|
|
|
cece70 |
Запуск и общие функции
|
|
|
cece70 |
Клавиатура и мышь
|
|
|
cece70 |
Рисование
|
|
|
cece70 |
Шрифты и текст
|
|
|
cece70 |
Текстуры и анимация
|
|
|
cece70 |
Буфер кадра
|
|
|
cece70 |
Спрайты
|
|
|
cece70 |
Группы спрайтов
|
|
|
cece70 |
Звук
|
|
|
e9aada |
Пользовательский интерфейс
|
|
|
cece70 |
|
|
|
cece70 |
Все функции
|
|
|
cece70 |
|
|
|
cece70 |
|
|
|
cece70 |
|
|
|
cece70 |
Шрифты и текст
|
|
|
cece70 |
|
|
|
d38577 |
Для вывода текста используются функции text, textf, textAlign и textSize. Смотрите их описание ниже. Цвет выводимого теста определяется функцией stroke.
|
|
|
cece70 |
|
|
|
cece70 |
Вы можете загружать и использовать собственные шрифты из файлов (TrueType или OpenType) при помощи функций createFont и textFont.
|
|
|
cece70 |
|
|
|
d38577 |
Прежде чем выводить текст на экран формируется его разметка — определяются координаты и размеры каждого символа. Это делается автоматически и не требует никаких дополнительных действий. Однако для больших текстов эта операция может занять некоторое время. И если вы хотите увеличить производительность своей программы, то можете выполнить разметку текста заранее вызвав функцию createTextLayout (или createTextLayoutf) и, затем, выводить её на экран функцией textLayoutDraw.
|
|
|
cece70 |
|
|
|
cece70 |
Функции:
|
|
|
cece70 |
|
|
|
d38577 |
void text(double x, double y, const char *text);
|
|
|
cece70 |
|
|
|
d38577 |
Вывести текст в заданной точке. Расположение текста относительно указанной точки задаётся функцией textAlign. Шрифт и размер задаются функциями textFont и textSize. Цвет текста задаётся функцией stroke. См. также textf, createTextLayout.
|
|
|
d38577 |
|
|
|
d38577 |
Параметры:
|
|
|
d38577 |
|
|
|
d38577 |
text — текст для вывода;
|
|
|
d38577 |
x, y — координаты начальной точки.
|
|
|
d38577 |
|
|
|
d38577 |
void textf(double x, double y, const char *format, ...);
|
|
|
d38577 |
|
|
|
d38577 |
Форматированный вывод текста в заданной точке. Форматирование текста устроено так же как и в стандартной функции printf. Расположение текста относительно указанной точки задаётся функцией textAlign. Шрифт и размер задаются функциями textFont и textSize. Цвет текста задаётся функцией stroke. См. также text, createTextLayoutf.
|
|
|
cece70 |
|
|
|
cece70 |
Параметры:
|
|
|
cece70 |
|
|
|
cece70 |
text — текст для вывода;
|
|
|
cece70 |
x, y — координаты начальной точки.
|
|
|
cece70 |
|
|
|
cece70 |
void textAlign(HAlign hor, VAlign vert);
|
|
|
cece70 |
|
|
|
cece70 |
Установить расположение текста относительно начальной точки (см. функцию text)
|
|
|
cece70 |
|
|
|
cece70 |
Параметры:
|
|
|
cece70 |
|
|
|
cece70 |
hor — горизонтальное расположение начальной точки текста, может принимать значения:
|
|
|
cece70 |
HALIGN_LEFT — начальная точка находится по левому краю текста;
|
|
|
cece70 |
HALIGN_CENTER — начальная точка находится в середине текста;
|
|
|
cece70 |
HALIGN_RIGHT — начальная точка находится по правому краю текста.
|
|
|
cece70 |
vert — вертикальное расположение начальной точки текста, может принимать значения:
|
|
|
cece70 |
VALIGN_TOP — начальная точка находится по верхнему краю текста;
|
|
|
cece70 |
VALIGN_CENTER — начальная точка находится в середине текста;
|
|
|
cece70 |
VALIGN_BOTTOM — начальная точка находится по нижнему краю текста.
|
|
|
cece70 |
|
|
|
cece70 |
void textSize(double size);
|
|
|
cece70 |
|
|
|
cece70 |
Установить размер текста (см. функцию text).
|
|
|
cece70 |
|
|
|
cece70 |
Параметры:
|
|
|
cece70 |
|
|
|
cece70 |
size — размер текста в пикселях.
|
|
|
cece70 |
|
|
|
cece70 |
Font createFont(const char *path);
|
|
|
cece70 |
|
|
|
cece70 |
Загрузить шрифт из файла. Функция возвращает значение типа Font, которое является адресом в памяти — указателем на описание шрифта внутри библиотеки Helianthus.
|
|
|
cece70 |
|
|
|
cece70 |
Данная функция только загружает шрифт в память, для того чтобы писать текст этим шрифтом на экране вам нужно вызвать ещё и функцию textFont. Вы может иметь множество загруженных шрифтов в программе и переключать их функцией textFont.
|
|
|
cece70 |
|
|
|
cece70 |
См. также fontDestroy. и createFontFromMemory.
|
|
|
cece70 |
|
|
|
cece70 |
Параметры:
|
|
|
cece70 |
|
|
|
cece70 |
path — путь к файлу шрифта.
|
|
|
cece70 |
|
|
|
cece70 |
Font createFontFromMemory(const void *data, int size);
|
|
|
cece70 |
|
|
|
cece70 |
Создать шрифт из байтов файла шрифта уже загруженных в оперативную память. Функция возвращает значение типа Font, которое является адресом в памяти — указателем на описание шрифта внутри библиотеки Helianthus. См. также fontDestroy и createFont.
|
|
|
cece70 |
|
|
|
cece70 |
Параметры:
|
|
|
cece70 |
|
|
|
cece70 |
data — указатель на первый байт данных шрифта;
|
|
|
cece70 |
size — количество байтов.
|
|
|
cece70 |
|
|
|
cece70 |
void fontClone(Font font);
|
|
|
cece70 |
|
|
|
cece70 |
Создать новый шрифт из ранее загруженного — сделать копию.
|
|
|
cece70 |
|
|
|
cece70 |
void fontDestroy(Font font);
|
|
|
cece70 |
|
|
|
cece70 |
Выгрузить шрифт из памяти.
|
|
|
cece70 |
|
|
|
cece70 |
Важно: Скорее всего у вас в программе останется переменная в которой хранился указатель на шрифт. Этот указатель станет недействителен — будет указывать на неопределённую область памяти — не на шрифт. Вы можете занести в эту переменную другой шрифт, но использовать старое значение переменной больше нельзя это приведёт у ошибкам и непредсказуемому поведению программы.
|
|
|
cece70 |
|
|
|
cece70 |
void textFont(Font font);
|
|
|
cece70 |
|
|
|
cece70 |
Выбрать ранее загруженный из файла шрифт для вывода текста (см. функции createFont и text). Вернуть стандартный шрифт можно командой textFontDefault.
|
|
|
cece70 |
|
|
|
cece70 |
Параметры:
|
|
|
cece70 |
|
|
|
cece70 |
font — шрифт загруженный функцией createFont.
|
|
|
cece70 |
|
|
|
cece70 |
void textFontDefault();
|
|
|
cece70 |
|
|
|
cece70 |
Вернуть стандартный шрифт для вывода текста. Отменяет действие функции textFont.
|
|
|
cece70 |
|
|
|
cece70 |
TextLayout createTextLayout(const char *text);
|
|
|
cece70 |
|
|
|
cece70 |
Создать разметку для заданного текста. Разметка определяет координаты и размер каждого символа текста. Разметка запоминает действующий на момент её создания шрифт (textFont) и выравнивание (textAlign), и, рисование данной разметки будет производиться только этим шрифтом. Однако, вы можете менять размер шрифта (textSize) и его цвет (stroke) непосредственно перед выводом данной разметки на экран. Вы можете узнать ширину (textLayoutGetWidth) и высоту (textLayoutGetHeight) текстового блока, а также выводить на экран весь текст (textLayoutDraw) или отдельные его части (textLayoutDrawSubstr) с применением разных способов заливки.
|
|
|
cece70 |
|
|
|
e9aada |
См. также createTextLayoutEx, createTextLayoutf, textLayoutDestroy.
|
|
|
e9aada |
|
|
|
e9aada |
TextLayout createTextLayoutEx(const char *text, int length);
|
|
|
e9aada |
|
|
|
e9aada |
Создать разметку для заданного текста, точно так же как и createTextLayout. Разница лишь в том, что данная функция создаёт разметку не для всего текста, а только для указанного количества его байтов.
|
|
|
e9aada |
|
|
|
d38577 |
См. также createTextLayoutf, textLayoutDestroy.
|
|
|
d38577 |
|
|
|
d38577 |
TextLayout createTextLayoutf(const char *format, ...);
|
|
|
d38577 |
|
|
|
d38577 |
Сформировать текст по заданному формату и создать разметку для этого текста. Форматирование текста устроено так же как и в стандартной функции printf. Подробнее о разметке текста смотрите в описании функции createTextLayout. См. также textLayoutDestroy.
|
|
|
cece70 |
|
|
|
cece70 |
void textLayoutDestroy(TextLayout layout);
|
|
|
cece70 |
|
|
|
cece70 |
Удалить разметку из памяти. См. также createTextLayout.
|
|
|
cece70 |
|
|
|
cece70 |
Важно: Скорее всего у вас в программе останется переменная в которой хранился указатель на разметку. Этот указатель станет недействителен — будет указывать на неопределённую область памяти — не на разметку. Вы можете занести в эту переменную другую разметку, но использовать старое значение переменной больше нельзя это приведёт к ошибкам и непредсказуемому поведению программы.
|
|
|
cece70 |
|
|
|
cece70 |
void textLayoutDraw(TextLayout layout, double x, double y);
|
|
|
cece70 |
|
|
|
cece70 |
Вывести ранее созданную текстовую разметку на экран в заданных координатах. См. также createTextLayout и textLayoutDrawSubstr.
|
|
|
cece70 |
|
|
|
cece70 |
void textLayoutDrawFrom(TextLayout layout, double x, double y, int start);
|
|
|
cece70 |
|
|
|
cece70 |
Вывести в заданных координатах часть текста разметки начиная от заданного символа (параметр start) до конца текста. См. textLayoutDraw, textLayoutDrawSubstr, createTextLayout.
|
|
|
cece70 |
|
|
|
cece70 |
void textLayoutDrawSubstr(TextLayout layout, double x, double y, int start, int length);
|
|
|
cece70 |
|
|
|
cece70 |
Вывести в заданных координатах часть текста разметки длиной length начиная от start. См. textLayoutDraw, textLayoutDrawFrom, createTextLayout.
|
|
|
cece70 |
|
|
|
d38577 |
double textLayoutGetLeft(TextLayout layout);
|
|
|
d38577 |
double textLayoutGetTop(TextLayout layout);
|
|
|
d38577 |
|
|
|
d38577 |
Данные функции возвращают смещение верхнего левого угла границы текстового блока (см. рисунок) относительно базовой точки с учётом действующего в данный момент размера шрифта (textSize). См. также createTextLayout.
|
|
|
d38577 |
|
|
|
d38577 |
|
|
|
d38577 |
|
|
|
d38577 |
|
|
|
cece70 |
double textLayoutGetWidth(TextLayout layout);
|
|
|
cece70 |
|
|
|
d38577 |
Возвращает ширину текстового блока с учётом действующего в данный момент размера шрифта (textSize). См. также createTextLayout, textLayoutGetTop.
|
|
|
cece70 |
|
|
|
cece70 |
double textLayoutGetHeight(TextLayout layout);
|
|
|
cece70 |
|
|
|
d38577 |
Возвращает ширину текстового блока с учётом действующего в данный момент размера шрифта (textSize). См. также createTextLayout, textLayoutGetTop.
|
|
|
d38577 |
|
|
|
d38577 |
double textLayoutGetTopAscenderLine(TextLayout layout);
|
|
|
d38577 |
|
|
|
d38577 |
Возвращает координату верхней линии выносных элементов строчных букв (ascender-line) первой строки текстового блока с учётом действующего в данный момент размера шрифта (textSize). См. также createTextLayout, textLayoutGetTop.
|
|
|
d38577 |
|
|
|
d38577 |
double textLayoutGetTopXLine(TextLayout layout);
|
|
|
d38577 |
|
|
|
d38577 |
Возвращает координату средней линии (верхняя граница строчных букв, x-line) первой строки текстового блока с учётом действующего в данный момент размера шрифта (textSize). См. также createTextLayout, textLayoutGetTop.
|
|
|
d38577 |
|
|
|
d38577 |
double textLayoutGetBottomBaseline(TextLayout layout);
|
|
|
d38577 |
|
|
|
d38577 |
Возвращает координату базовой линии последней строки текстового блока с учётом действующего в данный момент размера шрифта (textSize). См. также createTextLayout, textLayoutGetTop.
|
|
|
cece70 |
|
|
|
cece70 |
int textLayoutCursorUp(TextLayout layout, int cursor);
|
|
|
cece70 |
|
|
|
cece70 |
Возвращает порядковый номер символа находящегося в тексте непосредственно над заданным символом. См. также textLayoutCursorDown и createTextLayout.
|
|
|
cece70 |
|
|
|
cece70 |
int textLayoutCursorDown(TextLayout layout, int cursor);
|
|
|
cece70 |
|
|
|
cece70 |
Возвращает порядковый номер символа находящегося в тексте непосредственно под заданным символом. См. также textLayoutCursorUp и createTextLayout.
|
|
|
cece70 |
|
|
|
cece70 |
double textLayoutCursorGetX(TextLayout layout, int cursor);
|
|
|
cece70 |
|
|
|
cece70 |
Возвращает координату X левого нижнего края заданного символа. См. также textLayoutCursorGetY и createTextLayout.
|
|
|
cece70 |
|
|
|
cece70 |
double textLayoutCursorGetY(TextLayout layout, int cursor);
|
|
|
cece70 |
|
|
|
cece70 |
Возвращает координату Y левого нижнего края заданного символа. См. также textLayoutCursorGetX и createTextLayout.
|
|
|
cece70 |
|
|
|
cece70 |
double textLayoutCursorGetHeight(TextLayout layout, int cursor);
|
|
|
cece70 |
|
|
|
cece70 |
Возвращает высоту заданного символа. См. также textLayoutCursorGetX, textLayoutCursorGetY и createTextLayout.
|
|
|
cece70 |
|
|
|
cece70 |
|
|
|
cece70 |
|
|
|
cece70 |
|