グラフィックライブラリを作成する場合、実行速度を上げるため、ピクセル処理をインラインアセンブラで作成する必要があります。またフォーマットが数種類あり、実行速度の関係からフォーマット分の関数を作成する必要があります。C++の場合、そのようなコードを生成するためにはプリプロセッサを使うわけですが、プリプロセッサは1行に展開されるため、インラインアセンブラのコードを出力できません。またプリプロセッサの場合、デバッグが非常に困難になります。このような問題を解決するためにPPMacroを開発しました。 |
iCubic Library開発環境 & サンプルのToolsフォルダ内に入っています。 |
コマンドプロンプトから"ppmacro.exe [入力ファイル]
[出力ファイル]"を実行してください。"入力ファイル"が展開されて"出力ファイル"に出力されます。 |
外部のPPMacroファイルをインクルードします。 |
テーブルを定義する。 %テーブル名_num%にテーブルのアイテムの数、%%テーブル名[オフセット位置]にテーブルのアイテムに置換される |
%table Table
ITEM_1
ITEM_2
ITEM_3
%table_end
|
関数を定義する。"%引数名%"の文字列は引数に置換される。関数は%%関数名()に置換される |
%function func_test( param )
%param%
%function_end
|
%loop( offset , 10 )
%offset%
%loop_end
|
%if ONE == ONE
true
%else
false
%endif
|
|
%table Table
ONE
TWO
THREE
FOUR
FIVE
%table_end
%function func_test( param )
%param%
%function_end
%loop( offset , %Table_num% )
%if %%Table[ %offset% ] == ONE
%%func_test( 1 )
%else
%%func_test( %%Table[ %offset%
] )
%endif
%loop_end
|
|
|