ID2D1RenderTarget
COM公式ドキュメント
描画コマンドを受け取ることができるオブジェクトを表します。ID2D1RenderTarget を継承するインターフェイスは、受け取った描画コマンドをそれぞれ異なる方法でレンダリングします。
解説(Remarks)
アプリケーションでは、レンダーターゲットを一度だけ作成し、アプリケーションの実行中、またはレンダーターゲットの EndDraw メソッドが D2DERR_RECREATE_TARGET エラーを返すまで保持するようにしてください。このエラーを受け取った場合は、レンダーターゲット(およびそれが作成したすべてのリソース)を再作成する必要があります。
メソッド 53
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
| size | D2D_SIZE_U | in | 作成するビットマップのピクセル寸法(幅・高さ)。 |
| srcData | void* | inoptional | 初期化用ピクセルデータへのポインタ。NULL可で未初期化のまま作成する。 |
| pitch | DWORD | in | srcDataの1行あたりのバイト数(ストライド)。 |
| bitmapProperties | D2D1_BITMAP_PROPERTIES* | in | ピクセル形式とDPIを指定するビットマップ属性へのポインタ。 |
| bitmap | ID2D1Bitmap** | out | 作成されたビットマップを受け取る出力ポインタ。 |
| wicBitmapSource | IWICBitmapSource* | in | 変換元となるWICビットマップソースへのポインタ。 |
| bitmapProperties | D2D1_BITMAP_PROPERTIES* | inoptional | ピクセル形式とDPIを指定するビットマップ属性。NULL可でソースから推定する。 |
| bitmap | ID2D1Bitmap** | out | 作成されたビットマップを受け取る出力ポインタ。 |
データを別のリソースと共有する ID2D1Bitmap を作成します。
| riid | GUID* | in | ソースデータを提供するオブジェクトのインターフェイス ID。 |
| data | void* | inout | 新しい ID2D1Bitmap と共有するデータを格納する ID2D1Bitmap、IDXGISurface、または IWICBitmapLock。詳細については、「解説」セクションを参照してください。 |
| bitmapProperties | D2D1_BITMAP_PROPERTIES* | inoptional | 作成するビットマップのピクセルフォーマットと DPI。ピクセルフォーマットの DXGI_FORMAT 部分は data の DXGI_FORMAT と一致している必要があり、一致しない場合はメソッドが失敗します。ただし、アルファモードは一致している必要はありません。不一致を防ぐには、NULL または D2D1::PixelFormat ヘルパー関数から取得した値を渡すことができます。DPI 設定は data のものと一致している必要はありません。dpiX と dpiY の両方が 0.0f の場合、レンダーターゲットの DPI が使用されます。 |
| bitmap | ID2D1Bitmap** | out | このメソッドが返るときに、新しいビットマップへのポインターのアドレスを格納します。このパラメーターは初期化せずに渡します。 |
戻り値
解説(Remarks)
CreateSharedBitmap メソッドは、ビットマップデータを効率的に再利用するのに便利であり、また Direct3D との相互運用性を提供するためにも使用できます。
ID2D1Bitmap の共有
リソース互換性のあるレンダーターゲットによって作成された ID2D1Bitmap を渡すことで、そのレンダーターゲットとビットマップを共有できます。元の ID2D1Bitmap と、このメソッドによって作成される新しい ID2D1Bitmap の両方が、同じビットマップデータを指すようになります。レンダーターゲットのリソースを共有できる条件の詳細については、リソースの概要の「レンダーターゲットリソースの共有」セクションを参照してください。このメソッドを使用して、既存のビットマップのデータを再解釈し、新しい DPI やアルファモードを指定することもできます。たとえば、ビットマップアトラスの場合、ID2D1Bitmap に複数のサブイメージが含まれ、それぞれ異なる D2D1_ALPHA_MODE(D2D1_ALPHA_MODE_PREMULTIPLIED または D2D1_ALPHA_MODE_IGNORE)でレンダリングする必要がある場合があります。CreateSharedBitmap メソッドを使用すれば、ビットマップの別のコピーをメモリに読み込むことなく、目的のアルファモードでビットマップを再解釈できます。
IDXGISurface の共有
DXGI サーフェスレンダーターゲット(CreateDxgiSurfaceRenderTarget メソッドによって作成された ID2D1RenderTarget オブジェクト)を使用する場合、IDXGISurface サーフェスを CreateSharedBitmap メソッドに渡すことで、Direct3D とビデオメモリを共有し、Direct3D のコンテンツを ID2D1Bitmap として操作できます。リソースの概要で説明されているとおり、レンダーターゲットと IDXGISurface は同じ Direct3D デバイスを使用している必要があります。
また、IDXGISurface は、サポートされるピクセルフォーマットとアルファモードで説明されているサポート対象のピクセルフォーマットとアルファモードのいずれかを使用している必要があることに注意してください。
Direct3D との相互運用性の詳細については、Direct2D と Direct3D の相互運用性の概要を参照してください。
IWICBitmapLock の共有
IWICBitmapLock は、WIC ビットマップのコンテンツを格納し、同時アクセスから保護します。IWICBitmapLock を CreateSharedBitmap メソッドに渡すことで、IWICBitmapLock にすでに格納されているビットマップデータを指す ID2D1Bitmap を作成できます。IWICBitmapLock を CreateSharedBitmap メソッドで使用するには、レンダーターゲットがソフトウェアレンダリングを使用している必要があります。レンダーターゲットにソフトウェアレンダリングを強制するには、レンダーターゲットの作成に使用する D2D1_RENDER_TARGET_PROPERTIES 構造体の type フィールドを D2D1_RENDER_TARGET_TYPE_SOFTWARE に設定します。既存のレンダーターゲットがソフトウェアレンダリングを使用しているかどうかを確認するには、IsSupported メソッドを使用します。
| bitmap | ID2D1Bitmap* | inoptional | ブラシの内容となるビットマップへのポインタ。 |
| bitmapBrushProperties | D2D1_BITMAP_BRUSH_PROPERTIES* | inoptional | 拡張モードと補間モードを指定するブラシ属性。NULL可で既定値。 |
| brushProperties | D2D1_BRUSH_PROPERTIES* | inoptional | 不透明度と変換を指定する共通ブラシ属性。NULL可で既定値。 |
| bitmapBrush | ID2D1BitmapBrush** | out | 作成されたビットマップブラシを受け取る出力ポインタ。 |
| color | D2D1_COLOR_F* | in | ブラシの単色を指定するRGBA色構造体へのポインタ。 |
| brushProperties | D2D1_BRUSH_PROPERTIES* | inoptional | 不透明度と変換を指定する共通ブラシ属性。NULL可で既定値。 |
| solidColorBrush | ID2D1SolidColorBrush** | out | 作成された単色ブラシを受け取る出力ポインタ。 |
| gradientStops | D2D1_GRADIENT_STOP* | in | 位置と色を持つグラデーションストップの配列ポインタ。 |
| gradientStopsCount | DWORD | in | gradientStops配列の要素数。2以上を指定する。 |
| colorInterpolationGamma | D2D1_GAMMA | in | 色補間に用いるガンマ空間を指定する列挙値。 |
| extendMode | D2D1_EXTEND_MODE | in | グラデーション範囲外の拡張方法を指定する列挙値。 |
| gradientStopCollection | ID2D1GradientStopCollection** | out | 作成されたグラデーションストップ集合を受け取る出力ポインタ。 |
| linearGradientBrushProperties | D2D1_LINEAR_GRADIENT_BRUSH_PROPERTIES* | in | 始点と終点を指定する線形グラデーション固有属性へのポインタ。 |
| brushProperties | D2D1_BRUSH_PROPERTIES* | inoptional | 不透明度と変換を指定する共通ブラシ属性。NULL可で既定値。 |
| gradientStopCollection | ID2D1GradientStopCollection* | in | ブラシに適用するグラデーションストップ集合へのポインタ。 |
| linearGradientBrush | ID2D1LinearGradientBrush** | out | 作成された線形グラデーションブラシを受け取る出力ポインタ。 |
| radialGradientBrushProperties | D2D1_RADIAL_GRADIENT_BRUSH_PROPERTIES* | in | 中心・原点オフセット・半径を指定する放射グラデーション固有属性へのポインタ。 |
| brushProperties | D2D1_BRUSH_PROPERTIES* | inoptional | 不透明度と変換を指定する共通ブラシ属性。NULL可で既定値。 |
| gradientStopCollection | ID2D1GradientStopCollection* | in | ブラシに適用するグラデーションストップ集合へのポインタ。 |
| radialGradientBrush | ID2D1RadialGradientBrush** | out | 作成された放射グラデーションブラシを受け取る出力ポインタ。 |
| desiredSize | D2D_SIZE_F* | inoptional | DIP単位での希望サイズ。NULL可で元ターゲットと同寸。 |
| desiredPixelSize | D2D_SIZE_U* | inoptional | ピクセル単位での希望サイズ。NULL可で自動算出する。 |
| desiredFormat | D2D1_PIXEL_FORMAT* | inoptional | 希望するピクセル形式。NULL可で元ターゲットに合わせる。 |
| options | D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS | in | GDI互換などの作成オプションを指定するフラグ列挙値。 |
| bitmapRenderTarget | ID2D1BitmapRenderTarget** | out | 作成された互換ビットマップレンダーターゲットを受け取る出力ポインタ。 |
| size | D2D_SIZE_F* | inoptional | レイヤーの初期サイズ。NULL可でサイズ自動調整を意味する。 |
| layer | ID2D1Layer** | out | 作成されたレイヤーリソースを受け取る出力ポインタ。 |
三角形を使用して形状を記述するメッシュを作成します。
| mesh | ID2D1Mesh** | out | このメソッドが返るときに、新しいメッシュへのポインターへのポインターを格納します。 |
戻り値
解説(Remarks)
メッシュにデータを設定するには、その Open メソッドを使用して ID2D1TessellationSink を取得します。メッシュを描画するには、レンダーターゲットの FillMesh メソッドを使用します。
指定したストロークスタイルを使用して、指定した点の間に線を描画します。
| point0 | D2D_POINT_2F | in | 線の始点(デバイス非依存ピクセル単位)。 |
| point1 | D2D_POINT_2F | in | 線の終点(デバイス非依存ピクセル単位)。 |
| brush | ID2D1Brush* | in | 線のストロークを描画するために使用するブラシ。 |
| strokeWidth | FLOAT | in | ストロークの幅(デバイス非依存ピクセル単位)。値は 0.0f 以上でなければなりません。このパラメーターを指定しない場合、既定値は 1.0f です。ストロークは線の中央に配置されます。 |
| strokeStyle | ID2D1StrokeStyle* | inoptional | 描画するストロークのスタイル。実線を描画する場合は NULL を指定します。 |
解説(Remarks)
このメソッドは失敗してもエラーコードを返しません。描画操作(DrawLine など)が失敗したかどうかを判断するには、ID2D1RenderTarget::EndDraw メソッドまたは ID2D1RenderTarget::Flush メソッドが返す結果を確認してください。
例
次の例では、DrawLine メソッドを使用して、レンダーターゲットの幅と高さいっぱいに広がるグリッドを作成します。幅と高さの情報は rtSize 変数によって提供されます。
// Draw a grid background.
int width = static_cast<int>(rtSize.width);
int height = static_cast<int>(rtSize.height);
for (int x = 0; x < width; x += 10)
{
m_pRenderTarget->DrawLine(
D2D1::Point2F(static_cast<FLOAT>(x), 0.0f),
D2D1::Point2F(static_cast<FLOAT>(x), rtSize.height),
m_pLightSlateGrayBrush,
0.5f
);
}
for (int y = 0; y < height; y += 10)
{
m_pRenderTarget->DrawLine(
D2D1::Point2F(0.0f, static_cast<FLOAT>(y)),
D2D1::Point2F(rtSize.width, static_cast<FLOAT>(y)),
m_pLightSlateGrayBrush,
0.5f
);
}
| rect | D2D_RECT_F* | in | 描画する矩形の座標を指定するポインタ。 |
| brush | ID2D1Brush* | in | 輪郭線の描画に用いるブラシへのポインタ。 |
| strokeWidth | FLOAT | in | 輪郭線の太さ。デバイス非依存ピクセル単位の浮動小数。 |
| strokeStyle | ID2D1StrokeStyle* | inoptional | 線のスタイル。NULL可で既定の実線を用いる。 |
| rect | D2D_RECT_F* | in | 塗りつぶす矩形の座標を指定するポインタ。 |
| brush | ID2D1Brush* | in | 塗りつぶしに用いるブラシへのポインタ。 |
| roundedRect | D2D1_ROUNDED_RECT* | in | 描画する角丸矩形の定義へのポインタ。 |
| brush | ID2D1Brush* | in | 輪郭線の描画に用いるブラシへのポインタ。 |
| strokeWidth | FLOAT | in | 輪郭線の太さ。デバイス非依存ピクセル単位の浮動小数。 |
| strokeStyle | ID2D1StrokeStyle* | inoptional | 線のスタイル。NULL可で既定の実線を用いる。 |
| roundedRect | D2D1_ROUNDED_RECT* | in | 塗りつぶす角丸矩形の定義へのポインタ。 |
| brush | ID2D1Brush* | in | 塗りつぶしに用いるブラシへのポインタ。 |
| ellipse | D2D1_ELLIPSE* | in | 描画する楕円の定義へのポインタ。 |
| brush | ID2D1Brush* | in | 輪郭線の描画に用いるブラシへのポインタ。 |
| strokeWidth | FLOAT | in | 輪郭線の太さ。デバイス非依存ピクセル単位の浮動小数。 |
| strokeStyle | ID2D1StrokeStyle* | inoptional | 線のスタイル。NULL可で既定の実線を用いる。 |
| ellipse | D2D1_ELLIPSE* | in | 塗りつぶす楕円の定義へのポインタ。 |
| brush | ID2D1Brush* | in | 塗りつぶしに用いるブラシへのポインタ。 |
指定したストロークスタイルを使用して、指定したジオメトリの輪郭を描画します。
| geometry | ID2D1Geometry* | in | 描画するジオメトリ。 |
| brush | ID2D1Brush* | in | ジオメトリのストロークを描画するために使用するブラシ。 |
| strokeWidth | FLOAT | in | ストロークの幅(デバイス非依存ピクセル単位)。値は 0.0f 以上でなければなりません。このパラメーターを指定しない場合、既定値は 1.0f です。ストロークは線の中央に配置されます。 |
| strokeStyle | ID2D1StrokeStyle* | inoptional | ジオメトリの輪郭に適用するストロークのスタイル。実線のストロークを描画する場合は NULL を指定します。 |
解説(Remarks)
このメソッドは失敗してもエラーコードを返しません。描画操作(DrawGeometry など)が失敗したかどうかを判断するには、ID2D1RenderTarget::EndDraw メソッドまたは ID2D1RenderTarget::Flush メソッドが返す結果を確認してください。
例
例については、複雑な図形を描画して塗りつぶす方法を参照してください。
指定したジオメトリの内部を塗りつぶします。
| geometry | ID2D1Geometry* | in | 塗りつぶすジオメトリ。 |
| brush | ID2D1Brush* | in | ジオメトリの内部を塗りつぶすために使用するブラシ。 |
| opacityBrush | ID2D1Brush* | inoptional | ジオメトリに適用する不透明度マスク。不透明度マスクを使用しない場合は NULL を指定します。不透明度マスク(opacityBrush パラメーター)を指定する場合、brush は、x 方向および y 方向の拡張モードが D2D1_EXTEND_MODE_CLAMP に設定された ID2D1BitmapBrush でなければなりません。詳細については、「解説」セクションを参照してください。 |
解説(Remarks)
opacityBrush パラメーターが NULL でない場合、マッピングされた opacityBrush の各ピクセルのアルファ値を使用して、ジオメトリの対応する各ピクセルの最終的な不透明度が決定されます。この処理ではブラシ内の各色のアルファ値のみが使用され、その他の色情報はすべて無視されます。
ブラシで指定されたアルファ値は、ジオメトリが brush によって塗りつぶされた後に、ジオメトリのアルファ値と乗算されます。
このメソッドは失敗してもエラーコードを返しません。描画操作(FillGeometry など)が失敗したかどうかを判断するには、ID2D1RenderTarget::EndDraw メソッドまたは ID2D1RenderTarget::Flush メソッドが返す結果を確認してください。
例
例については、複雑な図形を描画して塗りつぶす方法を参照してください。
指定したメッシュの内部を塗りつぶします。
| mesh | ID2D1Mesh* | in | 塗りつぶすメッシュ。 |
| brush | ID2D1Brush* | in | メッシュを塗りつぶすために使用するブラシ。 |
解説(Remarks)
FillMesh を呼び出すときは、レンダーターゲットの現在のアンチエイリアスモードが D2D1_ANTIALIAS_MODE_ALIASED でなければなりません。レンダーターゲットのアンチエイリアスモードを変更するには、SetAntialiasMode メソッドを使用します。
FillMesh は、ID2D1Mesh 内の三角形に特定の回り順(ワインディング順序)を必要としません。時計回りと反時計回りのどちらでも動作します。
このメソッドは失敗してもエラーコードを返しません。描画操作(FillMesh など)が失敗したかどうかを判断するには、ID2D1RenderTarget::EndDraw メソッドまたは ID2D1RenderTarget::Flush メソッドが返す結果を確認してください。
| opacityMask | ID2D1Bitmap* | in | アルファ値をマスクとして用いるビットマップへのポインタ。 |
| brush | ID2D1Brush* | in | マスクを通して塗る色を提供するブラシへのポインタ。 |
| content | D2D1_OPACITY_MASK_CONTENT | in | マスク内容の種別(テキスト・グラフィック等)を指定する列挙値。 |
| destinationRectangle | D2D_RECT_F* | inoptional | 描画先の矩形。NULL可で原点配置となる。 |
| sourceRectangle | D2D_RECT_F* | inoptional | マスクから取り出す元矩形。NULL可で全体を用いる。 |
| bitmap | ID2D1Bitmap* | in | 描画するビットマップへのポインタ。 |
| destinationRectangle | D2D_RECT_F* | inoptional | 描画先の矩形。NULL可でビットマップ実寸を原点に配置する。 |
| opacity | FLOAT | in | 描画時の不透明度。0.0(透明)~1.0(不透明)の浮動小数。 |
| interpolationMode | D2D1_BITMAP_INTERPOLATION_MODE | in | 拡縮時の補間方式を指定する列挙値。 |
| sourceRectangle | D2D_RECT_F* | inoptional | ビットマップから取り出す元矩形。NULL可で全体を用いる。 |
| string | LPWSTR | in | 描画する文字列へのワイド文字ポインタ。 |
| stringLength | DWORD | in | stringの文字数。 |
| textFormat | IDWriteTextFormat* | in | フォントやサイズなどの書式を指定するテキスト書式へのポインタ。 |
| layoutRect | D2D_RECT_F* | in | テキストを配置するレイアウト矩形へのポインタ。 |
| defaultFillBrush | ID2D1Brush* | in | 文字の塗りつぶしに用いる既定ブラシへのポインタ。 |
| options | D2D1_DRAW_TEXT_OPTIONS | in | クリッピングやスナップ等の描画オプションを指定するフラグ列挙値。 |
| measuringMode | DWRITE_MEASURING_MODE | in | テキストの計測モードを指定するDirectWrite列挙値。 |
指定した IDWriteTextLayout オブジェクトが記述する書式設定済みテキストを描画します。
| origin | D2D_POINT_2F | in | textLayout が記述するテキストの左上隅を描画する点(デバイス非依存ピクセル単位)。 |
| textLayout | IDWriteTextLayout* | in | 描画する書式設定済みテキスト。ID2D1Resource を継承しない描画エフェクトはすべて無視されます。ID2D1Resource を継承する描画エフェクトのうちブラシでないものが存在する場合、このメソッドは失敗し、レンダーターゲットはエラー状態になります。 |
| defaultFillBrush | ID2D1Brush* | in | textLayout 内のテキストのうち、描画エフェクトとして(IDWriteTextLayout::SetDrawingEffect メソッドで指定して)ブラシがまだ関連付けられていないテキストを描画するために使用するブラシ。 |
| options | D2D1_DRAW_TEXT_OPTIONS | in | テキストをピクセル境界にスナップするかどうか、およびテキストをレイアウト矩形にクリップするかどうかを示す値。既定値は D2D1_DRAW_TEXT_OPTIONS_NONE で、これはテキストをピクセル境界にスナップし、レイアウト矩形にはクリップしないことを示します。 |
解説(Remarks)
同じテキストを繰り返し描画する場合、DrawTextLayout メソッドを使用する方が DrawText メソッドを使用するよりも効率的です。呼び出しのたびにテキストの書式設定やレイアウトの処理を行う必要がないためです。
このメソッドは失敗してもエラーコードを返しません。描画操作(DrawTextLayout など)が失敗したかどうかを判断するには、ID2D1RenderTarget::EndDraw メソッドまたは ID2D1RenderTarget::Flush メソッドが返す結果を確認してください。
指定したグリフを描画します。
| baselineOrigin | D2D_POINT_2F | in | グリフのベースラインの原点(デバイス非依存ピクセル単位)。 |
| glyphRun | DWRITE_GLYPH_RUN* | in | レンダリングするグリフ。 |
| foregroundBrush | ID2D1Brush* | in | 指定したグリフを描画するために使用するブラシ。 |
| measuringMode | DWRITE_MEASURING_MODE | in | テキストの書式設定時に、グリフメトリックをどのように使用してテキストを測定するかを示す値。既定値は DWRITE_MEASURING_MODE_NATURAL です。 |
解説(Remarks)
このメソッドは失敗してもエラーコードを返しません。描画操作(DrawGlyphRun など)が失敗したかどうかを判断するには、ID2D1RenderTarget::EndDraw メソッドまたは ID2D1RenderTarget::Flush メソッドが返す結果を確認してください。
| transform | D2D_MATRIX_3X2_F* | in | レンダーターゲットに適用する変換行列へのポインタ。 |
レンダーターゲットの現在の変換(トランスフォーム)を取得します。
| transform | D2D_MATRIX_3X2_F* | out | この関数が返るときに、レンダーターゲットの現在の変換を格納します。このパラメーターは初期化せずに渡します。 |
レンダーターゲットのアンチエイリアスモードを設定します。アンチエイリアスモードは、テキストおよびグリフの描画操作を除く、以降のすべての描画操作に適用されます。
| antialiasMode | D2D1_ANTIALIAS_MODE | in | 以降の描画操作に対するアンチエイリアスモード。 |
解説(Remarks)
テキストおよびグリフの操作に対するアンチエイリアスモードを指定するには、SetTextAntialiasMode メソッドを使用します。
テキスト以外の描画操作に対する現在のアンチエイリアスモードを取得します。
戻り値
Type: D2D1_ANTIALIAS_MODE
テキスト以外の描画操作に対する現在のアンチエイリアスモード。
以降のテキストおよびグリフの描画操作に使用するアンチエイリアスモードを指定します。
| textAntialiasMode | D2D1_TEXT_ANTIALIAS_MODE | in | 以降のテキストおよびグリフの描画操作に使用するアンチエイリアスモード。 |
テキストおよびグリフの描画操作に対する現在のアンチエイリアスモードを取得します。
戻り値
Type: D2D1_TEXT_ANTIALIAS_MODE
テキストおよびグリフの描画操作に対する現在のアンチエイリアスモード。
以降のすべてのテキストおよびグリフの描画操作に適用するテキストレンダリングオプションを指定します。
| textRenderingParams | IDWriteRenderingParams* | inoptional | 以降のすべてのテキストおよびグリフの描画操作に適用するテキストレンダリングオプション。現在のテキストレンダリングオプションをクリアするには NULL を指定します。 |
解説(Remarks)
textRenderingParams で指定された設定が、レンダーターゲットのテキストアンチエイリアスモード(SetTextAntialiasMode で指定)と互換性がない場合、以降のテキストおよびグリフの描画操作は失敗し、レンダーターゲットはエラー状態になります。
レンダーターゲットの現在のテキストレンダリングオプションを取得します。
| textRenderingParams | IDWriteRenderingParams** | out | このメソッドが返るときに、textRenderingParams にはレンダーターゲットの現在のテキストレンダリングオプションへのポインターのアドレスが格納されます。 |
解説(Remarks)
textRenderingParams で指定された設定が、レンダーターゲットのテキストアンチエイリアスモード(SetTextAntialiasMode で指定)と互換性がない場合、以降のテキストおよびグリフの描画操作は失敗し、レンダーターゲットはエラー状態になります。
以降の描画操作に対するラベルを指定します。
| tag1 | ULONGLONG | in | 以降の描画操作に適用するラベル。 |
| tag2 | ULONGLONG | in | 以降の描画操作に適用するラベル。 |
解説(Remarks)
このメソッドで指定したラベルは、デバッグエラーメッセージによって出力されます。タグが設定されていない場合、各タグの既定値は 0 です。
以降の描画操作に対するラベルを取得します。
| tag1 | ULONGLONG* | outoptional | このメソッドが返るときに、以降の描画操作に対する 1 つ目のラベルを格納します。このパラメーターは初期化せずに渡します。NULL を指定した場合、このパラメーターには値が取得されません。 |
| tag2 | ULONGLONG* | outoptional | このメソッドが返るときに、以降の描画操作に対する 2 つ目のラベルを格納します。このパラメーターは初期化せずに渡します。NULL を指定した場合、このパラメーターには値が取得されません。 |
解説(Remarks)
両方のパラメーターに同じアドレスを渡した場合、両方のパラメーターには 2 つ目のタグの値が格納されます。
| layerParameters | D2D1_LAYER_PARAMETERS* | in | 境界・マスク・不透明度などレイヤーの構成を指定する属性へのポインタ。 |
| layer | ID2D1Layer* | inoptional | 描画内容を蓄積するレイヤーリソースへのポインタ。 |
直前の PushLayer 呼び出しで指定されたレイヤーへの描画操作のリダイレクトを停止します。
解説(Remarks)
PopLayer は、それより前の PushLayer 呼び出しと対応している必要があります。
このメソッドは失敗してもエラーコードを返しません。描画操作(PopLayer など)が失敗したかどうかを判断するには、ID2D1RenderTarget::EndDraw メソッドまたは ID2D1RenderTarget::Flush メソッドが返す結果を確認してください。
例
次の例では、レイヤーを使用してビットマップをジオメトリックマスクにクリップします。完全な例については、ジオメトリックマスクにクリップする方法を参照してください。
HRESULT DemoApp::RenderWithLayer(ID2D1RenderTarget *pRT)
{
HRESULT hr = S_OK;
// Create a layer.
ID2D1Layer *pLayer = NULL;
hr = pRT->CreateLayer(NULL, &pLayer);
if (SUCCEEDED(hr))
{
pRT->SetTransform(D2D1::Matrix3x2F::Translation(350, 50));
// Push the layer with the geometric mask.
pRT->PushLayer(
D2D1::LayerParameters(D2D1::InfiniteRect(), m_pPathGeometry),
pLayer
);
pRT->DrawBitmap(m_pOrigBitmap, D2D1::RectF(0, 0, 200, 133));
pRT->FillRectangle(D2D1::RectF(0.f, 0.f, 25.f, 25.f), m_pSolidColorBrush);
pRT->FillRectangle(D2D1::RectF(25.f, 25.f, 50.f, 50.f), m_pSolidColorBrush);
pRT->FillRectangle(D2D1::RectF(50.f, 50.f, 75.f, 75.f), m_pSolidColorBrush);
pRT->FillRectangle(D2D1::RectF(75.f, 75.f, 100.f, 100.f), m_pSolidColorBrush);
pRT->FillRectangle(D2D1::RectF(100.f, 100.f, 125.f, 125.f), m_pSolidColorBrush);
pRT->FillRectangle(D2D1::RectF(125.f, 125.f, 150.f, 150.f), m_pSolidColorBrush);
pRT->PopLayer();
}
SafeRelease(&pLayer);
return hr;
}
保留中のすべての描画コマンドを実行します。
| tag1 | ULONGLONG* | outoptional | このメソッドが返るときに、エラーの原因となった描画操作のタグを格納します。エラーがなかった場合は 0 を格納します。このパラメーターは初期化せずに渡します。 |
| tag2 | ULONGLONG* | outoptional | このメソッドが返るときに、エラーの原因となった描画操作のタグを格納します。エラーがなかった場合は 0 を格納します。このパラメーターは初期化せずに渡します。 |
戻り値
Type: HRESULT
このメソッドが成功すると S_OK を返します。それ以外の場合は HRESULT エラーコードを返し、エラー発生時に有効だったタグを tag1 および tag2 に設定します。エラーが発生しなかった場合、このメソッドはエラータグの状態を (0,0) に設定します。
解説(Remarks)
このコマンドは、レンダーターゲットに関連付けられている Direct3D デバイスコンテキストをフラッシュしません。
このメソッドを呼び出すと、レンダーターゲットのエラー状態がリセットされます。
現在の描画状態を、指定した ID2D1DrawingStateBlock に保存します。
| drawingStateBlock | ID2D1DrawingStateBlock* | in | このメソッドが返るときに、レンダーターゲットの現在の描画状態を格納します。このパラメーターは、メソッドに渡す前に初期化しておく必要があります。 |
レンダーターゲットの描画状態を、指定した ID2D1DrawingStateBlock の描画状態に設定します。
| drawingStateBlock | ID2D1DrawingStateBlock* | in | レンダーターゲットの新しい描画状態。 |
| clipRect | D2D_RECT_F* | in | クリップ領域とする軸平行矩形へのポインタ。 |
| antialiasMode | D2D1_ANTIALIAS_MODE | in | クリップ境界のアンチエイリアス方式を指定する列挙値。 |
レンダーターゲットから最後の軸に沿ったクリップを削除します。このメソッドを呼び出した後は、そのクリップは以降の描画操作に適用されなくなります。
解説(Remarks)
PushAxisAlignedClip/PopAxisAlignedClip のペアは、PushLayer/PopLayer のペアを囲むように、またはその内側に配置できますが、互いに重なり合ってはなりません。たとえば、PushAxisAlignedClip、PushLayer、PopLayer、PopAxisAlignedClip という順序は有効ですが、PushAxisAlignedClip、PushLayer、PopAxisAlignedClip、PopLayer という順序は無効です。
PopAxisAlignedClip は、PushAxisAlignedClip の呼び出しごとに 1 回呼び出す必要があります。
例については、軸に沿ったクリップ矩形でクリップする方法を参照してください。
このメソッドは失敗してもエラーコードを返しません。描画操作(PopAxisAlignedClip など)が失敗したかどうかを判断するには、ID2D1RenderTarget::EndDraw メソッドまたは ID2D1RenderTarget::Flush メソッドが返す結果を確認してください。
| clearColor | D2D1_COLOR_F* | inoptional | 塗りつぶしに用いるクリア色へのポインタ。NULL可で透明にクリアする。 |
このレンダーターゲットでの描画を開始します。
解説(Remarks)
描画操作は、BeginDraw と EndDraw の呼び出しの間でのみ発行できます。
BeginDraw と EndDraw は、レンダーターゲットが Direct2D システムによって使用中であることを示すために使用されます。ID2D1RenderTarget の実装によって、BeginDraw が呼び出されたときの動作は異なる場合があります。たとえば、ID2D1BitmapRenderTarget は BeginDraw/EndDraw の呼び出しの間ロックされる場合があり、DXGI サーフェスレンダーターゲットは BeginDraw で取得され EndDraw で解放される場合があり、ID2D1HwndRenderTarget は BeginDraw でバッチ処理を開始し EndDraw で表示(present)する場合があります。
BeginDraw メソッドは、レンダリング操作を呼び出す前に呼び出す必要があります。ただし、状態の設定操作や状態の取得操作は、BeginDraw/EndDraw の外側でも実行できます。
BeginDraw が呼び出された後、レンダーターゲットは通常、レンダリングコマンドのバッチを蓄積しますが、内部バッファーがいっぱいになるか、Flush メソッドが呼び出されるか、または EndDraw が呼び出されるまで、これらのコマンドの処理を遅延させます。EndDraw メソッドは、バッチ処理された描画操作を完了させ、その後、操作の成否を示す HRESULT と、必要に応じてエラー発生時のレンダーターゲットのタグ状態を返します。EndDraw メソッドは常に成功します。前回の EndDraw が失敗した HRESULT を返した場合でも、2 回呼び出してはなりません。
BeginDraw の対応する呼び出しなしに EndDraw を呼び出すと、EndDraw の前に BeginDraw を呼び出す必要があることを示すエラーが返されます。
レンダーターゲットで BeginDraw を 2 回呼び出すと、ターゲットはそれ以上何も描画されないエラー状態になり、EndDraw が呼び出されたときに適切な HRESULT とエラー情報が返されます。
例
次の例では、ID2D1HwndRenderTarget を使用してウィンドウにテキストを描画します。
// Called whenever the application needs to display the client
// window. This method writes "Hello, World"
//
// Note that this function will automatically discard device-specific
// resources if the Direct3D device disappears during function
// invocation, and will recreate the resources the next time it's
// invoked.
//
HRESULT DemoApp::OnRender()
{
HRESULT hr;
hr = CreateDeviceResources();
if (SUCCEEDED(hr))
{
static const WCHAR sc_helloWorld[] = L"Hello, World!";
// Retrieve the size of the render target.
D2D1_SIZE_F renderTargetSize = m_pRenderTarget->GetSize();
m_pRenderTarget->BeginDraw();
m_pRenderTarget->SetTransform(D2D1::Matrix3x2F::Identity());
m_pRenderTarget->Clear(D2D1::ColorF(D2D1::ColorF::White));
m_pRenderTarget->DrawText(
sc_helloWorld,
ARRAYSIZE(sc_helloWorld) - 1,
m_pTextFormat,
D2D1::RectF(0, 0, renderTargetSize.width, renderTargetSize.height),
m_pBlackBrush
);
hr = m_pRenderTarget->EndDraw();
if (hr == D2DERR_RECREATE_TARGET)
{
hr = S_OK;
DiscardDeviceResources();
}
}
return hr;
}
レンダーターゲットでの描画操作を終了し、現在のエラー状態と関連するタグを示します。
| tag1 | ULONGLONG* | outoptional | このメソッドが返るときに、エラーの原因となった描画操作のタグを格納します。エラーがなかった場合は 0 を格納します。このパラメーターは初期化せずに渡します。 |
| tag2 | ULONGLONG* | outoptional | このメソッドが返るときに、エラーの原因となった描画操作のタグを格納します。エラーがなかった場合は 0 を格納します。このパラメーターは初期化せずに渡します。 |
戻り値
Type: HRESULT
このメソッドが成功すると S_OK を返します。それ以外の場合は HRESULT エラーコードを返し、エラー発生時に有効だったタグを tag1 および tag2 に設定します。
解説(Remarks)
描画操作は、BeginDraw と EndDraw の呼び出しの間でのみ発行できます。
BeginDraw と EndDraw は、レンダーターゲットが Direct2D システムによって使用中であることを示すために使用されます。ID2D1RenderTarget の実装によって、BeginDraw が呼び出されたときの動作は異なる場合があります。たとえば、ID2D1BitmapRenderTarget は BeginDraw/EndDraw の呼び出しの間ロックされる場合があり、DXGI サーフェスレンダーターゲットは BeginDraw で取得され EndDraw で解放される場合があり、ID2D1HwndRenderTarget は BeginDraw でバッチ処理を開始し EndDraw で表示(present)する場合があります。
BeginDraw メソッドは、レンダリング操作を呼び出す前に呼び出す必要があります。ただし、状態の設定操作や状態の取得操作は、BeginDraw/EndDraw の外側でも実行できます。
BeginDraw が呼び出された後、レンダーターゲットは通常、レンダリングコマンドのバッチを蓄積しますが、内部バッファーがいっぱいになるか、Flush メソッドが呼び出されるか、または EndDraw が呼び出されるまで、これらのコマンドの処理を遅延させます。EndDraw メソッドは、バッチ処理された描画操作を完了させ、その後、操作の成否を示す HRESULT と、必要に応じてエラー発生時のレンダーターゲットのタグ状態を返します。EndDraw メソッドは常に成功します。前回の EndDraw が失敗した HRESULT を返した場合でも、2 回呼び出してはなりません。
BeginDraw の対応する呼び出しなしに EndDraw を呼び出すと、EndDraw の前に BeginDraw を呼び出す必要があることを示すエラーが返されます。
レンダーターゲットで BeginDraw を 2 回呼び出すと、ターゲットはそれ以上何も描画されないエラー状態になり、EndDraw が呼び出されたときに適切な HRESULT とエラー情報が返されます。
例
次の例では、ID2D1HwndRenderTarget を使用してウィンドウにテキストを描画します。
// Called whenever the application needs to display the client
// window. This method writes "Hello, World"
//
// Note that this function will automatically discard device-specific
// resources if the Direct3D device disappears during function
// invocation, and will recreate the resources the next time it's
// invoked.
//
HRESULT DemoApp::OnRender()
{
HRESULT hr;
hr = CreateDeviceResources();
if (SUCCEEDED(hr))
{
static const WCHAR sc_helloWorld[] = L"Hello, World!";
// Retrieve the size of the render target.
D2D1_SIZE_F renderTargetSize = m_pRenderTarget->GetSize();
m_pRenderTarget->BeginDraw();
m_pRenderTarget->SetTransform(D2D1::Matrix3x2F::Identity());
m_pRenderTarget->Clear(D2D1::ColorF(D2D1::ColorF::White));
m_pRenderTarget->DrawText(
sc_helloWorld,
ARRAYSIZE(sc_helloWorld) - 1,
m_pTextFormat,
D2D1::RectF(0, 0, renderTargetSize.width, renderTargetSize.height),
m_pBlackBrush
);
hr = m_pRenderTarget->EndDraw();
if (hr == D2DERR_RECREATE_TARGET)
{
hr = S_OK;
DiscardDeviceResources();
}
}
return hr;
}
レンダーターゲットのピクセルフォーマットとアルファモードを取得します。
戻り値
Type: D2D1_PIXEL_FORMAT
レンダーターゲットのピクセルフォーマットとアルファモード。
レンダーターゲットのドット/インチ(DPI)を設定します。
| dpiX | FLOAT | in | レンダーターゲットの水平方向の DPI を指定する、0 以上の値。 |
| dpiY | FLOAT | in | レンダーターゲットの垂直方向の DPI を指定する、0 以上の値。 |
解説(Remarks)
このメソッドは、レンダーターゲットのピクセル空間からデバイス非依存空間へのマッピングを指定します。dpiX と dpiY の両方が 0 の場合、ファクトリが読み取ったシステム DPI が選択されます。一方のパラメーターが 0 で、もう一方が指定されていない場合、DPI は変更されません。
ID2D1HwndRenderTarget の場合、DPI の既定値は、直近にファクトリが読み取ったシステム DPI です。その他のすべてのレンダーターゲットの既定値は 96 DPI です。
レンダーターゲットのドット/インチ(DPI)を返します。
| dpiX | FLOAT* | out | このメソッドが返るときに、レンダーターゲットの水平方向の DPI を格納します。このパラメーターは初期化せずに渡します。 |
| dpiY | FLOAT* | out | このメソッドが返るときに、レンダーターゲットの垂直方向の DPI を格納します。このパラメーターは初期化せずに渡します。 |
解説(Remarks)
このメソッドは、レンダーターゲットのピクセル空間からデバイス非依存空間へのマッピングを示します。
ID2D1HwndRenderTarget の場合、DPI の既定値は、直近にファクトリが読み取ったシステム DPI です。その他のすべてのレンダーターゲットの既定値は 96 DPI です。
レンダーターゲットのサイズをデバイス非依存ピクセル単位で返します。
戻り値
Type: D2D1_SIZE_F
レンダーターゲットの現在のサイズ(デバイス非依存ピクセル単位)。
レンダーターゲットのサイズをデバイスピクセル単位で返します。
戻り値
Type: D2D1_SIZE_U
レンダーターゲットのサイズ(デバイスピクセル単位)。
レンダーターゲットがサポートする、ビットマップの 1 辺の最大サイズを、デバイス依存単位(ピクセル)で取得します。
戻り値
Type: UINT32
レンダーターゲットがサポートする、ビットマップの 1 辺の最大サイズ(ピクセル単位)。
解説(Remarks)
このメソッドは、Direct3D デバイスの最大テクスチャサイズを返します。
| renderTargetProperties | D2D1_RENDER_TARGET_PROPERTIES* | in | 対応可否を確認するレンダーターゲット属性へのポインタ。 |
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_ID2D1RenderTarget "{2CD90694-12E2-11DC-9FED-001143A055F9}" #usecom global ID2D1RenderTarget IID_ID2D1RenderTarget "{}" #comfunc global ID2D1RenderTarget_CreateBitmap 4 int,sptr,int,var,sptr #comfunc global ID2D1RenderTarget_CreateBitmapFromWicBitmap 5 sptr,var,sptr #comfunc global ID2D1RenderTarget_CreateSharedBitmap 6 var,sptr,var,sptr #comfunc global ID2D1RenderTarget_CreateBitmapBrush 7 sptr,var,var,sptr #comfunc global ID2D1RenderTarget_CreateSolidColorBrush 8 var,var,sptr #comfunc global ID2D1RenderTarget_CreateGradientStopCollection 9 var,int,int,int,sptr #comfunc global ID2D1RenderTarget_CreateLinearGradientBrush 10 var,var,sptr,sptr #comfunc global ID2D1RenderTarget_CreateRadialGradientBrush 11 var,var,sptr,sptr #comfunc global ID2D1RenderTarget_CreateCompatibleRenderTarget 12 var,var,var,int,sptr #comfunc global ID2D1RenderTarget_CreateLayer 13 var,sptr #comfunc global ID2D1RenderTarget_CreateMesh 14 sptr #comfunc global ID2D1RenderTarget_DrawLine 15 int,int,sptr,float,sptr #comfunc global ID2D1RenderTarget_DrawRectangle 16 var,sptr,float,sptr #comfunc global ID2D1RenderTarget_FillRectangle 17 var,sptr #comfunc global ID2D1RenderTarget_DrawRoundedRectangle 18 var,sptr,float,sptr #comfunc global ID2D1RenderTarget_FillRoundedRectangle 19 var,sptr #comfunc global ID2D1RenderTarget_DrawEllipse 20 var,sptr,float,sptr #comfunc global ID2D1RenderTarget_FillEllipse 21 var,sptr #comfunc global ID2D1RenderTarget_DrawGeometry 22 sptr,sptr,float,sptr #comfunc global ID2D1RenderTarget_FillGeometry 23 sptr,sptr,sptr #comfunc global ID2D1RenderTarget_FillMesh 24 sptr,sptr #comfunc global ID2D1RenderTarget_FillOpacityMask 25 sptr,sptr,int,var,var #comfunc global ID2D1RenderTarget_DrawBitmap 26 sptr,var,float,int,var #comfunc global ID2D1RenderTarget_DrawText 27 wstr,int,sptr,var,sptr,int,int #comfunc global ID2D1RenderTarget_DrawTextLayout 28 int,sptr,sptr,int #comfunc global ID2D1RenderTarget_DrawGlyphRun 29 int,var,sptr,int #comfunc global ID2D1RenderTarget_SetTransform 30 var #comfunc global ID2D1RenderTarget_GetTransform 31 var #comfunc global ID2D1RenderTarget_SetAntialiasMode 32 int #comfunc global ID2D1RenderTarget_GetAntialiasMode 33 #comfunc global ID2D1RenderTarget_SetTextAntialiasMode 34 int #comfunc global ID2D1RenderTarget_GetTextAntialiasMode 35 #comfunc global ID2D1RenderTarget_SetTextRenderingParams 36 sptr #comfunc global ID2D1RenderTarget_GetTextRenderingParams 37 sptr #comfunc global ID2D1RenderTarget_SetTags 38 int64,int64 #comfunc global ID2D1RenderTarget_GetTags 39 var,var #comfunc global ID2D1RenderTarget_PushLayer 40 var,sptr #comfunc global ID2D1RenderTarget_PopLayer 41 #comfunc global ID2D1RenderTarget_Flush 42 var,var #comfunc global ID2D1RenderTarget_SaveDrawingState 43 sptr #comfunc global ID2D1RenderTarget_RestoreDrawingState 44 sptr #comfunc global ID2D1RenderTarget_PushAxisAlignedClip 45 var,int #comfunc global ID2D1RenderTarget_PopAxisAlignedClip 46 #comfunc global ID2D1RenderTarget_Clear 47 var #comfunc global ID2D1RenderTarget_BeginDraw 48 #comfunc global ID2D1RenderTarget_EndDraw 49 var,var #comfunc global ID2D1RenderTarget_GetPixelFormat 50 #comfunc global ID2D1RenderTarget_SetDpi 51 float,float #comfunc global ID2D1RenderTarget_GetDpi 52 var,var #comfunc global ID2D1RenderTarget_GetSize 53 #comfunc global ID2D1RenderTarget_GetPixelSize 54 #comfunc global ID2D1RenderTarget_GetMaximumBitmapSize 55 #comfunc global ID2D1RenderTarget_IsSupported 56 var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_ID2D1RenderTarget "{2CD90694-12E2-11DC-9FED-001143A055F9}" #usecom global ID2D1RenderTarget IID_ID2D1RenderTarget "{}" #comfunc global ID2D1RenderTarget_CreateBitmap 4 int,sptr,int,sptr,sptr #comfunc global ID2D1RenderTarget_CreateBitmapFromWicBitmap 5 sptr,sptr,sptr #comfunc global ID2D1RenderTarget_CreateSharedBitmap 6 sptr,sptr,sptr,sptr #comfunc global ID2D1RenderTarget_CreateBitmapBrush 7 sptr,sptr,sptr,sptr #comfunc global ID2D1RenderTarget_CreateSolidColorBrush 8 sptr,sptr,sptr #comfunc global ID2D1RenderTarget_CreateGradientStopCollection 9 sptr,int,int,int,sptr #comfunc global ID2D1RenderTarget_CreateLinearGradientBrush 10 sptr,sptr,sptr,sptr #comfunc global ID2D1RenderTarget_CreateRadialGradientBrush 11 sptr,sptr,sptr,sptr #comfunc global ID2D1RenderTarget_CreateCompatibleRenderTarget 12 sptr,sptr,sptr,int,sptr #comfunc global ID2D1RenderTarget_CreateLayer 13 sptr,sptr #comfunc global ID2D1RenderTarget_CreateMesh 14 sptr #comfunc global ID2D1RenderTarget_DrawLine 15 int,int,sptr,float,sptr #comfunc global ID2D1RenderTarget_DrawRectangle 16 sptr,sptr,float,sptr #comfunc global ID2D1RenderTarget_FillRectangle 17 sptr,sptr #comfunc global ID2D1RenderTarget_DrawRoundedRectangle 18 sptr,sptr,float,sptr #comfunc global ID2D1RenderTarget_FillRoundedRectangle 19 sptr,sptr #comfunc global ID2D1RenderTarget_DrawEllipse 20 sptr,sptr,float,sptr #comfunc global ID2D1RenderTarget_FillEllipse 21 sptr,sptr #comfunc global ID2D1RenderTarget_DrawGeometry 22 sptr,sptr,float,sptr #comfunc global ID2D1RenderTarget_FillGeometry 23 sptr,sptr,sptr #comfunc global ID2D1RenderTarget_FillMesh 24 sptr,sptr #comfunc global ID2D1RenderTarget_FillOpacityMask 25 sptr,sptr,int,sptr,sptr #comfunc global ID2D1RenderTarget_DrawBitmap 26 sptr,sptr,float,int,sptr #comfunc global ID2D1RenderTarget_DrawText 27 wstr,int,sptr,sptr,sptr,int,int #comfunc global ID2D1RenderTarget_DrawTextLayout 28 int,sptr,sptr,int #comfunc global ID2D1RenderTarget_DrawGlyphRun 29 int,sptr,sptr,int #comfunc global ID2D1RenderTarget_SetTransform 30 sptr #comfunc global ID2D1RenderTarget_GetTransform 31 sptr #comfunc global ID2D1RenderTarget_SetAntialiasMode 32 int #comfunc global ID2D1RenderTarget_GetAntialiasMode 33 #comfunc global ID2D1RenderTarget_SetTextAntialiasMode 34 int #comfunc global ID2D1RenderTarget_GetTextAntialiasMode 35 #comfunc global ID2D1RenderTarget_SetTextRenderingParams 36 sptr #comfunc global ID2D1RenderTarget_GetTextRenderingParams 37 sptr #comfunc global ID2D1RenderTarget_SetTags 38 int64,int64 #comfunc global ID2D1RenderTarget_GetTags 39 sptr,sptr #comfunc global ID2D1RenderTarget_PushLayer 40 sptr,sptr #comfunc global ID2D1RenderTarget_PopLayer 41 #comfunc global ID2D1RenderTarget_Flush 42 sptr,sptr #comfunc global ID2D1RenderTarget_SaveDrawingState 43 sptr #comfunc global ID2D1RenderTarget_RestoreDrawingState 44 sptr #comfunc global ID2D1RenderTarget_PushAxisAlignedClip 45 sptr,int #comfunc global ID2D1RenderTarget_PopAxisAlignedClip 46 #comfunc global ID2D1RenderTarget_Clear 47 sptr #comfunc global ID2D1RenderTarget_BeginDraw 48 #comfunc global ID2D1RenderTarget_EndDraw 49 sptr,sptr #comfunc global ID2D1RenderTarget_GetPixelFormat 50 #comfunc global ID2D1RenderTarget_SetDpi 51 float,float #comfunc global ID2D1RenderTarget_GetDpi 52 sptr,sptr #comfunc global ID2D1RenderTarget_GetSize 53 #comfunc global ID2D1RenderTarget_GetPixelSize 54 #comfunc global ID2D1RenderTarget_GetMaximumBitmapSize 55 #comfunc global ID2D1RenderTarget_IsSupported 56 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。