Прошлый мой гайд не задевал создание и пуши шрифтов. Сейчас я бы хотел разобрать пару моментов.
Создавать шрифт на самом деле не обязательно, но тогда имгуи будет использовать свой указанный заранее дэфолт шрифт, который выглядит не очень.
И так.
Создание шрифта делится на 2 типа:
1.Через его название.
2.Через компрессед в байтах.
Первый аргумент отвечает за путь до шрифта. В этом варианте мы не указываем отдельный шрифт, а используем глобально. Второе - размер шрифта. Есть, так же и третий - FontConfig, однако не думаю, что этому стоит уделять внимание сейчас.
Мы сейчас рассмотрели вариант 1 - через его название.
Мы так же можем сделать это отдельным шрифтом -
Для самых обычных шрифтов этот способ удобный. Однако если вы захотите использовать шрифт, которого может не быть у другого человека, это окажется не очень удобно, т.е. придется перед стартом имгуи, клиенту придётся с сервера скачать шрифт. Я предлагаю посмотреть вариант 2:
Этот метод как я говорил, более удобный. Сначала скачайте утилиту -
GenerateCode.exe - AnonFiles
Берем файл шрифта и перетаскиваем его на программу. Получаем .h хеадер файл с компрессед шрифтом. Засоуваем его, в проект. И в аргумент 1 и 2 засоуваем название массива, который был в хеадер. Как в примере сверху.
Теперь расскажу как менять шрифт в меню во время его создания и тд.
- ставит новый текущий шрифт до сих пор, пока мы не запишем ---
После этого, текущий шрифт будет тот, который был до пуша (первого кода)
Создавать шрифт на самом деле не обязательно, но тогда имгуи будет использовать свой указанный заранее дэфолт шрифт, который выглядит не очень.
И так.
Создание шрифта делится на 2 типа:
1.Через его название.
2.Через компрессед в байтах.
C++:
ImGuiIO& io = ImGui::GetIO();
io.Fonts->AddFontFromFileTTF("C:\\Windows\\Fonts\\Arial.ttf", 14);
Мы сейчас рассмотрели вариант 1 - через его название.
Мы так же можем сделать это отдельным шрифтом -
C++:
ImGuiIO& io = ImGui::GetIO();
ImFont* MyFont = io.Fonts->AddFontFromFileTTF("C:\\Windows\\Fonts\\Arial.ttf", 14);
C++:
ImFont* pFont = io.Fonts->AddFontFromMemoryTTF(arrow, sizeof(arrow), 30.f);
GenerateCode.exe - AnonFiles
Берем файл шрифта и перетаскиваем его на программу. Получаем .h хеадер файл с компрессед шрифтом. Засоуваем его, в проект. И в аргумент 1 и 2 засоуваем название массива, который был в хеадер. Как в примере сверху.
Теперь расскажу как менять шрифт в меню во время его создания и тд.
Код:
ImGui::PushFont(myFont);
Код:
ImGui::PopFont();
Последнее редактирование: