ofxImGuiの日本語表示・入力について


jvcleave/ofxImGui

ofxImGuiはOpenFrameworksで使用できる、GUIライブラリImGuiのラッパー。
UTF-8の表示・入力にも対応しているので日本語の表示や入力も可能……のはずなのですが、実際に試したら手間取ったので備忘録を残しておきます。

結論から言うと、日本語の表示は可能ですが入力は不可能です。

日本語表示

フォントを予め用意した日本語フォントに設定しておけば、他の設定は不要で日本語表示が行えます。
ただし、gui.setup()の実行の前にフォント設定を行わないとデフォルトのフォントが使用されてしまいます。

void ofApp::setup()
{
    // ※ フォント設定はgui.setupの前
    ImGuiIO& io = ImGui::GetIO();
    io.Fonts->AddFontFromFileTTF("data\\migu-1m-regular.ttf", 14.0f, nullptr, io.Fonts->GetGlyphRangesJapanese());

    //required call
    gui.setup();

日本語入力

setupにて、以下のようにIMEのハンドラ設定を行えばよいはずなのですが、InputTextにてIMEを起動すると「????」と表示されてしまい、日本語入力が行えません。

    // MSIMEのハンドラ設定
    io.ImeWindowHandle = ofGetWin32Window();

InputText show '???' when use IME #471

OpenFrameworksと使用しているGLFWのバージョンの問題のため、現状は日本語入力は正しく行えないようです。
バージョンアップに期待。