다음을 통해 공유


DDPIXELFORMAT 구조체(ddraw.h)

DDPIXELFORMAT 구조체는 IDirectDrawSurface7::GetPixelFormat 메서드에 대한 DirectDrawSurface 개체의 픽셀 형식을 설명합니다.

참고 이 구조를 사용하여 DDS(DirectDraw Surface) 파일 형식(.dds)으로 파일을 디코딩하는 대신 Ddraw.h를 사용하지 않는 대체 구조를 사용해야 합니다. DDS의 대체 구조에 대한 자세한 내용은 DDS를 참조하세요.
 

구문

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, dwBumpDvBitMaskdwBumpLuminanceBitMask 멤버에 있습니다.

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