DD_LOCKDATA 구조체(ddrawint.h)
DD_LOCKDATA 구조에는 Microsoft DirectDraw 매개 변수 구조에 정의된 잠금을 수행하는 데 필요한 정보가 포함되어 있습니다.
구문
typedef struct _DD_LOCKDATA {
PDD_DIRECTDRAW_GLOBAL lpDD;
PDD_SURFACE_LOCAL lpDDSurface;
DWORD bHasRect;
RECTL rArea;
LPVOID lpSurfData;
HRESULT ddRVal;
VOID *Lock;
DWORD dwFlags;
FLATPTR fpProcess;
} *PDD_LOCKDATA, DD_LOCKDATA;
멤버
lpDD
드라이버의 디바이스를 설명하는 DD_DIRECTDRAW_GLOBAL 구조를 가리킵니다.
lpDDSurface
잠금할 메모리 영역과 연결된 버퍼인 LockD3DBuffer의 경우 표면을 설명하는 DD_SURFACE_LOCAL 구조를 가리킵니다.
bHasRect
rArea의 영역이 유효한지 여부를 지정합니다. 0x00000001 값은 유효한 영역을 나타내고 0x00000000 잘못된 영역을 나타냅니다.
rArea
잠글 표면의 영역을 정의하는 RECTL 구조를 지정합니다.
lpSurfData
드라이버가 잠긴 메모리 영역에 대한 포인터를 반환할 수 있는 위치를 지정합니다.
ddRVal
드라이버가 DdLock 또는 LockD3DBuffer 콜백의 반환 값을 쓰는 위치를 지정합니다. DD_OK 반환 코드는 성공을 나타냅니다. 자세한 내용은 DirectDraw에 대한 반환 값을 참조하세요.
Lock
DirectDraw API에서 사용되며 드라이버에서 입력하면 안 됩니다.
dwFlags
드라이버에 메모리 잠금을 수행하는 방법을 알려주는 비트 마스크를 지정합니다. 이 멤버는 다음 값 중 비트 OR입니다.
플래그 | 의미 |
---|---|
DDLOCK_DISCARDCONTENTS |
이 플래그는 애플리케이션이 표면 또는 잠긴 사각형의 모든 단일 픽셀을 덮어쓸 계획이므로 다시 정렬 취소 프로세스를 건너뛸 수 있음을 드라이버에 대한 힌트입니다(다시 정렬되지 않은 픽셀을 지웁니다). 애플리케이션은 전체 표면 또는 잠긴 사각형을 덮어쓰려는 경우 항상 이 플래그를 설정해야 합니다. |
DDLOCK_DONOTWAIT | IDirectDrawSurface7 이상 인터페이스에서 기본값은 DDLOCK_WAIT. 기본값을 재정의하고 액셀러레이터가 사용 중인 시간(DDERR_WASSTILLDRAWING 반환 코드로 표시됨)을 사용하려는 경우 이 플래그를 사용합니다. |
DDLOCK_EVENT | 요청된 표면 메모리 포인터를 반환할 수 있을 때 이벤트를 트리거하는 이벤트 핸들이 Lock에 전달되는 경우 를 설정합니다. |
DDLOCK_HASVOLUMETEXTUREBOXRECT | 드라이버는 rArea의 사각형(RECTL)에 지정된 하위 텍스처의 시작 부분에 유효한 메모리 포인터를 반환해야 합니다. 드라이버는 각각 왼쪽 및 오른쪽 좌표(RECTL의 왼쪽 및 오른쪽 멤버)의 상위 16비트에서 하위 좌표의 앞과 뒤 좌표를 가져옵니다. 왼쪽 및 오른쪽 좌표는 하위 16비트로 제한됩니다. 사각형이 지정되지 않은 경우 드라이버는 전체 볼륨의 맨 위에 포인터를 반환해야 합니다. 이 값은 DirectX 8.1 이상에서 사용할 수 있습니다. |
DDLOCK_NODIRTYUPDATE |
|
DDLOCK_NOOVERWRITE | Direct3D 꼭짓점 버퍼 잠금에만 사용됩니다. 프레임 시작(또는 이 플래그가 없는 마지막 잠금) 이후 IDirect3DDevice7::D rawPrimitiveVB 및 IDirect3DDevice7::D rawIndexedPrimitiveVB 호출(Direct3D SDK 설명서에 설명됨)에서 참조된 꼭짓점이 수정되지 않음을 나타냅니다. 꼭짓점 버퍼에만 데이터를 추가하는 경우에 유용할 수 있습니다. |
DDLOCK_NOSYSLOCK |
|
DDLOCK_OKTOSWAP | DDLOCK_DISCARDCONTENTS 동일합니다. |
DDLOCK_READONLY | 잠겨 있는 표면은 읽기 전용입니다. Windows 2000 이상에서는 이 플래그가 설정되지 않습니다. |
DDLOCK_SURFACEMEMORYPTR | 드라이버는 rArea에 지정된 사각형의 맨 위에 유효한 메모리 포인터를 반환해야 합니다. 사각형이 지정되지 않은 경우 드라이버는 표면 위쪽에 포인터를 반환해야 합니다. |
DDLOCK_WAIT | 잠금이 반환되기 전에 유효한 메모리 포인터를 가져올 때까지 기다려야 함을 나타내려면 를 설정합니다. 이 비트가 설정된 경우 Lock 은 DDERR_WASSTILLDRAWING 반환하지 않습니다. |
DDLOCK_WRITEONLY | 잠겨 있는 표면은 에만 기록됩니다. Windows 2000 이상에서는 이 플래그가 설정되지 않습니다. |
fpProcess
드라이버 메모리의 사용자 모드 매핑에 대한 포인터를 지정합니다. 드라이버는 DdMapMemory에서 이 매핑을 수행합니다. Windows 2000 이상에서만 가능합니다.
요구 사항
머리글 | ddrawint.h(Winddi.h 포함) |