Blame doc/ru/font.html

Ivan Mahonin cece70
<html>
Ivan Mahonin cece70
<head>
Ivan Mahonin cece70
<meta charset="UTF-8" />
Ivan Mahonin cece70
<link rel="stylesheet" type="text/css" href="style.css" />
Ivan Mahonin cece70
<title>Шрифты и текст - Helianthus</title>
Ivan Mahonin cece70
</head>
Ivan Mahonin cece70
<body>
Ivan Mahonin cece70
Ivan Mahonin cece70
  

Helianthus

Ivan Mahonin cece70
  

Запуск и общие функции

Ivan Mahonin cece70
  

Клавиатура и мышь

Ivan Mahonin cece70
  

Рисование

Ivan Mahonin cece70
  

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

Ivan Mahonin cece70
  

Текстуры и анимация

Ivan Mahonin cece70
  

Буфер кадра

Ivan Mahonin cece70
  

Спрайты

Ivan Mahonin cece70
  

Группы спрайтов

Ivan Mahonin cece70
  

Звук

Ivan Mahonin cece70
  
Ivan Mahonin cece70
  

Все функции

Ivan Mahonin cece70
Ivan Mahonin cece70
Ivan Mahonin cece70
Ivan Mahonin cece70

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

Ivan Mahonin cece70
Ivan Mahonin cece70

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

Ivan Mahonin cece70
Ivan Mahonin cece70

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

Ivan Mahonin cece70
Ivan Mahonin cece70

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

Ivan Mahonin cece70
Ivan Mahonin cece70

Функции:

Ivan Mahonin cece70
Ivan Mahonin cece70

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

Ivan Mahonin cece70
Ivan Mahonin cece70

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

Ivan Mahonin cece70
Ivan Mahonin cece70

Параметры:

Ivan Mahonin cece70
Ivan Mahonin cece70

text — текст для вывода;

Ivan Mahonin cece70
x, y — координаты начальной точки.

Ivan Mahonin cece70
Ivan Mahonin cece70

void textAlign(HAlign hor, VAlign vert);

Ivan Mahonin cece70
Ivan Mahonin cece70

Установить расположение текста относительно начальной точки (см. функцию text)

Ivan Mahonin cece70
Ivan Mahonin cece70

Параметры:

Ivan Mahonin cece70
Ivan Mahonin cece70

hor — горизонтальное расположение начальной точки текста, может принимать значения:

Ivan Mahonin cece70
    HALIGN_LEFT — начальная точка находится по левому краю текста;
Ivan Mahonin cece70
    HALIGN_CENTER — начальная точка находится в середине текста;
Ivan Mahonin cece70
    HALIGN_RIGHT — начальная точка находится по правому краю текста.
Ivan Mahonin cece70
vert — вертикальное расположение начальной точки текста, может принимать значения:
Ivan Mahonin cece70
    VALIGN_TOP — начальная точка находится по верхнему краю текста;
Ivan Mahonin cece70
    VALIGN_CENTER — начальная точка находится в середине текста;
Ivan Mahonin cece70
    VALIGN_BOTTOM — начальная точка находится по нижнему краю текста.

Ivan Mahonin cece70
Ivan Mahonin cece70

void textSize(double size);

Ivan Mahonin cece70
Ivan Mahonin cece70

Установить размер текста (см. функцию text).

Ivan Mahonin cece70
Ivan Mahonin cece70

Параметры:

Ivan Mahonin cece70
Ivan Mahonin cece70

size — размер текста в пикселях.

Ivan Mahonin cece70
Ivan Mahonin cece70

Font createFont(const char *path);

Ivan Mahonin cece70
Ivan Mahonin cece70

Загрузить шрифт из файла. Функция возвращает значение типа Font, которое является адресом в памяти — указателем на описание шрифта внутри библиотеки Helianthus.

Ivan Mahonin cece70
Ivan Mahonin cece70

Данная функция только загружает шрифт в память, для того чтобы писать текст этим шрифтом на экране вам нужно вызвать ещё и функцию textFont. Вы может иметь множество загруженных шрифтов в программе и переключать их функцией textFont.

Ivan Mahonin cece70
Ivan Mahonin cece70

См. также fontDestroy. и createFontFromMemory.

Ivan Mahonin cece70
Ivan Mahonin cece70

Параметры:

Ivan Mahonin cece70
Ivan Mahonin cece70

path — путь к файлу шрифта.

Ivan Mahonin cece70
Ivan Mahonin cece70

Font createFontFromMemory(const void *data, int size);

Ivan Mahonin cece70
Ivan Mahonin cece70

Создать шрифт из байтов файла шрифта уже загруженных в оперативную память. Функция возвращает значение типа Font, которое является адресом в памяти — указателем на описание шрифта внутри библиотеки Helianthus. См. также fontDestroy и createFont.

Ivan Mahonin cece70
Ivan Mahonin cece70

Параметры:

Ivan Mahonin cece70
Ivan Mahonin cece70

data — указатель на первый байт данных шрифта;

Ivan Mahonin cece70
size — количество байтов.

Ivan Mahonin cece70
Ivan Mahonin cece70

void fontClone(Font font);

Ivan Mahonin cece70
Ivan Mahonin cece70

Создать новый шрифт из ранее загруженного — сделать копию.

Ivan Mahonin cece70
Ivan Mahonin cece70

void fontDestroy(Font font);

Ivan Mahonin cece70
Ivan Mahonin cece70

Выгрузить шрифт из памяти.

Ivan Mahonin cece70
Ivan Mahonin cece70

Важно: Скорее всего у вас в программе останется переменная в которой хранился указатель на шрифт. Этот указатель станет недействителен — будет указывать на неопределённую область памяти — не на шрифт. Вы можете занести в эту переменную другой шрифт, но использовать старое значение переменной больше нельзя это приведёт у ошибкам и непредсказуемому поведению программы.

Ivan Mahonin cece70
Ivan Mahonin cece70

void textFont(Font font);

Ivan Mahonin cece70
Ivan Mahonin cece70

Выбрать ранее загруженный из файла шрифт для вывода текста (см. функции createFont и text). Вернуть стандартный шрифт можно командой textFontDefault.

Ivan Mahonin cece70
Ivan Mahonin cece70

Параметры:

Ivan Mahonin cece70
Ivan Mahonin cece70

font — шрифт загруженный функцией createFont.

Ivan Mahonin cece70
Ivan Mahonin cece70

void textFontDefault();

Ivan Mahonin cece70
Ivan Mahonin cece70

Вернуть стандартный шрифт для вывода текста. Отменяет действие функции textFont.

Ivan Mahonin cece70
Ivan Mahonin cece70

TextLayout createTextLayout(const char *text);

Ivan Mahonin cece70
Ivan Mahonin cece70

Создать разметку для заданного текста. Разметка определяет координаты и размер каждого символа текста. Разметка запоминает действующий на момент её создания шрифт (textFont) и выравнивание (textAlign), и, рисование данной разметки будет производиться только этим шрифтом. Однако, вы можете менять размер шрифта (textSize) и его цвет (stroke) непосредственно перед выводом данной разметки на экран. Вы можете узнать ширину (textLayoutGetWidth) и высоту (textLayoutGetHeight) текстового блока, а также выводить на экран весь текст (textLayoutDraw) или отдельные его части (textLayoutDrawSubstr) с применением разных способов заливки.

Ivan Mahonin cece70
Ivan Mahonin cece70

См. также textLayoutDestroy.

Ivan Mahonin cece70
Ivan Mahonin cece70

void textLayoutDestroy(TextLayout layout);

Ivan Mahonin cece70
Ivan Mahonin cece70

Удалить разметку из памяти. См. также createTextLayout.

Ivan Mahonin cece70
Ivan Mahonin cece70

Важно: Скорее всего у вас в программе останется переменная в которой хранился указатель на разметку. Этот указатель станет недействителен — будет указывать на неопределённую область памяти — не на разметку. Вы можете занести в эту переменную другую разметку, но использовать старое значение переменной больше нельзя это приведёт к ошибкам и непредсказуемому поведению программы.

Ivan Mahonin cece70
Ivan Mahonin cece70

void textLayoutDraw(TextLayout layout, double x, double y);

Ivan Mahonin cece70
Ivan Mahonin cece70

Вывести ранее созданную текстовую разметку на экран в заданных координатах. См. также createTextLayout и textLayoutDrawSubstr.

Ivan Mahonin cece70
Ivan Mahonin cece70

void textLayoutDrawFrom(TextLayout layout, double x, double y, int start);

Ivan Mahonin cece70
Ivan Mahonin cece70

Вывести в заданных координатах часть текста разметки начиная от заданного символа (параметр start) до конца текста. См. textLayoutDraw, textLayoutDrawSubstr, createTextLayout.

Ivan Mahonin cece70
Ivan Mahonin cece70

void textLayoutDrawSubstr(TextLayout layout, double x, double y, int start, int length);

Ivan Mahonin cece70
Ivan Mahonin cece70

Вывести в заданных координатах часть текста разметки длиной length начиная от start. См. textLayoutDraw, textLayoutDrawFrom, createTextLayout.

Ivan Mahonin cece70
Ivan Mahonin cece70

double textLayoutGetWidth(TextLayout layout);

Ivan Mahonin cece70
Ivan Mahonin cece70

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

Ivan Mahonin cece70
Ivan Mahonin cece70

double textLayoutGetHeight(TextLayout layout);

Ivan Mahonin cece70
Ivan Mahonin cece70

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

Ivan Mahonin cece70
Ivan Mahonin cece70

int textLayoutCursorUp(TextLayout layout, int cursor);

Ivan Mahonin cece70
Ivan Mahonin cece70

Возвращает порядковый номер символа находящегося в тексте непосредственно над заданным символом. См. также textLayoutCursorDown и createTextLayout.

Ivan Mahonin cece70
Ivan Mahonin cece70

int textLayoutCursorDown(TextLayout layout, int cursor);

Ivan Mahonin cece70
Ivan Mahonin cece70

Возвращает порядковый номер символа находящегося в тексте непосредственно под заданным символом. См. также textLayoutCursorUp и createTextLayout.

Ivan Mahonin cece70
Ivan Mahonin cece70

double textLayoutCursorGetX(TextLayout layout, int cursor);

Ivan Mahonin cece70
Ivan Mahonin cece70

Возвращает координату X левого нижнего края заданного символа. См. также textLayoutCursorGetY и createTextLayout.

Ivan Mahonin cece70
Ivan Mahonin cece70

double textLayoutCursorGetY(TextLayout layout, int cursor);

Ivan Mahonin cece70
Ivan Mahonin cece70

Возвращает координату Y левого нижнего края заданного символа. См. также textLayoutCursorGetX и createTextLayout.

Ivan Mahonin cece70
Ivan Mahonin cece70

double textLayoutCursorGetHeight(TextLayout layout, int cursor);

Ivan Mahonin cece70
Ivan Mahonin cece70

Возвращает высоту заданного символа. См. также textLayoutCursorGetX, textLayoutCursorGetY и createTextLayout.

Ivan Mahonin cece70
Ivan Mahonin cece70
Ivan Mahonin cece70
</body>
Ivan Mahonin cece70
</html>