「付録 E: イメージ プラグインの追加」の続きです。
定義
unsigned int imageBitsPerChannel
説明
この変数は、サポートされるカラー チャネル単位のビット数を定義します。これは赤、緑、および青のチャネルにのみ適用されます。
この変数はビット フィールドであり、各チャネルがサポートできるビット数(1 ~ 32)を定義するために使用します。最も低いビットを設定すると、フォーマットはカラー チャネル単位に 32 ビットをサポートします。最も高いビットを設定すると、フォーマットはカラー チャネル単位に 32 ビットをサポートします。フォーマットがサポートするすべてのチャネル単位のビット数に基づいて、この変数にビットを設定する必要があります。
既定値は 0x00000080、つまりカラー チャネルごとに 8 ビットです。
例
この 1 番目の例は、カラー チャネル単位に 8 ビットのみをサポートします。2 番目の例 は 8、10、および 16 ビットをサポートします。
unsigned int imageBitsPerChannel = 0x00000080;
unsigned int imageBitsPerChannel = 0x00008280;
定義
unsigned int imageBitsPerMatte;
説明
この変数は、マット チャネルによってサポートされるビット数を記述する点を除いて、imageBitsPerChannel と同じです。
既定値は 0x00000000、つまりフォーマットはマット チャネルをサポートしません。
例
この 1 番目の例は、マット チャネルに 8 ビットのみをサポートします。2 番目の例は 8、10、および 16 ビットをサポートします。
unsigned int imageBitsPerMatte = 0x00000080;
unsigned int imageBitsPerMatte = 0x00008280;
定義
unsigned int imageBitsPerZChannel
説明
この変数は、z チャネルによってサポートされるビット数を記述する点を除いて、imageBitsPerChannel と同じです。
既定値は 0x00000000、つまりフォーマットは z チャネルをサポートしません。
例
この 1 番目の例は、z チャネルに 8 ビットのみをサポートします。2 番目の例は 8、10、および 16 ビットをサポートします。
unsigned int imageBitsPerZChannel = 0x00000080;
unsigned int imageBitsPerZChannel = 0x00008280;
定義
void imageCapability
(
IMF_CAPABILITY **capabilities,
int *num_input,
int *num_output,
int *total
)
パラメータ | 型 | 修正される問題 |
---|---|---|
capabilities |
出力 |
このファイル タイプの機能のポインタを返します。 |
num_input | 出力 |
ファイルの読み取りに適用可能な機能数 |
num_output | 出力 |
ファイルの書き込みに適用可能な機能数 |
total | 出力 |
機能の総数 |
修正される問題
この関数は、Maya でメニューに表示する機能を定義する場合、初期化時にコールされます。この機能の詳細については、IMF_CAPABILITY を参照してください。
例
この汎用コード フラグメントは、機能のプラグインのリストをループします。
int i;
*capabilities = your_capabilities;
for ( *num_input = *num_output = *total = i = 0;
i < number_elements_in( your_capabilities );
++i )
{
if ( your_capabilities[i].imc_when_avail
& IMF_CAPABILITY_WHEN_INPUT )
{
++( *num_input );
}
if ( your_capabilities[i].imc_when_avail
& IMF_CAPABILITY_WHEN_OUTPUT )
{
++( *num_output );
}
if ( your_capabilities[i].imc_when_avail
& ( IMF_CAPABILITY_WHEN_INPUT
| IMF_CAPABILITY_WHEN_OUTPUT ) )
{
++( *total );
}
}
定義
char *imageDescription
説明
この変数は、ファイル フォーマットの詳細を記述するための文字列です。メニューに表示されるときに imageName を補足します。
既定値は NULL、つまり追加の記述は存在しません。
例
char *imageDescription = "Version 2";
定義
void imageDone( void )
説明
このオプション ルーチンは、Maya の終了時にコールされます。プラグインが特別なライセンス発行を必要とする場合、このポイントでライセンスをリリースする必要があります。
定義
char *imageExtension
説明
この変数は、プラグインのファイル名を生成するときの既定拡張子を定義します。前にピリオドを含める必要があります。既定値は NULL、つまりフォーマットは通常、拡張子を使用しません。
この変数は、ファイル タイプに Determine from extension が定義されている場合に、イメージ ファイルのフォーマットを決定するために使用します。
例
char *imageExtension = ".gif";
定義
char *imageFormatString
説明
この変数は、ファイル名の既定フォーマットを定義し、ルートの名前、フレーム番号、および拡張子を含みます。sprintf と同じ表記法を使用します。
変数の 1 番目の %s はルートの名前に使用します。%d はフレーム番号に使用します。2 番 目の %s は拡張子に使用します。デフォルト値は %s.%04.4d.%s です。
例
この例は、ルートの名前の直後にゼロ パディングされていないフレーム番号、その後にピリオドで分離された拡張子が続く構文を定義します。
char *imageFormatString = "%s%d.%s";
定義
BOOLEAN imageHardLinkDuplicates
説明
この変数は、Maya がシーケンスに作成される同じファイルにハード リンクを作成するかどうかを示します。たとえば、image.1.ext、image.2.ext、および image.3.ext が同じである場合、この変数に TRUE を設定すると、Maya は 1 つのファイルしか作成できませんが、他の 2 つのファイルから新規作成したファイルへのハード リンクを作成できます。この変数が FALSE である場合は、3 つの独立した同一のファイルが作成されます。
デフォルト値は TRUE です。
例
BOOLEAN imageHardLinkDuplicates = FALSE;
定義
int imageInit( void )
修正される問題
これを定義すると、このルーチンはプラグインの機能が Maya に追加される前に起動します。戻り値が TRUE の場合、プラグインは通常どおりにロードされます。ただし、戻り値が FALSE の場合は、プラグインがアンロードされます。
この初期化ルーチンを imageDone ルーチンと一緒に使用すると、実装するライセンス発行スキームの開始と終了の方法を取得できます。プラグインが複数の言語サポートを提供する場合、このルーチンでは、任意の言語の文字列を使用できます。この呼び出し内で imageExtension と imageNameSyntax の既定値を設定することもできます。
定義
BOOLEAN imageIsFile(
char *fn,
FILE *fp
}
パラメータ | 型 | 修正される問題 |
---|---|---|
|
char* |
ファイル名(fp が NULL の場合にのみ使用されます)。 |
|
FILE* |
ファイル ポインタ。 |
戻り値 |
TRUE fn または fp がこのプラグインによってサポートされるファイルを示す場合。 |
修正される問題
ファイル名またはポインタがこのプラグインでサポートされるタイプに一致するかどうかをチェックします。
注: このエントリ ポイントの定義は必須です。
例
if ( fp == NULL )
{
fp = fopen( fn, "r" ) );
}
/* Read the header from fp and check for a match with this plug-in */
fread( &magic, 1, sizeof( magic ), fp );
return ( magic & FORMATS_MAGIC_NUMBER )
定義
char *imageNameSyntax
説明
この変数は、ファイル名の既定フォーマットを定義し、ルートの名前、フレーム番号、および拡張子を含みます。
名前の構文は、次の 4 つの文字列を認識します。
これらは目的のファイル名を生成するために、自由に組み合わせることができます。名前、フレーム番号、および拡張子はそれぞれ 1 回しか使用されませんが、# は繰り返してフレーム番号のゼロ パディングに使用できます。
デフォルト値は NULL です。
この文字列指定は Maya に認識されません。
例
この例はフレーム番号に使用される最低 2 桁を含む名前を生成します。名前とフレーム番号の間に句読点はありませんが、フレーム番号と拡張子の間にピリオドが配置されています。
char *imageNameSyntax = "Name##.Ext";
定義
int imageNumberOfChannels
説明
この変数は、ファイル フォーマットがサポートするカラー チャネルの最大数を定義します。マット チャネルは含まれません。通常、RGB イメージでは 3、グレースケールのみをサポートするフォーマットでは 1 です。
デフォルト値は 3 です。
例
int imageNumberOfChannels = 3;
定義
int imageNumberOfMattes;
説明
この変数は、ファイル フォーマットがサポートするマット チャネルまたはアルファ チャネルの最大数を定義します。通常、フォーマットがマットをサポートする場合は 1、サポートしない場合は 0 です。
デフォルト値は 0 です。
例
int imageNumberOfMattes = 1;
定義
int imageNumberOfZChannels
修正される問題
この変数は、ファイル フォーマットがサポートする z チャネルまたは深度チャネルの最大数を定義します。通常、フォーマットが z をサポートする場合は 1、サポートしない場合は 0 です。
デフォルト値は 0 です。
例
int imageNumberOfZChannels = 1;
定義
BOOLEAN imageSupportRemoteAccess
修正される問題
この変数は、プラグインがリモート ファイル アクセスをサポートするかどうかを定義します。サポートする場合は、TRUE に設定します。サポートしない場合、Maya は可能な限りリモート ファイルにアクセスし、ファイル名から先頭の remotehost: を除去してからプラグインに渡します。
デフォルト値は FALSE です。
例
BOOLEAN imageSupportRemoteAccess = TRUE;
定義
int imageSupportsActiveWindow
説明
この変数は、フォーマットがアクティブ ウィンドウをサポートするかどうかを定義します。デフォルト値は FALSE です。
例
int imageSupportsActiveWindow = FALSE;
定義
int your_lut_read_func
(
POINTER data,
IMF_LUT **imf_lut
)
パラメータ | 型 | 修正される問題 |
---|---|---|
|
入力 |
イメージにコネクトするプライベート データ |
|
出力 |
新しく配分されるルックアップ テーブルのポインタ |
戻り値 |
TRUE LUT が正常に配分され、読み取られた場合。FALSE エラーが発生した場合。 |
修正される問題
Maya では、この関数をコールしてイメージ ファイルのカラー ルックアップ テーブルを読み取ります。LUT は通常、使用容量が少ないため、imageReadOpen で読み取り、イメージに関連付けられるプライベート データに格納することをお勧めします。したがって、your_lut_read_func に新しい IMF_LUT を割り当てて、格納した LUT データにコピーするだけです。
``` if ( ( *imf_lut = IMF_lut_alloc( data->your_color_map_size ) ) == NULL ) { return( FALSE ); }
```
イメージ プラグインの追加の詳細については、引き続き、付録 E のパート 3 で説明します。