DDPIXELFORMAT 구조체는 IDirectDrawSurface7::GetPixelFormat 메서드에 대한 DirectDrawSurface 개체의 픽셀 형식을 설명합니다.
구문
typedef struct _DDPIXELFORMAT {
DWORD dwSize;
DWORD dwFlags;
DWORD dwFourCC;
#if ...
union {
DWORD dwRGBBitCount;
DWORD dwYUVBitCount;
DWORD dwZBufferBitDepth;
DWORD dwAlphaBitDepth;
DWORD dwLuminanceBitCount;
DWORD dwBumpBitCount;
DWORD dwPrivateFormatBitCount;
} DUMMYUNIONNAMEN;
#elif
union {
DWORD dwRBitMask;
DWORD dwYBitMask;
DWORD dwStencilBitDepth;
DWORD dwLuminanceBitMask;
DWORD dwBumpDuBitMask;
DWORD dwOperations;
} DUMMYUNIONNAMEN;
#elif
union {
DWORD dwGBitMask;
DWORD dwUBitMask;
DWORD dwZBitMask;
DWORD dwBumpDvBitMask;
struct {
WORD wFlipMSTypes;
WORD wBltMSTypes;
} MultiSampleCaps;
} DUMMYUNIONNAMEN;
#elif
union {
DWORD dwBBitMask;
DWORD dwVBitMask;
DWORD dwStencilBitMask;
DWORD dwBumpLuminanceBitMask;
} DUMMYUNIONNAMEN;
#else
union {
DWORD dwRGBAlphaBitMask;
DWORD dwYUVAlphaBitMask;
DWORD dwLuminanceAlphaBitMask;
DWORD dwRGBZBitMask;
DWORD dwYUVZBitMask;
} DUMMYUNIONNAMEN;
#endif
} DDPIXELFORMAT;
멤버
dwSize
구조체의 크기(바이트)입니다. 구조체를 사용하려면 먼저 이 멤버를 초기화해야 합니다.
dwFlags
이 구조체에 대한 선택적 컨트롤을 설명하는 다음 플래그입니다.
DDPF_ALPHA
픽셀 형식은 알파 전용 표면을 설명합니다.
DDPF_ALPHAPIXELS
표면에는 픽셀 형식의 알파 채널 정보가 있습니다.
DDPF_ALPHAPREMULT
표면은 미리 곱한 알파 형식을 사용합니다. 즉, 각 픽셀의 색 구성 요소는 알파 구성 요소에 의해 미리 곱합니다.
DDPF_BUMPLUMINANCE
픽셀 형식의 광도 데이터는 유효하며 dwLuminanceBitMask 멤버는 광도 전용 또는 광도 알파 표면에 유효한 광도 비트를 설명합니다.
DDPF_BUMPDUDV
픽셀 형식의 범프 맵 데이터는 유효합니다. 범프 맵 정보는 dwBumpBitCount, dwBumpDuBitMask, dwBumpDvBitMask 및 dwBumpLuminanceBitMask 멤버에 있습니다.
DDPF_COMPRESSED
Surface는 지정된 형식의 픽셀 데이터를 허용하고 쓰기 작업 중에 압축합니다.
DDPF_D3DFORMAT
텍스처 형식 목록의 DirectX 8.0 이상 형식 기능 항목을 나타냅니다. 이 플래그는 애플리케이션에 노출되지 않으며 Ddrawi.h에 정의되어 있습니다.
DDPF_FOURCC
dwFourCC 멤버는 유효하며 RGB가 아닌 픽셀 형식을 설명하는 FOURCC 코드를 포함합니다.
DDPF_LUMINANCE
픽셀 형식은 광도 전용 또는 광도 알파 표면을 설명합니다.
DDPF_PALETTEINDEXED1
표면은 1비트 색 인덱싱됩니다.
DDPF_PALETTEINDEXED2
표면은 2비트 색 인덱싱됩니다.
DDPF_PALETTEINDEXED4
표면은 4비트 색 인덱싱됩니다.
DDPF_PALETTEINDEXED8
표면은 8비트 색 인덱싱됩니다.
DDPF_PALETTEINDEXEDTO8
표면은 8비트 색상표로 인덱싱된 1비트, 2비트 또는 4비트 색입니다.
DDPF_RGB
픽셀 형식 구조의 RGB 데이터는 유효합니다.
DDPF_RGBTOYUV
Surface는 RGB 데이터를 허용하고 쓰기 작업 중에 YUV 데이터로 변환합니다. 쓸 데이터의 형식은 픽셀 형식 구조에 포함됩니다. DDPF_RGB 플래그가 설정됩니다.
DDPF_STENCILBUFFER
표면은 z-버퍼의 각 픽셀에서 스텐실 및 깊이 정보를 인코딩합니다. 이 플래그는 DDPF_ZBUFFER 플래그도 지정한 경우에만 사용할 수 있습니다.
DDPF_YUV
픽셀 형식 구조의 YUV 데이터는 유효합니다.
DDPF_ZBUFFER
픽셀 형식은 z 버퍼 표면을 설명합니다.
DDPF_ZPIXELS
표면에는 픽셀의 z 정보가 포함됩니다.
dwFourCC
FourCC 코드입니다.
DUMMYUNIONNAMEN
DUMMYUNIONNAMEN.dwRGBBitCount
픽셀당 RGB 비트(4, 8, 16, 24 또는 32).
DUMMYUNIONNAMEN.dwYUVBitCount
픽셀당 YUV 비트(4, 8, 16, 24 또는 32).
DUMMYUNIONNAMEN.dwZBufferBitDepth
Z 버퍼 비트 깊이(8, 16, 24 또는 32).
DUMMYUNIONNAMEN.dwAlphaBitDepth
알파 전용 표면(DDPF_ALPHA)의 알파 채널 비트 깊이(1, 2, 4 또는 8)입니다. 색 데이터(DDPF_ALPHAPIXELS)와 인터리빙된 알파 정보가 포함된 픽셀 형식의 경우 dwRGBAlphaBitMask 멤버의 비트를 계산하여 알파 구성 요소의 비트 깊이를 가져옵니다. 알파 비트 깊이를 확인하는 방법에 대한 자세한 내용은 비고를 참조하세요.
DUMMYUNIONNAMEN.dwLuminanceBitCount
픽셀당 총 광도 비트입니다. 이 멤버는 광도 전용 및 광도 알파 표면에만 적용됩니다.
DUMMYUNIONNAMEN.dwBumpBitCount
범프 맵 표면의 픽셀당 총 범프 맵 비트입니다.
DUMMYUNIONNAMEN.dwPrivateFormatBitCount
프라이빗 드라이버 형식의 픽셀당 비트입니다. 텍스처 형식 목록에서만 유효하며 DDPF_D3DFORMAT 설정된 경우에만 유효합니다.
DUMMYUNIONNAMEN.dwRBitMask
빨간색 비트에 대한 마스크입니다.
DUMMYUNIONNAMEN.dwYBitMask
Y 비트에 대한 마스크입니다.
DUMMYUNIONNAMEN.dwStencilBitDepth
스텐실 버퍼의 비트 깊이입니다. 이 멤버는 스텐실 정보를 위해 z-버퍼의 각 픽셀 내에서 예약된 비트 수를 지정합니다(z 비트의 총 수는 dwZBufferBitDepth 에서 dwStencilBitDepth를 뺀 값과 같음).
DUMMYUNIONNAMEN.dwLuminanceBitMask
광도 비트에 대한 마스크입니다.
DUMMYUNIONNAMEN.dwBumpDuBitMask
범프 맵 U-델타 비트에 대한 마스크입니다.
DUMMYUNIONNAMEN.dwOperations
DDPF_D3DFORMAT 픽셀 형식으로 표면에서 수행할 수 있는 작업을 지정하는 플래그입니다. 플래그는 Ddrawi.h에 정의됩니다.
DUMMYUNIONNAMEN.dwGBitMask
녹색 비트에 대한 마스크입니다.
DUMMYUNIONNAMEN.dwUBitMask
U 비트에 대한 마스크입니다.
DUMMYUNIONNAMEN.dwZBitMask
z 비트에 대한 마스크입니다.
DUMMYUNIONNAMEN.dwBumpDvBitMask
범프 맵 V 델타 비트에 대한 마스크입니다.
DUMMYUNIONNAMEN.MultiSampleCaps
다음 두 멤버를 포함하는 구조체입니다. 이 구조체는 다중 샘플 렌더링을 수행할 때 사용할 수 있는 표면을 지정하는 데 사용됩니다. 16비트 마스크의 각 비트는 특정 수의 샘플이 포함된 다중 샘플링 지원을 나타냅니다. 예를 들어 비트 0은 단일 샘플만 있는 다중 샘플링 지원을 나타내고 비트 1은 두 개의 샘플이 있는 다중 샘플링 지원을 나타냅니다. 드라이버는 비트 OR을 사용하여 비트를 결합하여 지원되는 수준을 둘 이상 나타낼 수 있습니다.
DUMMYUNIONNAMEN.MultiSampleCaps.wFlipMSTypes
전체 화면(대칭 이동) 모드 다중 샘플링을 위한 16비트 마스크입니다.
DUMMYUNIONNAMEN.MultiSampleCaps.wBltMSTypes
창(비트 블록 전송) 모드 다중 샘플링을 위한 16비트 마스크입니다.
DUMMYUNIONNAMEN.dwBBitMask
파란색 비트에 대한 마스크입니다.
DUMMYUNIONNAMEN.dwVBitMask
V 비트에 대한 마스크입니다.
DUMMYUNIONNAMEN.dwStencilBitMask
각 z-버퍼 픽셀 내의 스텐실 비트에 대한 마스크입니다.
DUMMYUNIONNAMEN.dwBumpLuminanceBitMask
범프 맵 픽셀의 광도 마스크입니다.
DUMMYUNIONNAMEN.dwRGBAlphaBitMask
알파 채널에 대한 RGB 마스크입니다.
DUMMYUNIONNAMEN.dwYUVAlphaBitMask
알파 채널에 대한 YUV 마스크입니다.
DUMMYUNIONNAMEN.dwLuminanceAlphaBitMask
알파 채널의 광도 마스크입니다.
DUMMYUNIONNAMEN.dwRGBZBitMask
z 채널에 대한 RGB 마스크입니다.
DUMMYUNIONNAMEN.dwYUVZBitMask
z 채널에 대한 YUV 마스크입니다.
설명
dwAlphaBitDepth 멤버는 알파 전용 픽셀 형식(DDPF_ALPHA)의 비트 깊이를 반영합니다. 색 구성 요소(DDPF_ALPHAPIXELS)가 있는 알파 구성 요소를 포함하는 픽셀 형식의 경우 다양한 마스크 멤버의 비트를 계산하여 알파 비트 깊이를 가져옵니다. 다음 코드 예제에서는 지정된 비트 마스크에 설정된 비트 수를 반환합니다.
WORD GetNumberOfBits( DWORD dwMask )
{
WORD wBits = 0;
while( dwMask )
{
dwMask = dwMask & ( dwMask - 1 );
wBits++;
}
return wBits;
}
DDPIXELFORMAT의 공용 구조체는 이름 없는 공용 구조체를 지원하지 않는 컴파일러에서 작동하도록 업데이트되었습니다. 컴파일러에서 이름 없는 공용 구조체를 지원하지 않는 경우 Ddraw.h 헤더 파일을 포함하기 전에 NONAMELESSUNION 토큰을 정의합니다.
요구 사항
| 머리글 | ddraw.h |