Win32 API 日本語リファレンス
ホームGraphics.Direct2D › ID2D1Bitmap1

ID2D1Bitmap1

COM
IIDa898a84c-3873-4588-b08b-ebbf978df041継承元ID2D1Bitmap自前メソッド開始 vtbl11

公式ドキュメント

ID2D1DeviceContext のサーフェスとして使用したり、システムメモリにマップしたりできるビットマップを表します。追加のカラーコンテキスト情報を含めることもできます。

解説(Remarks)

ID2D1Bitmap オブジェクトの作成

ID2D1Bitmap オブジェクトを作成するには、次のいずれかのメソッドを使用します。

Direct2D ビットマップがサポートするピクセル形式については、Supported Pixel Formats and Alpha Modes を参照してください。

ID2D1Bitmap はデバイス依存のリソースです。アプリケーションは、ビットマップを使用するレンダーターゲットを初期化した後にビットマップを作成し、レンダーターゲットの再作成が必要になったときは常にビットマップも再作成する必要があります。(リソースの詳細については、Resources Overview を参照してください。)

メソッド 5

vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。

vtbl 11 void GetColorContext(ID2D1ColorContext** colorContext)

ビットマップに関連付けられたカラーコンテキスト情報を取得します。

colorContextID2D1ColorContext**outこのメソッドが返るとき、ビットマップに関連付けられたカラーコンテキストインターフェースへのポインターのアドレスが格納されます。

解説(Remarks)

カラーコンテキストを指定せずにビットマップが作成された場合、返されるコンテキストは NULL になります。

vtbl 12 D2D1_BITMAP_OPTIONS GetOptions()

ビットマップの作成時に使用されたオプションを取得します。

戻り値

型: D2D1_BITMAP_OPTIONS

このメソッドは、使用されたオプションを返します。

vtbl 13 HRESULT GetSurface(IDXGISurface** dxgiSurface)

ビットマップの作成時に指定されたサーフェス、またはビットマップの作成時に作成された既定のサーフェスを取得します。

dxgiSurfaceIDXGISurface**outビットマップの基になる DXGI サーフェスです。

戻り値

型: HRESULT

このメソッドは HRESULT を返します。取り得る値には次の表に示すものが含まれますが、これらに限定されません。

HRESULT 説明
S_OK エラーは発生しませんでした。
D2DERR_BITMAP_BOUND_AS_TARGET 現在ターゲットビットマップとしてバインドされているビットマップには描画できません。

解説(Remarks)

使用するビットマップは、DXGI サーフェスレンダーターゲット、派生レンダーターゲット、または ID2D1Device から作成されたデバイスコンテキストから作成されている必要があります。

返されるサーフェスは、Microsoft Direct3D や、共有サーフェスと相互運用できるその他の API で使用できます。アプリケーションは、そのサーフェスが、このコンテキストで使用される Direct3D デバイス上で使用可能であることを推移的に保証する必要があります。たとえば、そのサーフェスを Direct2D で使用する場合、Direct2D レンダーターゲットは ID2D1Factory::CreateDxgiSurfaceRenderTarget を通じて作成されているか、同じデバイス上で作成されたデバイスコンテキスト上に作成されている必要があります。

vtbl 14 HRESULT Map(D2D1_MAP_OPTIONS options, D2D1_MAPPED_RECT* mappedRect)

指定したビットマップをメモリにマップします。

optionsD2D1_MAP_OPTIONSinビットマップをメモリにマップする際に使用するオプションです。
mappedRectD2D1_MAPPED_RECT*outこのメソッドが返るとき、メモリにマップされた矩形への参照が格納されます。

戻り値

型: HRESULT

このメソッドは HRESULT を返します。取り得る値には次の表に示すものが含まれますが、これらに限定されません。

HRESULT 説明
S_OK エラーは発生しませんでした。
E_INVALIDARG 1 つ以上の引数が無効です。
D3DERR_DEVICELOST デバイスが失われましたが、現時点ではリセットできません。

解説(Remarks)

注意 マップされている間は、ビットマップを一部の用途に使用できません。特に、ソースまたはコピー先のいずれかのビットマップがマップされている場合、ID2D1Bitmap::CopyFromBitmap メソッドは機能しません。
ビットマップは、D2D1_BITMAP_OPTIONS_CPU_READ フラグを指定して作成されている必要があります。
vtbl 15 HRESULT Unmap()

ビットマップのメモリへのマップを解除します。

戻り値

型: HRESULT

このメソッドは HRESULT を返します。取り得る値には次の表に示すものが含まれますが、これらに限定されません。

HRESULT 説明
S_OK エラーは発生しませんでした。
E_INVALIDARG 1 つ以上の引数が無効です。
E_POINTER ポインターが無効です。

解説(Remarks)

Map の呼び出しから返されたメモリは、この時点で無効となり、オペレーティングシステムによって再利用されたり、他の目的で使用されたりする可能性があります。

ビットマップは、事前にマップされている必要があります。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

出力引数:
#define global IID_ID2D1Bitmap1 "{A898A84C-3873-4588-B08B-EBBF978DF041}"
#usecom global ID2D1Bitmap1 IID_ID2D1Bitmap1 "{}"
#comfunc global ID2D1Bitmap1_GetColorContext  11 sptr
#comfunc global ID2D1Bitmap1_GetOptions       12
#comfunc global ID2D1Bitmap1_GetSurface       13 sptr
#comfunc global ID2D1Bitmap1_Map              14 int,var
#comfunc global ID2D1Bitmap1_Unmap            15
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。