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
  

Звук

cece70
  
cece70
  

Все функции

cece70
cece70
cece70
cece70

Шрифты и текст

cece70
cece70

Для вывода текста используются функции text, textAlign и textSize. Смотрите их описание ниже. Цвет выводимого теста определяется функцией stroke.

cece70
cece70

Вы можете загружать и использовать собственные шрифты из файлов (TrueType или OpenType) при помощи функций createFont и textFont.

cece70
cece70

Прежде чем выводить текст на экран формируется его разметка — определяются координаты и размеры каждого символа. Это делается автоматически и не требует никаких дополнительных действий. Однако для больших текстов эта операция может занять некоторое время. И если вы хотите увеличить производительность своей программы, то можете выполнить разметку текста заранее вызвав функцию createTextLayout и, затем, выводить её на экран функцией textLayoutDraw.

cece70
cece70

Функции:

cece70
cece70

void text(const char *text, double x, double y);

cece70
cece70

Вывести текст в заданной точке. Расположение текста относительно указанной точки задаётся функцией textAlign. Шрифт и размер задаются функциями textFont и textSize. Цвет текста задаётся функцией stroke.

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
cece70

См. также 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
cece70

double textLayoutGetWidth(TextLayout layout);

cece70
cece70

Возвращает ширину текстового блока с учётом действующего в данный момент размера шрифта (textSize). См. также createTextLayout.

cece70
cece70

double textLayoutGetHeight(TextLayout layout);

cece70
cece70

Возвращает ширину текстового блока с учётом действующего в данный момент размера шрифта (textSize). См. также createTextLayout.

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