ホーム > デベロッパ > BREW FAQ

BREW FAQ : リソース

リソース ファイルとは?

リソース ファイルとは、BREW アプリで使用する文字列や画像、ダイアログ、サウンドなどの データを 1 つのファイルにまとめたものです。

リソース ファイルは リソース エディタ を使用して作成します。

リソース ファイルを作成する方法については、 BREW SDK に付属の『BREW リソース エディタ ガイド』をご覧ください。

      

リソース エディタとは?

BREW リソース エディタとは、BREW アプリケーションで使用するリソース ファイル (.bar ファイル) の作成や編集をするためのエディタです。

このエディタを使用して、文字列や画像などのデータを含むリソース ファイルを作成します。

詳細は、『BREW リソース エディタ ガイド』を参照してください。

      

リソース ヘッダーファイルとは?

リソース ヘッダーファイル( _res.h ファイル もしくは BRH ファイル)とは、リソース ID を含むコンパイル用ヘッダーファイルです。

リソース ヘッダーファイルは、 リソース エディタ のメニューで、[作成]→[リソーススクリプトのコンパイル]を選択して実行することで自動生成されます。このとき、BREW アプレット リソースファイル( BAR ファイル )も一緒に自動生成されます。

リソース ヘッダーファイルの名前は、BREW 3.0 以前では アプリ名に " _res.h " を付けたものになり、BREW 3.0 以降は、拡張子が ".brh" になります。

例えば、HelloWorld アプリ なら、BREW 3.0 以前では " HelloWorld_res.h "、BREW 3.0 以降は "HelloWorld.brh" です。

      

BAR ファイルとは?

BAR とは、BREW Application Resource の略で、BREW アプリで使用する文字列、オブジェクト、ダイアログ、そして、サウンドや画像等のバイナリデータが格納されています。

BAR ファイルは、 BREW SDK Tools に同梱されている BREW リソースエディタ を用いて作成します。

その際、BREW 3.0 以前は h 形式、3.0 以降は BRH 形式の C 言語 ヘッダーファイル が自動的に生成されます。

      

BRI ファイルとは?

BRI とは BREW Resource Intermediate の略で、BREW リソースエディタ によって作成される リソース ファイル の コンパイル前の形式です。

BRI ファイルは、BREW 3.0 以前で使用されています。

BREW 3.0 以降では、BRX ファイルを使用します。

      

リソースファイルを作るには?

リソースファイルには、文字列、バイナリ、画像、ダイアログ等が入ります。

これらのデータは、ソースに直接書き込んでも良いのですが、変更する際や、解像度の違う端末用にアプリを作成する場合に不便ですので、リソースファイルを使用する事をおすすめします。

まず、[スタート] から、[BREW SDK Tools 1.0.x1 日本語版] → [BREW リソース エディタ] を選択します。

新しいリソースは、上のメニューバーから [リソース] → [新規文字列] 等で、作成します。入力が終了したら 右下の隅にある [適用] ボタンでリソースを作成します。

リソースを入力し終わったら、上のメニューバーから [作成] → [リソーススクリプトのコンパイル] で、コンパイルを行います。

この際、まず BRX ファイルが中間ファイルとして作成され、その後、BRXファイルと同じフォルダ内に BAR ファイルBRH ファイルが作成されます。

簡単に説明すると、BRX はリソースの編集用ファイル、BAR ファイルがコンパイルされたリソースファイルで、BRH ファイルは BAR ファイルの為の C 言語 ヘッダーファイルです。

参考入力例

続きを読む »

      

リソースファイルから文字列を読み込むには?

BREW のリソースファイルから文字列を読み込むには ISHELL_LoadResString() 関数を使用します。

また、文字列読み込みに必要なヒープのサイズは ISHELL_GetResSize() 関数で取得します。

[BREW API のみを使用したコード ]

  uint32 size;
  AECHAR* buffer;
  
  ISHELL_GetResSize(shell, "myres.bar", 128, RESTYPE_STRING, &size);
  if ((buffer = MALLOC(size)) != NULL) {
  ISHELL_LoadResString(shell, "myres.bar", 128, buffer, size);
  .. 文字列を利用      
  FREE(buffer);
  }
  ※エラー処理は省略

なお、リソースファイルを作成するには、BREW リソースエディタで文字列リソースを作成し、文字エンコーディングを SJIS に設定します。

      

リソース ファイルからデータを取得するには?

リソース ファイルからデータを取得するには、IShell インターフェイスの関数を使用します。

たとえば、ビットマップの取得には ISHELL_LoadResBitmap 関数を使用します。

ISHELL_LoadResBitmap は、以下のように定義されています。

ISHELL_LoadResBitmap(
 shell,     // IShell インターフェイスを指すポインタ
 filename,  // リソース ファイル名
 id         // リソース ID
);

この関数を使用する場合は、リソース ファイル名とリソース ID を指定する必要があります。

リソース ID とは、リソース ファイルからデータを読み込むときに使用する値で、 リソース エディタを使用して開発者が任意に設定できます。

リソース エディタを使用して設定したリソース ID は、 リソース ヘッダーファイルに定義されますので、 ユーザはリソース ヘッダーファイルをインクルードする必要があります。

リソース ファイルからデータを取得するための関数は、次のとおりです。

続きを読む »

      

リソース ファイルに任意のバイナリ データを保存できますか?

リソースエディタ を使用して、 任意のバイナリ データを画像ファイルとしてリソース ファイルに保存できます。

リソース ファイルからバイナリ データを取り出すには、 ISHELL_LoadResData 関数や ISHELL_LoadResDataEx 関数を使用します。

リソース ファイルから、任意のバイナリ データを取り出す手順を記載します。

  1. ISHELL_LoadResData 関数や ISHELL_LoadResDataEx 関数を使用し、 リソース ファイルから画像データとしてバイナリ データを取得します。
  2. 手順 1 で取得したデータの第 1 バイト目から、任意のバイナリ データの開始オフセット値を取得します。
  3. 手順 1 で取得したデータにオフセット値を加算し、任意のバイナリ データを取得します。

※ 第 3 バイト目から始まる文字列は、MIME タイプを示しています。

SophiaFramework では、 SFBShell::LoadResData 関数や SFBShell::LoadResDataEx 関数を使用します。

【 コード例 】

続きを読む »