RENDERICON

C#: CWinCtrlRenderIcon

アイコンにレンダリングするためのコントロールです。

指定されたレンダーテクスチャから自動的に矩形を切り出し、レンダリングします。

複数のレンダリング結果を一枚のレンダーテクスチャ内に含めることができるため、一度レンダリングした後のアイコンの描画が高速です。

例えば、リストボックス内のコンテンツに着せ替え可能アバターアイコンを表示したいときなどに使うと効果的です。

また、通常の ICON と同様、通常のテクスチャも一緒にレンダリング可能です。

ただし、 TEXTURE_ZOFFSET には気を付ける必要があります。

RENDERICON(コントロール名) {

プロパティ1;

プロパティ2;

:

:

プロパティn;

};

注釈

レンダリング対象に割り当てられるのは、1枚のみです。

記述例

RENDERICON(Avatar) {
   ID = 000_000_00330;
   POSITION = -315,-22;
   TEX_ID = 255_000_00010;            //render texture id
   CONTENTS_SIZE = 1024,1024; //render texture size
   SIZE = 64,64;                              //display size
};

この例では、1024/64 x 1024/64 = 256個のアイコンを一枚のテクスチャに共有させることができます。 例えば、リストにアイコンを列挙したとき、256個まで一枚のレンダーテクスチャにまとめて、レンダリング可能です。 ただし、256個以上の共有を行うと、領域の確保に失敗し、レンダリングできなくなります。

プロパティ

代表的なデフォルト値

COLOR = 1,1,1,1;
SE_ID = 0;

ID = コントロールID

コントロールIDを定義します。

ID = 001_000_00010;

注釈

設定しなかったときは、自動的にハッシュ値から生成します。

POSITION = X,Y

表示位置を決定します。 STYLEの アンカー 指定に応じて、基準位置が変わります。

POSITION = 32,{50} + 64;

座標は 割合指定 が可能です。

TEX_ID = テクスチャID

TEX_ID n = テクスチャID

レンダーテクスチャのIDを指定します。 同じIDを使うとレンダーテクスチャを共有します。 共有したときは、レンダーテクスチャ内部をアイコンのサイズに分割して使用してくれます。

この値を、TEXTURE_ZOFFSET = テクスチャID,Zオフセット に指定することによって、 レンダリング順序を制御することができます。

確保されるレンダーテクスチャのサイズは、CONTENTS_SIZEから取得します。

注釈

必須のプロパティです。

注釈

共有するのは同一ウィンドウ内においての話です。 ウィンドウを超えて共有はしません。

注釈

コントロール毎に、レンダリング対象のテクスチャIDを一つだけ指定可能です。

TEX_ID n = テクスチャID,パーツID

TEX_ID n = パーツID

テクスチャIDとパーツIDを指定します。

n = [0..7]で指定可能です。

n = 0の時は、TEX_IDと同じテクスチャを操作します。

パーツIDを指定したときは、レンダリング対象にならず、通常のテクスチャとしてレンダリングされます。

CONTENTS_SIZE = レンダーテクスチャサイズ,レンダーテクスチャサイズ

レンダーテクスチャのサイズを指定します。 共有するアイコン間では、共通の値を指定するようにしてください。

違う値を設定したとき、動作の保証はありません。

注釈

必須のプロパティです。

共有するレンダーテクスチャ間で同じ値を設定するようにしてください。

正方形で指定し、幅、高さ共に2のべき乗を指定するようにしてください。 また、最大2048以内に収めておくと互換性の問題が出ずらいです。

注釈

割合指定も可能ですが、互換性の問題もあり、直値を指定するようにしてください。

TEXTURE_OFFSET n = オフセットX,オフセットY

テクスチャの表示オフセットを指定します。

n = [0..7]で指定可能です。

テクスチャオフセットは 割合指定 が可能です。

SIZE = 横サイズ,縦サイズ

表示サイズを変更します。

レンダーテクスチャから、どれ位の矩形を切り出すかを決定するために使われます。

共有しているアイコン間で違う値を設定するとエラーになります。

SIZE = 64,32; //64x32

サイズは 割合指定 が可能です。

注釈

必須のプロパティです。

共有するレンダーテクスチャ間で同じ値を設定するようにしてください。

COLOR = R,G,B,A

カラーを指定します。

R,G,Bについては、0~2の間で指定してください。

1を超えたとき、そのカラー成分を2倍まで上げて表示することができます。

Aについては、0~1の間で指定してください。

COLOR1 = R,G,B,A

レンダリングする際の背景のクリアカラーを指定します。

R,G,B,Aについては、0~1の間で指定してください。

SE_ID = SE_ID

押されたときに鳴らす音のIDを設定します。 デフォルトは、0になっており、音がなりません。

STYLE = フラグ0|フラグ1|..|フラグn

コントロールの表示アンカーを指定できます。

表示位置アンカーフラグ

説明

ANCHOR_DEFAULT

アンカー位置を左上に設定

ANCHOR_LEFTTOPと同じ

コントロールの中心位置はデフォルトで、BASE_LEFTTOPになる。

ANCHOR_LEFTTOP

アンカー位置を左上に設定

コントロールの中心位置はデフォルトで、BASE_LEFTTOPになる。

ANCHOR_LEFT

アンカー位置を左に設定

縦にはセンタリング

コントロールの中心位置はデフォルトで、BASE_LEFTになる。

ANCHOR_LEFTBOTTOM

アンカー位置を左に設定

縦には下辺を基準に配置

コントロールの中心位置はデフォルトで、BASE_LEFTBOTTOMになる。

ANCHOR_TOP

アンカー位置を上辺に設定

横方向にはセンタリング

コントロールの中心位置はデフォルトで、BASE_TOPになる。

ANCHOR_CENTER

アンカー位置を画面中央にセンタリング

コントロールの中心位置はデフォルトで、BASE_CENTERになる。

ANCHOR_BOTTOM

アンカー位置を底辺に設定

横方向にはセンタリング

コントロールの中心位置はデフォルトで、BASE_BOTTOMになる。

ANCHOR_RIGHTTOP

アンカー位置を右上に設定

コントロールの中心位置はデフォルトで、BASE_RIGHTBOTTOMになる。

ANCHOR_RIGHT

アンカー位置を右に設定

縦にはセンタリング

コントロールの中心位置はデフォルトで、BASE_RIGHTになる。

ANCHOR_RIGHTBOTTOM

アンカー位置を右に設定

縦には下辺を基準に配置

コントロールの中心位置はデフォルトで、BASE_RIGHTBOTTOMになる。

コントロールの中心位置を指定できます。

中心位置変更フラグ

説明

BASE_DEFAULT

アンカーフラグに応じて変わる。

特に指定しなければ、これになります。

各アンカーフラグの説明を参照

BASE_LEFTTOP

中心位置をコントロールの左上に設定

BASE_LEFT

中心位置を左に設定

縦にはコントロールの真中

BASE_LEFTBOTTOM

中心位置を左下に設定

BASE_TOP

中心位置を上辺に設定

横にはコントロールの中心

BASE_CENTER

中心位置をコントロールの中心

BASE_BOTTOM

中心位置を底辺に設定

横方向にはコントロールの真中

BASE_RIGHTTOP

中心位置をコントロールの右上に設定

BASE_RIGHT

中心位置を右に設定

横にはコントロールの中心

BASE_RIGHTBOTTOM

中心位置を右下に設定

機能を制限するスタイルは以下のものがあります。

機能制限スタイル

説明

HIDE

表示を隠す。

DRAG

ドラッグ可能にする。

DISABLE

押せなくし、暗くする。

NOHIT

押せなくする。