D3DKMT_RENDER 구조체(d3dkmthk.h)
D3DKMT_RENDER 구조는 렌더링할 현재 명령 버퍼를 설명합니다.
통사론
typedef struct _D3DKMT_RENDER {
union {
[in] D3DKMT_HANDLE hDevice;
[in] D3DKMT_HANDLE hContext;
};
[in] UINT CommandOffset;
[in] UINT CommandLength;
[in] UINT AllocationCount;
[in] UINT PatchLocationCount;
[out] VOID *pNewCommandBuffer;
[in/out] UINT NewCommandBufferSize;
[out] D3DDDI_ALLOCATIONLIST *pNewAllocationList;
[in/out] UINT NewAllocationListSize;
[out] D3DDDI_PATCHLOCATIONLIST *pNewPatchLocationList;
[in/out] UINT NewPatchLocationListSize;
[in] D3DKMT_RENDERFLAGS Flags;
[in] D3DKMT_ALIGN64 ULONGLONG PresentHistoryToken;
[in] ULONG BroadcastContextCount;
D3DKMT_HANDLE BroadcastContext[D3DDDI_MAX_BROADCAST_CONTEXT];
[out] ULONG QueuedBufferCount;
[out] D3DKMT_ALIGN64 D3DGPU_VIRTUAL_ADDRESS NewCommandBuffer;
VOID *pPrivateDriverData;
UINT PrivateDriverDataSize;
} D3DKMT_RENDER;
회원
[in] hDevice
명령 버퍼가 렌더링되는 디바이스에 대한 커널 모드 핸들을 나타내는 D3DKMT_HANDLE 데이터 형식입니다. 디바이스 핸들은 Microsoft Direct3D 버전 10과의 호환성을 위해 D3DKMT_RENDER 포함된 공용 구조체의 D3DKMTRender 함수에 제공됩니다.
[in] hContext
명령 버퍼가 렌더링되는 디바이스 컨텍스트에 대한 커널 모드 핸들을 나타내는 D3DKMT_HANDLE 데이터 형식입니다.
[in] CommandOffset
명령 버퍼의 첫 번째 명령에 대한 오프셋(바이트)입니다.
[in] CommandLength
오프셋 0부터 시작하는 명령 버퍼의 크기(바이트)입니다.
[in] AllocationCount
제출된 할당 목록의 요소 수입니다.
[in] PatchLocationCount
제출된 패치 위치 목록의 요소 수입니다.
[out] pNewCommandBuffer
OpenGL ICD가 D3DKMTRender 함수에 대한 다음 호출에서 사용하기 위해 수신하는 명령 버퍼에 대한 포인터입니다. 드라이버는 호출 성공 여부에 관계없이 D3DKMTRender 호출한 후 항상 명령 버퍼에 대한 포인터를 업데이트해야 합니다.
Windows 7 이상 버전에서 지원됩니다.
[in] RenderKm 플래그가 Flags 멤버에 설정된 경우 렌더링할 명령 버퍼에 대한 포인터입니다.
[in/out] NewCommandBufferSize
ResizeCommandBuffer 비트 필드 플래그가 Flags 멤버에 지정된 경우 OpenGL ICD가 다음 명령 버퍼에 대해 요청하는 크기(바이트)입니다. ResizeCommandBuffer 지정하지 않으면 NewCommandBufferSize 값이 무시됩니다. 출력 시 드라이버는 사용할 다음 명령 버퍼의 크기(바이트)를 받습니다.
현재 메모리 조건에 따라 출력 크기가 입력 크기와 일치하지 않을 수 있습니다.
[out] pNewAllocationList
OpenGL ICD가 D3DKMTRender 함수에 대한 다음 호출에서 할당 목록으로 사용하기 위해 수신하는 D3DDDI_ALLOCATIONLIST 구조의 배열입니다. 드라이버는 호출 성공 여부에 관계없이 D3DKMTRender 호출한 후에 항상 할당 목록에 대한 포인터를 업데이트해야 합니다.
Windows 7 이상 버전에서 지원됩니다.
[in] RenderKm 플래그가 Flags 멤버에 설정된 경우 렌더링할 할당 목록에 대한 포인터입니다.
[in/out] NewAllocationListSize
ResizeAllocationList 비트 필드 플래그가 Flags 멤버에 지정된 경우 OpenGL ICD가 다음 할당 목록에 대해 요청하는 요소 수입니다. ResizeAllocationList 지정하지 않으면 NewAllocationListSize 값이 무시됩니다. 출력 시 드라이버는 다음 명령 버퍼가 제출될 때 할당 배열에서 사용할 수 있는 요소 수를 받습니다.
현재 메모리 조건에 따라 출력 크기가 입력 크기와 일치하지 않을 수 있습니다.
[out] pNewPatchLocationList
OpenGL ICD가 D3DKMTRender 함수에 대한 다음 호출에서 패치 위치 목록으로 사용하기 위해 수신하는 D3DDDI_PATCHLOCATIONLIST 구조의 배열입니다. 드라이버는 호출 성공 여부에 관계없이 D3DKMTRender 호출한 후 항상 패치 위치 목록에 대한 포인터를 업데이트해야 합니다.
[in/out] NewPatchLocationListSize
ResizePatchLocationList 비트 필드 플래그가 Flags 멤버에 지정된 경우 OpenGL ICD가 다음 패치 위치 목록에 대해 요청하는 요소 수입니다. ResizePatchLocationList 지정하지 않으면 NewPatchLocationListSize 값이 무시됩니다. 출력 시 드라이버는 다음 명령 버퍼가 제출될 때 패치 위치 배열에서 사용할 수 있는 요소 수를 받습니다.
현재 메모리 조건에 따라 출력 크기가 입력 크기와 일치하지 않을 수 있습니다.
[in] Flags
렌더링할 명령 버퍼의 형식(비트 필드 플래그)을 나타내는 D3DKMT_RENDERFLAGS 구조체입니다.
[in] PresentHistoryToken
디스플레이 미니포트 드라이버의 DxgkDdiPresent 함수에 대한 리디렉션된 호출에 대한 현재 기록 토큰입니다.
현재 기록 토큰
[in] BroadcastContextCount
BroadcastContext 지정하는
[in] BroadcastContext[D3DDDI_MAX_BROADCAST_CONTEXT]
현재 명령 버퍼를 브로드캐스트할 추가 컨텍스트에 대한 커널 모드 핸들을 나타내는 D3DKMT_HANDLE 데이터 형식의 배열입니다. 64로 정의된 D3DDDI_MAX_BROADCAST_CONTEXT 상수는 OpenGL ICD가 현재 명령 버퍼를 브로드캐스트할 수 있는 최대 컨텍스트 수를 정의합니다.
hContext 멤버가 지정하고 명령 버퍼를 소유하는 원래 컨텍스트는 BroadcastContext 배열의 요소가 아닙니다. 예를 들어 BroadcastContext 배열에 하나의 요소가 포함된 경우 OpenGL ICD는 명령 버퍼를 소유 컨텍스트(hContext)로 보내고 해당 추가 컨텍스트로 브로드캐스트합니다.
[out] QueuedBufferCount
hContext 멤버가 제출 후에 지정하는 컨텍스트에 큐에 대기 중인 DMA 버퍼의 수입니다.
[out] NewCommandBuffer
OpenGL ICD가 D3DKMTRender 함수에 대한 다음 호출에서 사용하기 위해 수신하는 명령 버퍼에 대한 포인터입니다. 드라이버는 호출 성공 여부에 관계없이 D3DKMTRender 호출한 후 항상 명령 버퍼에 대한 포인터를 업데이트해야 합니다.
Windows 7 이상 버전에서 지원됩니다.
[in] RenderKm 플래그가 Flags 멤버에 설정된 경우 렌더링할 명령 버퍼에 대한 포인터입니다.
pPrivateDriverData
이 멤버는 예약되어 있으며 0으로 설정해야 합니다.
이 멤버는 Windows 7부터 사용할 수 있습니다.
PrivateDriverDataSize
이 멤버는 예약되어 있으며 0으로 설정해야 합니다.
이 멤버는 Windows 7부터 사용할 수 있습니다.
요구 사항
요구 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows Vista |
헤더 | d3dkmthk.h(D3dkmthk.h 포함) |
참고 항목
DxgkDdiPresent