SHAPE 構造体は塗りスタイルと線スタイル以外のシェイプの要素を定義します。
SHAPE は DefineFont タグでキャラクタグリフを定義するために使われます。
フィールド | 型 | コメント |
NumFillBits | UB[4] | 塗りインデックスの数 |
NumLineBits | UB[4] | 線インデックスの数 |
ShapeRecords | SHAPERECORD[1以上] | シェイプレコード |
SHAPEWITHSTYLE 構造体は SHAPE を拡張したもので、塗りスタイルと線スタイルを含みます。 SHAPEWITHSTYLE は DefineShape タグで使われます。
フィールド | 型 | コメント |
FillStyles | FILLSTYLEARRAY | 塗りスタイルの配列 |
LineStyles | LINESTYLEARRAY | 線スタイルの配列 |
NumFillBits | UB[4] | 塗りインデックスの数 |
NumLineBits | UB[4] | 線インデックスの数 |
ShapeRecords | SHAPERECORD[1以上] | シェイプレコード |
LINESTYLELARRAY と FILLSTYLEARRAY はインデックス値 0 からではなく、 1 から始まります。
次の図は、 SHAPEWITHSTYLE 構造体を表しています。
[ここに図を挿入]
最初に、塗りスタイルと線スタイルが定義されています。これらは一度だけ定義され、あとは配列のインデックス値で参照されます。 図の青い部分はシェイプレコードの配列を表しています。 最初のシェイプレコードは塗りスタイル配列から塗りを選択し、描画位置をシェイプの開始地点に移動しています。 これに一連のエッジレコードが続いています。 次のレコードでは塗りスタイルを変更していて、続くエッジレコードではこのスタイルが使われます。
このタグは完全に自律的なオブジェクトで、スタイル変更レコードは塗りと線のスタイルをこのタグ内から参照しています。