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 함수에 대한 리디렉션된 호출에 대한 현재 기록 토큰입니다.

현재 기록 토큰은 렌더링 앱이 제출하여 렌더링이 완료되고 스왑 체인 백 버퍼를 표시할 준비가 되었음을 DWM(데스크톱 창 관리자)에 알리는 데이터 패킷입니다.

[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 포함)

추가 정보

D3DKMTRender

D3DKMT_RENDERFLAGS

DxgkDdiPresent