醋辛 发表于 2025-6-1 18:59:30

SDL2下ImGUI的中文字体显示问题

头文件

#include "imgui/imgui.h"
#include "imgui/imgui_sdl.h"
#include "imgui/imgui_impl_sdl.h"在SDL渲染器创建完毕之后

ImGui::CreateContext();
ImGuiIO& io = ImGui::GetIO();
ImFont* font = io.Fonts->AddFontFromFileTTF(
        "./assets/fonts/simhei.ttf",// 微软雅黑或思源黑体路径
        18.0f,                        // 字号
        nullptr,                        // 使用默认配置
        io.Fonts->GetGlyphRangesChineseFull() // 指定中文字符范围
);
// io.Fonts->TexDesiredWidth = 4096; // 默认1024可能不够
io.Fonts->Build();
ImGuiSDL::Initialize(renderer, windowWidth, windowHeight);循环绘制

ImGui::NewFrame();
if (ImGui::Begin(u8"产生敌人")) {
        ImGui::Text(u8"这里是产生新敌人的地方");
}
ImGui::End();
ImGui::Render();
ImGuiSDL::Render(ImGui::GetDrawData());垃圾回收

ImGuiSDL::Deinitialize();
ImGui::DestroyContext();
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: SDL2下ImGUI的中文字体显示问题