다음을 통해 공유


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 이상으로 설정해야 합니다. CreateSurface 메서드를 사용하여 여러 표면을 만들 때 항상 DDSCAPS_COMPLEX 기능을 설정해야 합니다.
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 포함)

추가 정보

DD_DXAPI_LOCK

DxApi