DDLOCKOUT 구조체(ddkmapi.h)
DDLOCKOUT 구조체에는 표면에 대한 설명이 포함되어 있습니다.
통사론
typedef struct _DDLOCKOUT {
DWORD ddRVal;
DWORD dwSurfHeight;
DWORD dwSurfWidth;
LONG lSurfPitch;
PVOID lpSurface;
DWORD SurfaceCaps;
DWORD dwFormatFlags;
DWORD dwFormatFourCC;
DWORD dwFormatBitCount;
union {
DWORD dwRBitMask;
DWORD dwYBitMask;
};
union {
DWORD dwGBitMask;
DWORD dwUBitMask;
};
union {
DWORD dwBBitMask;
DWORD dwVBitMask;
};
} DDLOCKOUT, *LPDDLOCKOUT;
회원
ddRVal
Microsoft DirectDraw가 DD_DXAPI_LOCK 작업에 DxApi 함수의 반환 값을 쓰는 위치를 지정합니다. DD_OK 반환 코드는 성공을 나타냅니다.
dwSurfHeight
dwSurfWidth
표면의 크기를 픽셀 단위로 지정합니다.
lSurfPitch
다음 줄의 시작까지의 거리를 바이트 단위로 지정합니다.
lpSurface
표면 메모리를 가리킵니다.
SurfaceCaps
표면의 기능을 지정하는 플래그 집합을 나타냅니다. 이 멤버는 다음 플래그 중 하나 이상으로 설정할 수 있습니다.
기 | 의미 |
---|---|
DDSCAPS_3DDEVICE | 이 표면은 3D 렌더링에 사용할 수 있습니다. 애플리케이션은 이 플래그를 사용하여 특정 힙에만 렌더링할 수 있는 디바이스에 올바른 힙에서 할당된 오프스크린 표면이 있는지 확인할 수 있습니다. 이 플래그가 힙에 대해 설정된 경우 표면은 해당 힙에서 할당되지 않습니다. |
DDSCAPS_ALLOCONLOAD | 표면의 메모리는 IDirect3DDevice7::Load 메서드를 사용하여 애플리케이션에서 표면을 로드할 때까지 할당되지 않습니다. |
DDSCAPS_ALPHA | 이 화면에는 알파 정보가 포함됩니다. 픽셀 형식을 쿼리하여 이 표면에 픽셀 색 데이터(예: RGBA 또는 YUVA)와 인터레이스된 알파 정보 또는 알파 정보만 포함하는지 여부를 확인해야 합니다. |
DDSCAPS_BACKBUFFER | 이 표면은 표면 대칭 이동 구조의 백 버퍼입니다. 일반적으로 이 기능은 DDSCAPS_FLIP 플래그를 사용할 때 애플리케이션의 CreateSurface 메서드에 의해 설정됩니다. DDSCAPS_FRONTBUFFER 표면 바로 앞에 있는 표면만 이 기능 집합을 가집니다. 다른 표면은 DDSCAPS_FLIP 플래그의 존재, 첨부 파일 순서 및 DDSCAPS_FRONTBUFFER 및 DDSCAPS_BACKBUFFER 기능의 부재로 백 버퍼로 식별됩니다. 이 접근 권한 값이 애플리케이션의 CreateSurface 메서드로 전송되면 독립 실행형 백 버퍼가 만들어집니다. 이 메서드를 호출한 후 이 표면을 전면 버퍼, 다른 백 버퍼 또는 둘 다에 연결하여 대칭 이동 표면 구조를 형성할 수 있습니다. 자세한 내용은 DirectX SDK 설명서의 AddAttachedSurface 메서드를 참조하세요. DirectDraw는 대칭 이동 구조에서 임의의 수의 표면을 지원합니다. |
DDSCAPS_COMPLEX | 복잡한 표면이 설명되고 있습니다. 복잡한 표면은 둘 이상의 표면을 생성합니다. 추가 표면은 루트 표면에 연결됩니다. 복합 구조는 루트를 파괴해야만 소멸될 수 있습니다. |
DDSCAPS_FLIP | 이 표면은 표면 대칭 이동 구조의 일부입니다. 이 기능이 애플리케이션의 CreateSurface 메서드에 전달되면 프런트 버퍼와 하나 이상의 백 버퍼가 만들어집니다. DirectDraw는 프런트 버퍼 표면의 DDSCAPS_FRONTBUFFER 비트와 전면 버퍼 표면에 인접한 표면의 DDSCAPS_BACKBUFFER 비트를 설정합니다. 메서드 호출이 성공하려면 DDSURFACEDESC 구조체의 dwBackBufferCount 멤버를 1 이상으로 설정해야 합니다. DDSCAPS_COMPLEX 기능은 CreateSurface 메서드를 사용하여 여러 표면을 만들 때 항상 설정해야 합니다. |
DDSCAPS_FRONTBUFFER | 이 표면은 표면 대칭 이동 구조의 전면 버퍼입니다. 이 플래그는 일반적으로 DDSCAPS_FLIP 기능이 설정되면 애플리케이션의 CreateSurface 메서드에 의해 설정됩니다. 이 기능을 CreateSurface 메서드로 보내면 독립 실행형 프런트 버퍼가 만들어집니다. 이 화면에는 DDSCAPS_FLIP 기능이 없습니다. 애플리케이션의 AddAttachedSurface 메서드를 사용하여 대칭 이동 구조를 형성하기 위해 다른 백 버퍼에 연결할 수 있습니다. |
DDSCAPS_HWCODEC | 이 표면은 하드웨어에서 스트림의 압축을 풉니다. |
DDSCAPS_LIVEVIDEO | 이 화면은 라이브 비디오를 받을 수 있어야 합니다. |
DDSCAPS_LOCALVIDMEM | 이 표면은 비로컬 디스플레이 메모리가 아닌 true 로컬 디스플레이 메모리에 존재합니다. 이 플래그를 지정하는 경우 DDSCAPS_VIDEOMEMORY 지정해야 합니다. 이 플래그는 DDSCAPS_NONLOCALVIDMEM 플래그와 함께 사용할 수 없습니다. |
DDSCAPS_MIPMAP | 이 표면은 밉맵의 한 수준입니다. 이 표면은 mipmap을 형성하기 위해 다른 DDSCAPS_MIPMAP 표면에 연결됩니다. 이 작업은 애플리케이션의 AddAttachedSurface 메서드를 사용하거나 애플리케이션의 CreateSurface 메서드에서 암시적으로 여러 표면을 만들고 연결하여 명시적으로 수행할 수 있습니다. 이 기능이 설정된 경우 DDSCAPS_TEXTURE 설정해야 합니다. |
DDSCAPS_MODEX | 이 표면은 320x200 또는 320x240 모드 X 표면입니다. |
DDSCAPS_NONLOCALVIDMEM | 이 표면은 true가 아닌 로컬 디스플레이 메모리에 있습니다. 이 플래그를 지정하면 DDSCAPS_VIDEOMEMORY 플래그도 지정해야 합니다. DDSCAPS_LOCALVIDMEM 플래그와 함께 사용할 수 없습니다. |
DDSCAPS_OFFSCREENPLAIN | 이 표면은 오버레이, 텍스처, z 버퍼, 프런트 버퍼, 백 버퍼 또는 알파 표면이 아닌 모든 오프스크린 표면입니다. 일반 표면을 식별하는 데 사용됩니다. |
DDSCAPS_OPTIMIZED | 현재 구현되지 않았습니다. |
DDSCAPS_OVERLAY | 이 표면은 오버레이입니다. 현재 기본 표면에 오버레이되는지 여부에 따라 직접 표시될 수도 있습니다. DDSCAPS_VISIBLE 사용하여 현재 오버레이되는지 확인할 수 있습니다. |
DDSCAPS_OWNDC | 이 화면에는 오랜 기간 동안 DC(디바이스 컨텍스트) 연결이 있습니다. |
DDSCAPS_PALETTE | 이 디바이스 드라이버를 사용하면 고유한 DirectDrawPalette 개체를 만들고 이 표면에 연결할 수 있습니다. |
DDSCAPS_PRIMARYSURFACE | 표면이 기본 표면입니다. 현재 사용자에게 표시되는 내용을 나타냅니다. |
DDSCAPS_PRIMARYSURFACELEFT | 이 표면은 왼쪽 눈의 기본 표면입니다. 현재 사용자의 왼쪽 눈에 표시되는 내용을 나타냅니다. 이 표면이 만들어지면 DDSCAPS_PRIMARYSURFACE 기능이 있는 표면은 사용자의 오른쪽 눈에서 볼 수 있는 것을 나타냅니다. |
DDSCAPS_STANDARDVGAMODE | 이 표면은 ModeX 표면이 아닌 표준 VGA 모드 표면입니다. 이 플래그는 DDSCAPS_MODEX 플래그와 함께 사용할 수 없습니다. |
DDSCAPS_SYSTEMMEMORY | 이 표면 메모리는 시스템 메모리에 할당되었습니다. |
DDSCAPS_TEXTURE | 이 표면은 3D 텍스처로 사용할 수 있습니다. 표면이 해당 용도로 사용되고 있는지 여부는 나타내지 않습니다. |
DDSCAPS_VIDEOMEMORY | 이 표면은 디스플레이 메모리에 있습니다. |
DDSCAPS_VIDEOPORT | 이 화면은 하드웨어 비디오 포트에서 데이터를 수신할 수 있습니다. |
DDSCAPS_VISIBLE | 이 화면에 적용된 변경 내용이 즉시 표시됩니다. 텍스처가 있는 동안 오버레이 및 텍스처 맵을 오버레이할 뿐만 아니라 기본 표면에 대해 항상 설정됩니다. |
DDSCAPS_WRITEONLY | 화면에는 쓰기 액세스만 허용됩니다. 표면에서 읽기 액세스는 GPF(일반 보호 오류)를 생성할 수 있지만 이 표면의 읽기 결과는 의미가 없습니다. |
DDSCAPS_ZBUFFER | 이 표면은 z 버퍼입니다. z 버퍼에는 표시할 수 없는 정보가 포함되어 있습니다. 대신 표시되는 픽셀과 가려지는 픽셀을 결정하는 데 사용되는 비트 깊이 정보가 포함되어 있습니다. |
dwFormatFlags
선택적 컨트롤 플래그 집합을 지정합니다. 이 멤버는 다음 플래그의 조합으로 설정할 수 있습니다.
기 | 의미 |
---|---|
DDPF_ALPHA | 픽셀 형식은 알파 전용 표면을 설명합니다. |
DDPF_ALPHAPIXELS | 표면에는 픽셀 형식의 알파 채널 정보가 있습니다. |
DDPF_ALPHAPREMULT | 시스템 사용을 위해 예약되어 있습니다. |
DDPF_BUMPDUDV | 픽셀 형식의 범프 맵 dUdV 데이터가 유효합니다. |
DDPF_BUMPLUMINANCE | 픽셀 형식의 광도 데이터는 유효합니다. 이 플래그는 범프맵 표면에 광도를 걸 때 사용됩니다. 그런 다음 픽셀의 광도 부분에 대한 비트 마스크는 DDPIXELFORMAT 구조체의 dwBumpLuminanceBitCount 멤버로 표시됩니다. |
DDPF_COMPRESSED | Surface는 지정된 형식의 픽셀 데이터를 허용하고 쓰기 작업 중에 압축합니다. |
DDPF_FOURCC | FOURCC 코드가 유효합니다. |
DDPF_LUMINANCE | 픽셀 형식의 광도 데이터는 유효합니다. 이 플래그는 광도 전용 또는 광도 및 알파 표면에 사용됩니다. 비트 깊이는 DDPIXELFORMAT 구조체의 dwLuminanceBitCount 멤버로 표시됩니다. |
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_YUV | 픽셀 형식 구조의 YUV 데이터는 유효합니다. |
DDPF_ZBUFFER | 픽셀 형식은 z 버퍼 전용 표면을 설명합니다. |
DDPF_ZPIXELS | 표면은 RGBZ 형식입니다. |
dwFormatFourCC
FOURCC 코드를 지정합니다. FOURCC 코드에 대한 자세한 내용은 DirectX SDK 설명서를 참조하세요.
dwFormatBitCount
RGB 또는 YUV 데이터의 픽셀당 비트 수(4, 8, 16, 24 또는 32)를 지정합니다.
dwRBitMask
빨간색 비트의 마스크를 지정합니다.
dwYBitMask
Y 비트에 대한 마스크를 지정합니다.
dwGBitMask
녹색 비트의 마스크를 지정합니다.
dwUBitMask
U 비트의 마스크를 지정합니다.
dwBBitMask
파란색 비트의 마스크를 지정합니다.
dwVBitMask
V 비트에 대한 마스크를 지정합니다.
요구 사항
요구 | 값 |
---|---|
헤더 | ddkmapi.h(Ddkmapi.h 포함) |