Подведи собственные итоги года совместно с YOUGAME и забери ценные призы! Перейти

Вопрос Почему не рисуеться шрифт? ImGui

  • Автор темы Автор темы flowxrc
  • Дата начала Дата начала
Участник
Участник
Статус
Оффлайн
Регистрация
6 Сен 2020
Сообщения
754
Реакции
366
Хук - MinHook
Библиотека - ImGui
Скрин:
1605166676142.png


p.s шрифт у меня установлен и в дебаге ничего нету
Код:
C++:
Expand Collapse Copy
ImGuiIO& io = ImGui::GetIO();
    ImFont* bold = io.Fonts->AddFontFromFileTTF("C:\\Windows\\Fonts\\MuseoSansCyrl-900.ttf", 16.0f);
    IM_ASSERT(bold != NULL);
    ImFont* semibold = io.Fonts->AddFontFromFileTTF("C:\\Windows\\Fonts\\MuseoSansCyrl-700.ttf", 16.0f);
    IM_ASSERT(semibold != NULL);
    ImFont* regular = io.Fonts->AddFontFromFileTTF("C:\\Windows\\Fonts\\MuseoSansCyrl-500.ttf", 16.0f);
    IM_ASSERT(regular != NULL);
    if (ImGui::Begin("Test")) {
        ImGui::PushFont(bold);
        ImGui::Text("bold");
        ImGui::PopFont();
        ImGui::PushFont(semibold);
        ImGui::Text("semibold");
        ImGui::PopFont();
        ImGui::PushFont(regular);
        ImGui::Text("regular");
        ImGui::PopFont();
    }
    ImGui::End();
 
Поверх методов:
C++:
Expand Collapse Copy
ImFont* font_def;
ImFont* font_custom;
В инициализацию:
C++:
Expand Collapse Copy
font_def = io.Fonts->AddFontDefault();
font_custom = io.Fonts->AddFontFromFileTTF("C:\\Windows\\Fonts\\Tahoma.ttf", 9.f);
В меню:
C++:
Expand Collapse Copy
ImGui::PushFont(font_custom);
ImGui::Checkbox(...);
ImGui::PopFont();
Тем самым на всё меню применится font_def, ибо он инициализирован, как и font_custom, который будет работать лишь после вызова Push \ Func \ Pop
 
Поверх методов:
C++:
Expand Collapse Copy
ImFont* font_def;
ImFont* font_custom;
В инициализацию:
C++:
Expand Collapse Copy
font_def = io.Fonts->AddFontDefault();
font_custom = io.Fonts->AddFontFromFileTTF("C:\\Windows\\Fonts\\Tahoma.ttf", 9.f);
В меню:
C++:
Expand Collapse Copy
ImGui::PushFont(font_custom);
ImGui::Checkbox(...);
ImGui::PopFont();
Тем самым на всё меню применится font_def, ибо он инициализирован, как и font_custom, который будет работать лишь после вызова Push \ Func \ Pop
edit: у меня не работает куча шрифтов типо SourceSans, MuseoSans и т.д.
 
Последнее редактирование:
Ну у меня тоже иногда какие то шрифты не работают, ничего с этим не поделать
Просто не работают все. К примеру не работают: SourceSans, Myriad, Arial и шрифты с менюшек там где иконки
 
Просто не работают все. К примеру не работают: SourceSans, Myriad, Arial и шрифты с менюшек там где иконки
Всё работает
1605174365939.png

При условии, что я только для них использовал вызов Push-Pop
Инициализировал таким же принципом
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Знаю что ответ очень своевременный. Но вполне решением будет убрать вот такие строки
Почему это может стать решением? Ведь если regular это указатель на nullptr то имгуй обратится к месту в памяти которое вообще не причем и попробует прочитать ту память как шрифт, что явно не хорошо. А если где-то внутри оно еще и может менять память то вообще пздц...

Я бы перевел шрифт в байты через тот же binary_to_compressed_c (можно найти в репозитории имгуя) и заюзал бы AddFontFromMemoryCompressedTTF потом, должно заработать
 
Назад
Сверху Снизу