다음을 통해 공유


IDCompositionSurfaceFactory::CreateSurface 메서드(dcomp.h)

컴퍼지션을 위해 하나 이상의 시각적 개체와 연결할 수 있는 Surface 개체를 만듭니다.

구문

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_IGNORE 해석되는 DXGI_ALPHA_MODE_UNSPECIFIED 수도 있습니다.

[out] surface

새로 만든 surface 개체입니다. 이 매개 변수는 NULL이 아니어야 합니다.

반환 값

함수가 성공하면 S_OK를 반환합니다. 그러지 않으면 HRESULT 오류 코드를 반환합니다. 오류 코드 목록은 DirectComposition 오류 코드를 참조하세요.

설명

Microsoft DirectComposition 표면은 컴퍼지션을 위해 시각적 개체와 연결할 수 있는 픽셀의 사각형 배열입니다.

새로 만든 Surface 개체는 초기화되지 않은 상태입니다. 초기화되지는 않지만 표면은 시각적 트리의 컴퍼지션에 영향을 주지 않습니다. 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
라이브러리 Dcomp.lib
DLL Dcomp.dll

추가 정보

IDCompositionDevice2::CreateSurface

IDCompositionDevice2::CreateVirtualSurface

IDCompositionSurfaceFactory

IDCompositionSurfaceFactory::CreateVirtualSurface