Atoms-TextComponent
Admin私のストアShare
Atomsのテキストコンポーネントについて解説します。
入力パラメーターは文字サイズ、編集フラグ(ON→編集可、OFF→編集不可)、マスキングフラグ(ON→*)、テキスト、文字の色です。
SDL2_ttfを用いて描画しています。文字フォントはpc-9800.ttfを使用していますが、描画モジュールで指定できます。SDL2_ttfは文字サイズ毎のサーフェイスを使用しますので、予め使用するフォントサイズをコンフィグに設定します。描画エンジンで指定されたフォントのサーフェイスを保持しています。描画モジュールで指定された文字サイズのサーフェイスを利用してSDL_renderを作成します。SDL_renderは文字列に変更があった場合に、サーフェイスから再生成しています。
文字コードはUTF8です。1byteずつ処理していますので、マルチバイト文字の場合、例えば一文字削除で最初に1byteの文字を削除します。続き文字ならさらに削除を続ける処理をします。日本語文字なら3byte削除することになります。左右カーソル移動も同様です。カーソル位置を表現するために「|」文字を使用しています。
今後IME対応とSDL3対応を進めていく予定です。文字列が変わった時にSDL_renderを再生成しないといけない仕様が変わったら嬉しいですね。