bin2cEX
bin2cEXというプログラムは、ファイル内容をC配列に変更する。
実行ファイルに他のファイルデータをインポートするために。
例:テクスチャ、音楽、文字マップなど。
使用法:
bin2cEX [input_file_path] [output_file_path] [array_name] [args...]
bin2cEX には 3 種類の異なる出力形式があります:1つのファイルに配列、ヘッダーに配列プロト、ソースファイルに配列、そして1つのファイルにデータのみの配列です。
使用例:
SimpleVolumeMixerのためにUTF8文字が必要だった。例えば符号、漢字、かななど。
でも、現代に(2025)、C言語でUTF8文字を使うのはマジで面倒くさすぎる。
だから、必要な文字を含むテキストファイルを書くのを考えていた。
テキストファイルを編集するのほうが一番容易いと思う:
// utf8_charmap
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!"#$%&'()*+,-./\:;<=>?@[]^_{|}~‘’“”„•§©®™⁰¹²³⁴⁵⁶⁷⁸⁹
// utf8_charmap_ja
あいうえおかきくけこがぎぐげごさしすせそざじずぜぞたちつてとだぢづでどなにぬねのはひふへほばびぶべぼぱぴぷぺぽまみむめもやゆよらりるれろわをんゃゅょゎっアイウエオカキクケコガギグゲゴサシスセソザジズゼゾタチツテトダヂヅデドナニヌ
ネノハヒフヘホバビブベボパピプペポマミムメモヤユヨラリルレロワヲンャュョヮッ。、、?!「」『』()【】〝〟ー々― 〠※一二三四五六七八九十百千万上下左右中大小川山女男女子先生年目口目耳手足体内外水火木金土天空正早友力心電話食学校店時日月年明
暗立歩死生学使売購買貸借決計賞成立使上進退長短強弱忘会語死食明用近遠転寝開閉出入止行来見思記何読書習見覚難簡倍積速遅話明結休直売品受供支払起着増減関現上下大小二三平山川左右正直明日教進終開始安社動計
C言語の配列を生成する:
bin2cEX.exe utf8_charmap utf8_charmap.c utf8_charmap -output_type raw_array_data_file
bin2cEX.exe utf8_charmap_ja utf8_charmap_ja.c utf8_charmap_ja -output_type raw_array_data_file
コードの中に生成された配列を使う:
u8 UTF8_CHARMAP_DATA[] =
{
#include "utf8_charmap.c"
, // 「#include」と同じ行にコンマを使うのは無理らしい(MSVCでテストした)。
#include "utf8_charmap_ja.c"
};
utf8_font_characters UTF8_FONT_CHARMAP =
{
.data = UTF8_CHARMAP_DATA,
.count = utf8_buf_count(UTF8_CHARMAP_DATA, sizeof(UTF8_CHARMAP_DATA)) // Counts the number of UTF8 characters.
};
if (!upload_font_in_filesystem_to_gpu(
&font_path,
14 /* pixel height */,
&UTF8_FONT_CHARMAP,
&out_font_glyphs,
&out_font_gpu,
allocator
)
)
{
LOG_ERROR("Failed to load font.");
return 0;
}