.. default-domain:: csharp .. _RENDERICON: ============================== RENDERICON ============================== C#: :ref:`CWinCtrlRenderIcon` アイコンにレンダリングするためのコントロールです。 指定されたレンダーテクスチャから自動的に矩形を切り出し、レンダリングします。 複数のレンダリング結果を一枚のレンダーテクスチャ内に含めることができるため、一度レンダリングした後のアイコンの描画が高速です。 例えば、リストボックス内のコンテンツに着せ替え可能アバターアイコンを表示したいときなどに使うと効果的です。 また、通常の :ref:`ICON<ICON>` と同様、通常のテクスチャも一緒にレンダリング可能です。 ただし、 :ref:`TEXTURE_ZOFFSET<WINDOW_PROP_TEXTURE_ZOFFSET>` には気を付ける必要があります。 RENDERICON(コントロール名) { プロパティ1; プロパティ2; : : プロパティn; }; .. note:: レンダリング対象に割り当てられるのは、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; .. note:: 設定しなかったときは、自動的にハッシュ値から生成します。 **POSITION** = :ref:`X,Y<RATIOVALUE>` ------------------------------------------- 表示位置を決定します。 STYLEの :ref:`アンカー<CTRL_ANCHOR>` 指定に応じて、基準位置が変わります。 :: POSITION = 32,{50} + 64; .. 座標は :ref:`割合指定<RATIOVALUE>` が可能です。 **TEX_ID** = テクスチャID ------------------------------------------- **TEX_ID** n = テクスチャID ------------------------------------------- レンダーテクスチャのIDを指定します。 同じIDを使うとレンダーテクスチャを共有します。 共有したときは、レンダーテクスチャ内部をアイコンのサイズに分割して使用してくれます。 この値を、:ref:`WINDOW_PROP_TEXTURE_ZOFFSET` に指定することによって、 レンダリング順序を制御することができます。 確保されるレンダーテクスチャのサイズは、CONTENTS_SIZEから取得します。 .. note:: 必須のプロパティです。 .. note:: 共有するのは同一ウィンドウ内においての話です。 ウィンドウを超えて共有はしません。 .. note:: コントロール毎に、レンダリング対象のテクスチャIDを一つだけ指定可能です。 **TEX_ID** n = テクスチャID,パーツID ------------------------------------------- **TEX_ID** n = パーツID ------------------------------------------- テクスチャIDとパーツIDを指定します。 n = [0..7]で指定可能です。 n = 0の時は、TEX_IDと同じテクスチャを操作します。 パーツIDを指定したときは、レンダリング対象にならず、通常のテクスチャとしてレンダリングされます。 **CONTENTS_SIZE** = :ref:`レンダーテクスチャサイズ,レンダーテクスチャサイズ<RATIOVALUE>` ----------------------------------------------------------------------------------------------- レンダーテクスチャのサイズを指定します。 共有するアイコン間では、共通の値を指定するようにしてください。 違う値を設定したとき、動作の保証はありません。 .. note:: 必須のプロパティです。 共有するレンダーテクスチャ間で同じ値を設定するようにしてください。 正方形で指定し、幅、高さ共に2のべき乗を指定するようにしてください。 また、最大2048以内に収めておくと互換性の問題が出ずらいです。 .. note:: 割合指定も可能ですが、互換性の問題もあり、直値を指定するようにしてください。 **TEXTURE_OFFSET** n = :ref:`オフセットX,オフセットY<RATIOVALUE>` --------------------------------------------------------------------- テクスチャの表示オフセットを指定します。 n = [0..7]で指定可能です。 テクスチャオフセットは :ref:`割合指定<RATIOVALUE>` が可能です。 **SIZE** = :ref:`横サイズ,縦サイズ<RATIOVALUE>` -------------------------------------------------- 表示サイズを変更します。 レンダーテクスチャから、どれ位の矩形を切り出すかを決定するために使われます。 共有しているアイコン間で違う値を設定するとエラーになります。 :: SIZE = 64,32; //64x32 .. サイズは :ref:`割合指定<RATIOVALUE>` が可能です。 .. note:: 必須のプロパティです。 共有するレンダーテクスチャ間で同じ値を設定するようにしてください。 **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 ------------------------------------------- コントロールの表示アンカーを指定できます。 .. tabularcolumns:: |p{0.4\linewidth}|p{0.6\linewidth}| +--------------------------+---------------------------------------------------------------+ | 表示位置アンカーフラグ |説明 | +==========================+===============================================================+ |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になる。 | +--------------------------+---------------------------------------------------------------+ コントロールの中心位置を指定できます。 .. tabularcolumns:: |p{0.4\linewidth}|p{0.6\linewidth}| +-------------------+-----------------------------------------+ |中心位置変更フラグ | 説明 | +===================+=========================================+ |BASE_DEFAULT |アンカーフラグに応じて変わる。 | | | | | |特に指定しなければ、これになります。 | | | | | |各アンカーフラグの説明を参照 | +-------------------+-----------------------------------------+ |BASE_LEFTTOP |中心位置をコントロールの左上に設定 | +-------------------+-----------------------------------------+ |BASE_LEFT |中心位置を左に設定 | | | | | |縦にはコントロールの真中 | +-------------------+-----------------------------------------+ |BASE_LEFTBOTTOM |中心位置を左下に設定 | +-------------------+-----------------------------------------+ |BASE_TOP |中心位置を上辺に設定 | | | | | |横にはコントロールの中心 | +-------------------+-----------------------------------------+ |BASE_CENTER |中心位置をコントロールの中心 | +-------------------+-----------------------------------------+ |BASE_BOTTOM |中心位置を底辺に設定 | | | | | |横方向にはコントロールの真中 | +-------------------+-----------------------------------------+ |BASE_RIGHTTOP |中心位置をコントロールの右上に設定 | +-------------------+-----------------------------------------+ |BASE_RIGHT |中心位置を右に設定 | | | | | |横にはコントロールの中心 | +-------------------+-----------------------------------------+ |BASE_RIGHTBOTTOM |中心位置を右下に設定 | +-------------------+-----------------------------------------+ 機能を制限するスタイルは以下のものがあります。 +----------------+-----------------------------+ |機能制限スタイル|説明 | +================+=============================+ |HIDE |表示を隠す。 | +----------------+-----------------------------+ |DRAG |ドラッグ可能にする。 | +----------------+-----------------------------+ |DISABLE |押せなくし、暗くする。 | +----------------+-----------------------------+ |NOHIT |押せなくする。 | +----------------+-----------------------------+