FORMATOP 구조체(d3dumddi.h)

FORMATOP 구조체는 이러한 표면으로 수행할 수 있는 표면 형식 및 연산을 설명합니다.

구문

typedef struct _FORMATOP {
  [in]  D3DDDIFORMAT Format;
  [out] UINT         Operations;
  [out] UINT         FlipMsTypes;
  [out] UINT         BltMsTypes;
  [out] UINT         PrivateFormatBitCount;
} FORMATOP;

멤버

[in] Format

표면의 픽셀 형식을 나타내는 D3DDDIFORMAT 형식의 값입니다.

[out] Operations

Format 멤버에 지정된 픽셀 형식으로 표면에서 수행할 수 있는 작업을 나타내는 다음 플래그의 유효한 비트 OR입니다. 다음 플래그 중 일부는 다른 플래그를 사용해야 함을 의미합니다. 드라이버가 다른 플래그를 의미하는 플래그를 설정하는 경우 드라이버는 암시적 플래그를 설정할 필요가 없으며 Direct3D 런타임은 암시적 플래그의 사용을 결정합니다.

FORMATOP_TEXTURE(0x00000001L)

지정된 픽셀 형식의 표면을 MIP 매핑 텍스처로 사용할 수 있습니다.

FORMATOP_VOLUMETEXTURE(0x00000002L)

이 형식의 표면은 볼륨 텍스처로 사용할 수 있습니다. 이 플래그는 FORMATOP_TEXTURE 독립적입니다. 따라서 픽셀 형식은 기존의 MIP 매핑 텍스처가 아닌 볼륨 텍스처에 사용할 수 있습니다.

FORMATOP_CUBETEXTURE(0x00000004L)

이 형식의 표면은 입방 환경 맵 텍스처로 사용할 수 있습니다. 이 플래그는 FORMATOP_TEXTURE 독립적입니다. 따라서 픽셀 형식은 기존의 MIP 매핑 텍스처가 아닌 입방 환경 맵 텍스처에 사용할 수 있습니다.

FORMATOP_OFFSCREEN_RENDERTARGET(0x00000008L)

현재 디스플레이 모드의 픽셀 형식이 FORMATOP_DISPLAYMODE 및 FORMATOP_3DACCELERATION 보고된 경우 디스플레이 모드의 픽셀 형식에 관계없이 이 형식의 표면을 오프스크린 렌더링 대상으로 사용할 수 있습니다. 현재 디스플레이 모드의 픽셀 형식에 이러한 플래그가 설정되지 않은 경우 렌더링 대상이 오프스크린인 경우에도 이 모드에서 3차원 가속을 사용할 수 없습니다. FORMATOP_OFFSCREEN_RENDERTARGET 플래그를 FORMATOP_TEXTURE 결합하여 디바이스가 지정된 픽셀 형식의 텍스처로 렌더링될 수 있음을 나타낼 수 있습니다.

FORMATOP_OFFSCREEN_RENDERTARGET 플래그는 FORMATOP_SAME_FORMAT_RENDERTARGET 및 FORMATOP_SAME_FORMAT_UP_TO_ALPHA_RENDERTARGET 플래그도 의미합니다.

FORMATOP_SAME_FORMAT_RENDERTARGET(0x00000010L)

이 형식의 표면은 렌더링 대상으로 사용할 수 있지만 표면의 픽셀 형식이 현재 디스플레이 모드의 픽셀 형식과 일치하는 경우에만 사용할 수 있습니다. 이 플래그는 오프스크린 렌더링 대상에만 적용되지 않지만 디스플레이 모드의 픽셀 형식에 지정하여 렌더링 대상 기능을 나타낼 수 있습니다. 이 플래그를 FORMATOP_TEXTURE 결합하여 디바이스가 지정된 픽셀 형식의 텍스처로 렌더링할 수 있음을 나타낼 수 있습니다.

FORMATOP_SAME_FORMAT_RENDERTARGET 플래그는 FORMATOP_SAME_FORMAT_UP_TO_ALPHA_RENDERTARGET 플래그도 의미합니다.

FORMATOP_ZSTENCIL(0x00000040L)

이 형식의 표면은 Z/스텐실 버퍼로 사용할 수 있지만 Z/스텐실 표면의 깊이가 깊이 버퍼가 연결된 렌더링 대상의 색 깊이와 일치하는 경우에만 사용할 수 있습니다. Z/스텐실과 색 버퍼 깊이 간의 일치를 결정할 때 픽셀 보폭을 사용합니다.

FORMATOP_ZSTENCIL_WITH_ARBITRARY_COLOR_DEPTH(0x00000080L)

이 형식의 표면은 표면이 연결된 렌더링 대상의 색 깊이에 관계없이 Z/스텐실 버퍼로 사용할 수 있습니다.

FORMATOP_ZSTENCIL_WITH_ARBITRARY_COLOR_DEPTH 플래그는 FORMATOP_ZSTENCIL 플래그도 의미합니다.

FORMATOP_SAME_FORMAT_UP_TO_ALPHA_RENDERTARGET(0x00000100L)

현재 디스플레이 모드가 동일한 깊이이고 알파 채널이 무시되는 경우 이 형식의 표면을 렌더링 대상으로 사용할 수 있습니다. 예를 들어 디스플레이 모드가 X8R8G8B8 때 디바이스가 A8R8G8B8 렌더링할 수 있는 경우 A8R8G8B8 대한 형식 작업 목록 항목에는 이 플래그가 설정되어야 합니다.

FORMATOP_DISPLAYMODE(0x00000400L)

드라이버 모델(Flip 포함)에서 지원하는 이 픽셀 형식의 디스플레이 모드입니다. 이 플래그는 알파 형식에서 설정하면 안 됩니다.

FORMATOP_3DACCELERATION(0x00000800L)

그래픽 가속기는 이 픽셀 형식의 디스플레이 모드에서 일부 수준의 Microsoft Direct3D 가속을 지원할 수 있으며 드라이버는 이 모드에서 컨텍스트를 만들 수 있습니다(일부 렌더링 대상 형식의 경우). 이 플래그는 표시 모드 형식을 보고하는 경우에만 사용할 수 있습니다(FORMATOP_DISPLAYMODE 지정). 이 플래그는 오프스크린 렌더링 대상 형식을 보고하는 데 사용하면 안 됩니다.

FORMATOP_PIXELSIZE(0x00001000L)

PrivateFormatBitCount 멤버의 형식에 대한 픽셀당 비트로 채워진 드라이버입니다.

드라이버에서 관리되는 표면 및 텍스처가 프라이빗 형식(Direct3D 런타임에서 기본적으로 처리할 수 없지만 드라이버에서 처리할 수 있는 형식)을 사용하도록 요구하는 경우 드라이버는 PrivateFormatBitCount에서 FORMATOP_PIXELSIZE 및 픽셀 크기를 지정해야 합니다.

FORMATOP_CONVERT_TO_ARGB(0x00002000L)

이 형식의 원본 표면은 FORMATOP_MEMBEROFGROUP_ARGB 플래그가 지정된 RGB 픽셀 형식으로 대상 표면으로 변환할 수 있습니다.

FORMATOP_OFFSCREENPLAIN(0x00004000L)

드라이버는 이 형식의 표면을 확대 및 색 채우기로 확장할 수 있습니다.

FORMATOP_SRGBREAD(0x00008000L)

이 형식의 표면은 sRGB 형식의 텍스처(즉, 샘플러가 조회된 데이터를 선형화)로 읽을 수 있습니다.

FORMATOP_BUMPMAP(0x00010000L)

이 형식의 표면은 범프 환경 맵 텍스처로 사용할 수 있습니다. 이 플래그는 FORMATOP_TEXTURE 독립적입니다. 따라서 픽셀 형식은 기존의 MIP 매핑 텍스처가 아닌 범프 환경 맵 텍스처에 사용할 수 있습니다.

FORMATOP_DMAP(0x00020000L)

변위 맵 샘플러가 이 형식의 표면을 샘플링할 수 있습니다.

FORMATOP_NOFILTER(0x00040000L)

이 형식의 표면은 텍스처 필터링에 사용할 수 없습니다.

FORMATOP_MEMBEROFGROUP_ARGB(0x00080000L)

이 형식의 대상 표면은 FORMATOP_CONVERT_TO_ARGB 플래그가 지정된 픽셀 형식으로 모든 원본 표면에서 변환할 수 있습니다. 드라이버는 각 채널에 대해 색 정보가 5비트 이상인 ARGB 표면에 대해서만 FORMATOP_MEMBEROFGROUP_ARGB 지정할 수 있습니다. 즉, D3DDDIFMT_A1R5G5B5 형식은 유효하지만 D3DDDIFMT_A4R4G4B4 형식은 유효하지 않습니다. 드라이버가 잘못된 형식의 FORMATOP_MEMBEROFGROUP_ARGB 지정하는 경우 Direct3D 런타임은 Direct3D HAL이 로드되지 않도록 합니다. 이 플래그는 ARGB 형식을 나타내지만 런타임을 사용하면 드라이버가 XRGB 형식(예: D3DDDIFMT_X1R5G5B5)으로 표면을 지정할 수도 있습니다.

FORMATOP_SRGBWRITE(0x00100000L)

이 형식의 표면은 sRGB 형식 대상(즉, 픽셀 파이프가 출력의 데이터를 이 형식으로 선형화)으로 쓸 수 있습니다.

FORMATOP_NOALPHABLEND(0x00200000L)

이 형식의 표면은 알파 혼합과 함께 사용할 수 없습니다.

FORMATOP_AUTOGENMIPMAP(0x00400000L)

이 형식의 MIP 매핑 텍스처는 자동으로 생성될 수 있습니다. 드라이버가 GenerateMipSubLevels 함수에 대한 호출을 받으려면 이 플래그를 노출해야 합니다.

FORMATOP_VERTEXTEXTURE(0x00800000L)

꼭짓점 텍스처 샘플러가 이 형식의 표면을 사용할 수 있습니다. 즉, 이 형식의 표면만 꼭짓점 텍스처로 사용할 수 있습니다.

FORMATOP_NOTEXCOORDWRAPNORMIP(0x01000000L)

이 형식의 표면은 2의 전원이 아닌 차원의 2차원 텍스처의 텍스처 매핑에만 조건부로 사용할 수 있습니다. 자세한 내용은 D3DPRIMCAPS 참조 페이지에서 D3DPTEXTURECAPS_POW2 및 D3DPTEXTURECAPS_NONPOW2CONDITIONAL 대한 정의를 참조하세요.

FORMATOP_PLANAR(0x02000000L)

이 형식의 표면은 평면과 압축된 표면입니다. Direct3D 런타임은 표면이 손실되고 피치 곱한 시간 높이의 일반적인 계산이 불가능한 동안 평면 형식으로 표면에서 사용자 모드 디스플레이 드라이버의 Lock 함수를 호출하는 경우 버퍼를 할당해야 합니다. 대부분의 형식은 Microsoft DirectX 비디오 가속에서 사용하는 형식(예: YUV 형식)을 제외하고 압축됩니다.

FORMATOP_OVERLAY(0x04000000L)

이 형식의 표면은 오버레이 작업에 사용됩니다.

FORMATOP_CAPTURE(0x08000000L)

D3DDDI_RESOURCEFLAGS2 구조체의 VideoEncoder 멤버가 설정된 경우 이 형식의 표면을 캡처 버퍼로 사용할 수 있습니다.

Windows 8 부터 지원합니다.

FORMATOP_VIDEO_ENCODER(0x10000000L)

D3DDDI_RESOURCEFLAGS2 구조체의 VideoEncoder 멤버가 설정된 경우 이 형식의 표면을 비디오 인코더 입력 리소스로 사용할 수 있습니다.

Windows 8 부터 지원합니다.

FORMATOP_MULTIPLANE_OVERLAY(0x20000000L)

이 형식의 표면은 다중 평면 오버레이를 지원합니다.

Windows 8 부터 지원합니다.

[out] FlipMsTypes

전체 화면 다중 샘플링을 위한 32비트 마스크입니다.

[out] BltMsTypes

창이 있는 여러 샘플링에 대한 32비트 마스크입니다.

[out] PrivateFormatBitCount

드라이버에 전용인 픽셀 형식의 픽셀당 비트입니다(즉, D3DDDIFORMAT 열거형 형식으로 정의된 표준 픽셀 형식 중 하나가 아님).

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Vista 이상 버전의 Windows 운영 체제에서 사용할 수 있습니다.
머리글 d3dumddi.h(D3dumddi.h 포함)

추가 정보

D3DDDIARG_GETCAPS

D3DDDICAPS_TYPE

D3DDDIFORMAT

D3DDDI_RESOURCEFLAGS2

GetCaps