BMP描画ライブラリマニュアル(2001/09/19版) ------------------------------------------------------------------------------- ●使用方法 ソースをプロジェクトに追加するか、libBMP.a をSZABディレクトリの libフォルダに入れて、コンパイル/リンクオプション(LKFLAG2)の最初に -lBMP を設定してください。 また、makeBMP.batはlibBMP.a作成用バッチファイルです。 ReadBMPInfo.cとreadBMP.cと同じディレクトリに置いてコマンドラインにて 実行してください。 関数に関してですが、 char ReadBMPInfo(char* FileName, long* MX, long* MY, char* ColorSize, char* CompType) ●BMPファイルのヘッダ情報を読み出します。 char* FileName : オープンするファイル名(フルパス)の先頭アドレスを入力します。 long* MX : 対象のBMPファイルのX軸サイズが帰ってきます。 long* MY : 対象のBMPファイルのY軸サイズが帰ってきます。 char* ColorSize : 対象のBMPファイルの色数のビットサイズが帰ってきます。 (2色なら1、16色なら4、256色なら8、16ビットカラーなら16、フルカラーなら24) char* CompType : 対象のBMPファイルが圧縮されているかが帰ってきます。 (ベタデータならば0、それ以外は圧縮)   戻り値は、 0 正常終了 1 ファイルがオープンできない 3 BMPファイルではない 10 この形式のBMPファイルは対応不可です char ReadBMP(char *FileName,UINT WriAdd,short ax,short ay,short YY,char mode,char roll) ●BMPファイル内容をオフスクリーンに描画します。 char* FileName : オープンするファイル名(フルパス)の先頭アドレスを入力します。 UINT WriAdd : GetPixMapAdrOffscreen()関数にて得られるオフスクリーンデータ先頭アドレスを  入力します。 short ax : 描画するオフスクリーン上のX軸先頭を入力します。(ドット単位です) short ay : 描画するオフスクリーン上のY軸先頭を入力します。(ドット単位です) short YY : 描画するオフスクリーンのX軸サイズを入力します。 (ドット単位です。つまりXに何ドット足すとYが+1されるかのサイズになります) char mode : 描画モードを入力します。 0 そのまま何もせずに描画します。 1 左上1ドットの色をマスク色として、それ以外の色を描画します。 2 左上1ドットの色をマスク色として黒で、それ以外の色をそのまま描画します。              (スプライトパターン作成用です) 3 左上1ドットの色をマスク色をとして白、それ以外の色を黒にて描画します。              (マスクパターン作成用です) char roll : 描画方向を入力します。 0 そのまま何もせずに描画します。 1 左右を反転して描画します。 2 上下を反転して描画します。 3 左右反転+上下反転して描画します。   戻り値は、 0 正常終了 1 ファイルがオープンできない 3 BMPファイルではない 12 ベタBMPファイルか16ビットBMPではない 13 1、4、8、16、24ビットカラーではない 30 ReadBMP()で使用するヒープが確保できない 使い方の流れとしては、 1. ReadBMPInfo()でXサイズ、Yサイズを読んで、NewOffscreen()でオフスクリーンを確保。 2. GetPixMapAdrOffscreen()でアドレス取得。 3. ReadBMP()でオフスクリーンに描画。 4. DrawOffscreen()でオフスクリーンに描画。 となります。また3の代わりに、 3-1-1. PutPixMapToOffscreen()にて画像取得。 3-1-2. ReadBMP()の mode = 1でオフスクリーンに描画。 としますと、擬似スプライトとして使用できます。 また、ゲーム等高速に表示させたい時には、初期化ルーチンにて 1. ReadBMPInfo()でXサイズ、Yサイズを読んで、NewOffscreen()でパターン用オフスクリーンを確保。 2. GetPixMapAdrOffscreen()でアドレス取得。 3. ReadBMP()の mode = 2でパターン用オフスクリーンに描画。 4. ReadBMPInfo()でXサイズ、Yサイズを読んで、NewOffscreen()でマスク用オフスクリーンを確保。 5. GetPixMapAdrOffscreen()でアドレス取得。 6. ReadBMP()の mode = 3でマスク用オフスクリーンに描画。 としておいて、実際の表示の際には 7. PutPixMapToOffscreen()にて画像取得。 8. 取得した画像とマスク用オフスクリーンとの間にてORを取る。 8. 8で加工したした画像とパターン用オフスクリーンとの間にてANDを取る。 という使い方が出来ます。 ●著作権について   著作権はすべて山之内案山子 HFD00267@nifty.ne.jpが所有しています。 ●配布条件もろもろ ・本ライブラリはフリーのライブラリです。 ・本ライブラリの使用に起因するいかなる事態も責任を負いかねます。 バージョンアップ、バグ対応などに 対する責任も負わないものとします。 ・このライブラリを組み込む場合、フリーソフトウェア、商用目的に関係無く  制限を設けませんが、以下の事を遵守してください。 1)本ライブラリを使用していることを明記していただけると幸いです。 2)転載する際には、事後で結構ですから著作者にその旨連絡を下さるよう お願いします。 雑誌、書籍等での配布も許可は必要ありませんが、収録することを ご一報いただけますと幸いです。 3)ソースの改変についても自由ですが、改変後のソースを  公開していただけると幸いです。 ・なお、作者である山之内案山子 HFD00267@nifty.ne.jpは以上の条件に 縛られません。 山之内案山子 @NIFTY:HFD00267 E-Mail:lips_mail@anet.ne.jp http://www.geocities.co.jp/siliconValley/7518/