Blame doc/ru/font.html

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