次の方法で共有


IDCompositionSurfaceFactory::CreateSurface メソッド (dcomp.h)

コンポジション用の 1 つ以上のビジュアルに関連付けることができるサーフェス オブジェクトを作成します。

構文

HRESULT CreateSurface(
  [in]  UINT                 width,
  [in]  UINT                 height,
  [in]  DXGI_FORMAT          pixelFormat,
  [in]  DXGI_ALPHA_MODE      alphaMode,
  [out] IDCompositionSurface **surface
);

パラメーター

[in] width

サーフェスの幅 (ピクセル単位)。

[in] height

サーフェスの高さ (ピクセル単位)。

[in] pixelFormat

サーフェスのピクセル形式。

[in] alphaMode

アルファ チャネルがピクセル形式に含まれている場合のアルファ チャネルの形式。 これは、DXGI_ALPHA_MODE_PREMULTIPLIEDまたはDXGI_ALPHA_MODE_IGNOREのいずれかです。 DXGI_ALPHA_MODE_UNSPECIFIEDすることもできます。これは、DXGI_ALPHA_MODE_IGNOREとして解釈されます。

[out] surface

新しく作成されたサーフェス オブジェクト。 このパラメーターを NULL にすることはできません。

戻り値

関数が成功した場合は、S_OK を返します。 そうでない場合は、HRESULT エラー コードを返します。 エラー コードの一覧については、「 DirectComposition エラー コード 」を参照してください。

解説

Microsoft DirectComposition サーフェスは、コンポジション用のビジュアルに関連付けることができるピクセルの四角形の配列です。

新しく作成されたサーフェス オブジェクトは、初期化されていない状態です。 初期化されていない間、サーフェスはビジュアル ツリーの構成には影響しません。 透明ピクセルが 100% のサーフェスとまったく同じように動作します。

ピクセル データを使用してサーフェスを初期化するには、 IDCompositionSurface::BeginDraw メソッドを使用します。 このメソッドの最初の呼び出しでは、すべてのピクセルの初期値を提供するために、サーフェス領域全体をカバーする必要があります。 後続の呼び出しでは、更新するサーフェスの小さなサブ四角形を指定できます。

幅または高さが最大テクスチャ サイズを超えると、このメソッドは失敗します。 シナリオで最大テクスチャ サイズを超えるディメンションが必要な場合は、 CreateVirtualSurface メソッドを 使用します。

DirectComposition サーフェスでは、次のピクセル形式がサポートされます。

  • DXGI_FORMAT_B8G8R8A8_UNORM
  • DXGI_FORMAT_R8G8B8A8_UNORM
  • DXGI_FORMAT_R16G16B16A16_FLOAT

要件

   
サポートされている最小のクライアント Windows 8.1 [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2012 R2 [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー dcomp.h
Library Dcomp.lib
[DLL] Dcomp.dll

関連項目

IDCompositionDevice2::CreateSurface

IDCompositionDevice2::CreateVirtualSurface

IDCompositionSurfaceFactory

IDCompositionSurfaceFactory::CreateVirtualSurface