「付録 E: イメージ プラグインの追加」の続きです。 ## ライブラリ関数
定義
typedef struct imf_capability_entry
{
U_SHORT ice_code;
char *ice_name;
MSGCAT_DEFN ice_name_msg;
} IMF_CAPABILITY_ENTRY;
用途
この構造は IMF_CAPABILITY_LIST の単一のエントリを定義するために使用します。
修正される問題
次の表は、各フィールドについて説明したものです。
定義
typedef struct imf_capability_list
{
int icl_default;
int icl_n_entries;
IMF_CAPABILITY_ENTRY *icl_entries;
} IMF_CAPABILITY_LIST;
用途
IMF_CAPABILITY レコードが IMF_CAPABILITY_TYPE_LIST タイプである場合、imc_value フィールドは、IMF_CAPABILITY_ENTRY レコードの配列である icl_entries ポインタの IMF_CAPABILITY_LIST レコードを示します。
説明
次の表は、各フィールドについて説明したものです。
フィールド | 修正される問題 |
---|---|
|
既定リスト エントリの ice_code |
icl_n_entries |
リスト内のエントリ数 |
icl_entries |
エントリのリスト |
定義
typedef struct imf_capability_number
{
float icn_default;
BOOLEAN icn_minimum_dfnd;
float icn_minimum;
BOOLEAN icn_maximum_dfnd;
float icn_maximum;
floay icn_increment;
} IMF_CAPABILITY_NUMBER;
用途
IMF_CAPABILITY レコードのタイプが IMF_CAPABILITY_TYPE_NUMBER である場合、この構造は既定値と機能で許可される値の範囲を定義するために使用します。
説明
次の表は、各フィールドについて説明したものです。
icn_minimum_dfnd と icn_maximum_dfnd が両方とも TRUE である場合は、テキスト フィールドの横にスライダが表示されます。それ以外は、サムホイールが表示されます。
定義
typedef struct imf_cap_setting
{
U_SHORT imcs_code;
union
{
float imcs_number;
int imcs_list;
} imcs_value;
} IMF_CAP_SETTING;
用途
この構造は、ファイルを開くときに機能の現在の設定をプラグインに渡すために使用します。
フィールド | 修正される問題 |
---|---|
|
設定の imc_code。 |
imcs_number |
機能が IMF_CAPABILITY_TYPE_NUMBER である場合の値。 |
imcs_list |
機能が IMF_CAPABILITY_TYPE_LIST である場合の値。これはリストのゼロベースのインデックスです。 |
定義
typedef struct
{
int usage;
IMF_COLOR_RESPONSE curve;
FMT_ASPECT_INFO aspect;
WINDOW_I window;
WINDOW_I active;
int chan_config;
int chan_orient;
char *chan_format;
int chan_count;
int chan_type;
int chan_bits;
char *matte_format;
int matte_count;
int matte_type;
int matte_bits;
char *aux_format;
int aux_count;
int aux_type;
int aux_bits;
char *index_format;
int index_count;
int index_type;
int index_bits;
} IMF_IMAGE;
用途
IMF_IMAGE はファイル内の単一イメージの内容を定義します。
説明
次の表は、各フィールドについて説明したものです。
定義
typedef struct
{
char *key;
char *handle;
BOOLEAN handle_complete;
char *name;
char *ext;
char *desc;
char *program;
char *machine;
char *user;
char *date;
char *time;
char *filter;
char *compress;
IMF_CAP_SETTING **settings;
BOOLEAN lut_exists;
IMF_LUT *write_lut;
int job_num;
int frame;
int field;
U_LONG init_flag;
COLOR_XYZ_3F red_pri;
COLOR_XYZ_3F green_pri;
COLOR_XYZ_3F blue_pri;
COLOR_XYZ_3F white_pt;
int count;
IMF_IMAGE *image;
int track_num_frames;
float track_frame_rate;
int track_start_frame;
int num_audio_tracks;
int num_video_tracks;
} IMF_INFO;
用途
イメージ ファイルを記述する情報を含みます。
修正される問題
次の表は、各フィールドについて説明したものです。
定義
typedef struct imf_lut
{
IMF_LUT_ENTRY *imu_lut;
int imu_maximum;
int imu_n_entries;
float imu_gamma;
} IMF_LUT;
用途
この構造はルックアップ テーブル(LUT)を定義します。
修正される問題
次の表は、各フィールドについて説明したものです。
フィールド | 修正される問題 |
---|---|
|
ルックアップ テーブルのエントリ |
imu_maximum |
各 LUT エントリが含むことができる最大値 |
imu_n_entries |
imu_lut によって示される LUT エントリの数 |
imu_gamma |
LUT エントリのガンマ値 |
定義
typedef struct imf_lut_entry
{
U_SHORT ile_red;
U_SHORT ile_green;
U_SHORT ile_blue;
U_CHAR ile_mode:7;
U_CHAR ile_transparent:1;
} IMF_LUT_ENTRY;
用途
この構造はルックアップ テーブルのエントリを定義します。
修正される問題
次の表は、各フィールドについて説明したものです。
定義
typedef struct imf_object
{
POINTER *data;
IMF_INFO info;
int access;
IMF_lutReadProc lut_read;
IMF_scanProc scan;
IMF_closeProc close;
IMF_playbackBindProc playback_bind;
IMF_playbackGotoProc playback_goto;
IMF_playbackPlayProc playback_play;
IMF_playbackParamsProc playback_params;
IMF_playbackStopProc playback_stop;
IMF_getFrameProc get_frame;
IMF_getRasterProc get_raster;
IMF_getRegionProc get region;
IMF_setFrameProc set_frame;
} IMF_OBJECT;
用途
この構造は、imageReadOpen と imageWriteOpen を呼び出すときに使用します。
説明
次の表は、各フィールドについて説明したものです。
イメージ ファイル フォーマット プラグインを書き込むと、これをコンパイルして、Maya にロードできる共有オブジェクトを作成する必要があります。gcc コンパイラを使用したサンプルを構築するための、Makefile と buildconfig が Developer Kit に用意されています。Windows では、Visual C++ でイメージ プラグインを構築するためのソリューションとプロジェクト ファイルが用意されています。イメージ プラグインのサンプルを構築する前に、最初に MAYA_LOCATION を設定する必要があります。構築するプラグインは、Maya が新しいイメージ フォーマットにアクセスする前に、$MAYA_LOCATION/bin/plug-ins/image フォルダにコピーしてください。イメージ プラグインは、Maya にロードできるように用意されたコンパイラとリンカーのフラグを使用して構築する必要があります。