DD_SURFACE_GLOBAL 구조체(ddrawint.h)
DD_SURFACE_GLOBAL 구조에는 여러 표면 간에 공유할 수 있는 전역 표면 관련 데이터가 포함되어 있습니다.
구문
typedef struct _DD_SURFACE_GLOBAL {
union {
DWORD dwBlockSizeY;
LONG lSlicePitch;
};
union {
LPVIDEOMEMORY lpVidMemHeap;
DWORD dwBlockSizeX;
DWORD dwUserMemSize;
};
FLATPTR fpVidMem;
union {
LONG lPitch;
DWORD dwLinearSize;
};
LONG yHint;
LONG xHint;
DWORD wHeight;
DWORD wWidth;
ULONG_PTR dwReserved1;
DDPIXELFORMAT ddpfSurface;
FLATPTR fpHeapOffset;
HANDLE hCreatorProcess;
} *PDD_SURFACE_GLOBAL, DD_SURFACE_GLOBAL;
멤버
dwBlockSizeY
드라이버가 Microsoft DirectDraw에서 할당해야 하는 오프스크린 메모리 블록의 높이(스캔 줄)를 반환하는 위치를 지정합니다. 드라이버는 fpVidMem 멤버에서 DDHAL_PLEASEALLOC_BLOCKSIZE 반환할 때 이 값을 설정해야 합니다.
lSlicePitch
볼륨 텍스처에 대한 슬라이스 피치입니다.
lpVidMemHeap
힙 표시 메모리가 할당된 VIDEOMEMORY 구조를 가리킵니다.
dwBlockSizeX
드라이버가 DirectDraw에서 할당해야 하는 오프스크린 메모리 블록 너비의 크기를 바이트 단위로 반환하는 위치를 지정합니다. 드라이버는 fpVidMem 멤버에서 DDHAL_PLEASEALLOC_BLOCKSIZE 반환할 때 이 값을 설정해야 합니다.
dwUserMemSize
드라이버가 DirectDraw가 사용자 모드 시스템 메모리에 할당해야 하는 메모리 블록의 크기(바이트)를 반환하는 위치를 지정합니다. 드라이버는 fpVidMem 멤버에서 DDHAL_PLEASEALLOC_USERMEM 반환할 때 이 값을 설정해야 합니다.
fpVidMem
드라이버가 메모리 블록을 할당하는 경우 오프셋을 이 멤버의 표시 메모리로 반환해야 합니다. 드라이버가 DirectDraw에 메모리 할당을 요청하면 DdCreateSurface 루틴에서 이 멤버의 다음 값 중 하나를 반환할 수 있습니다.
값 | 의미 |
---|---|
DDHAL_PLEASEALLOC_BLOCKSIZE | DirectDraw는 오프스크린 메모리에 dwBlockSizeX 및 dwBlockSizeY 크기의 메모리 블록을 할당해야 합니다. |
DDHAL_PLEASEALLOC_USERMEM | DirectDraw는 사용자 모드 메모리에서 dwUserMemSize 크기의 메모리 블록을 할당해야 합니다. |
lPitch
표면의 피치를 지정합니다. 즉, 다음 줄의 시작까지의 거리(바이트)입니다. 이를 표면의 보폭이라고도 합니다.
dwLinearSize
비사각형 표면의 선형 크기(바이트)를 지정합니다.
yHint
표면의 y 좌표를 지정합니다. 이 멤버는 디바이스 공간에 지정된 2D 카티전 좌표입니다.
xHint
표면의 x 좌표를 지정합니다. 이 멤버는 디바이스 공간에 지정된 2D 카티전 좌표입니다.
wHeight
표면의 높이를 픽셀 단위로 지정합니다.
wWidth
표면의 너비를 픽셀 단위로 지정합니다.
dwReserved1
디스플레이 드라이버에서 사용하도록 예약되었습니다.
ddpfSurface
표면의 픽셀 형식을 설명하는 DDPIXELFORMAT 구조를 가리킵니다.
fpHeapOffset
원본 힙의 원시 오프셋을 가리킵니다.
hCreatorProcess
시스템 사용을 위해 예약되며 드라이버에서 무시해야 합니다.
설명
CreateD3DBuffer에서 만든 꼭짓점 버퍼는 기본 형식 렌더링을 위해 D3dDrawPrimitives2 콜백에서 사용하는 꼭짓점 목록을 포함합니다. Microsoft Windows는 DirectDraw 표면으로 꼭짓점 버퍼를 나타내기 때문에 꼭짓점 버퍼와 DD_SURFACE_GLOBAL 구조 간에 연결을 설정합니다.
DirectX 드라이버가 꼭짓점 버퍼로 작업하는 경우 이 버퍼의 크기를 올바르게 확인할 수 있어야 합니다. DirectDraw는 선형 버퍼 크기를 이 구조체의 lPitch 멤버에 있는 드라이버에 전달합니다. Windows 2000 이상 버전에서는 Windows 98/Me가 아닌 이 구조체의 wWidth 멤버가 동일한 값으로 설정됩니다. 두 구조체 멤버는 모두 읽기 전용으로 간주되어야 합니다. DirectDraw가 이러한 멤버에 배치하는 값은 최소 꼭짓점 버퍼 크기를 나타냅니다. 더 큰 버퍼(예: 최적화)가 필요한 경우 드라이버 작성기는 해당 크기보다 큰 버퍼를 자유롭게 만들 수 있습니다. 그러나 어떤 경우에도 드라이버가 더 큰 버퍼 크기를 DirectDraw에 보고해야 합니다.
요구 사항
머리글 | ddrawint.h(Winddi.h 포함) |