D3DDDICB_RENDER 구조체(d3dumddi.h)

D3DDDICB_RENDER 구조체는 렌더링할 현재 명령 버퍼를 설명합니다.

구문

typedef struct _D3DDDICB_RENDER {
  UINT                     CommandLength;
  UINT                     CommandOffset;
  UINT                     NumAllocations;
  UINT                     NumPatchLocations;
  VOID                     *pNewCommandBuffer;
  UINT                     NewCommandBufferSize;
  D3DDDI_ALLOCATIONLIST    *pNewAllocationList;
  UINT                     NewAllocationListSize;
  D3DDDI_PATCHLOCATIONLIST *pNewPatchLocationList;
  UINT                     NewPatchLocationListSize;
  D3DDDICB_RENDERFLAGS     Flags;
  HANDLE                   hContext;
  UINT                     BroadcastContextCount;
  HANDLE                   BroadcastContext[D3DDDI_MAX_BROADCAST_CONTEXT];
  ULONG                    QueuedBufferCount;
  D3DGPU_VIRTUAL_ADDRESS   NewCommandBuffer;
  VOID                     *pPrivateDriverData;
  UINT                     PrivateDriverDataSize;
  D3DDDI_MARKERLOGTYPE     MarkerLogType;
  UINT                     RenderCBSequence;
  union {
    struct {
      UINT FirstAPISequenceNumberHigh;
      UINT CompletedAPISequenceNumberLow0Size;
      UINT CompletedAPISequenceNumberLow1Size;
      UINT BegunAPISequenceNumberLow0Size;
      UINT BegunAPISequenceNumberLow1Size;
    };
    UINT BatchedMarkerDataCount;
  };
  union {
    struct {
      const UINT *pCompletedAPISequenceNumberLow0;
      const UINT *pCompletedAPISequenceNumberLow1;
      const UINT *pBegunAPISequenceNumberLow0;
      const UINT *pBegunAPISequenceNumberLow1;
    };
    const D3DDDI_BATCHEDMARKERDATA *pBatchedMarkerData;
  };
} D3DDDICB_RENDER;

멤버

CommandLength

[in] 오프셋 0부터 시작하는 명령 버퍼의 크기(바이트)입니다.

CommandOffset

[in] 명령 버퍼의 첫 번째 명령에 대한 오프셋(바이트)입니다.

NumAllocations

[in] 할당 목록의 요소 수입니다.

NumPatchLocations

[in] 패치 위치 목록의 요소 수입니다.

pNewCommandBuffer

[out] 사용자 모드 표시 드라이버가 pfnRenderCb 함수에 대한 다음 호출에서 사용하기 위해 수신하는 명령 버퍼에 대한 포인터입니다.

NewCommandBufferSize

[in/out] 사용자 모드에서 다음 명령 버퍼에 대한 드라이버 요청을 표시하는 크기(바이트)입니다.

드라이버는 사용할 다음 명령 버퍼의 크기(바이트)를 받습니다.

pNewAllocationList

[out] 사용자 모드 표시 드라이버가 pfnRenderCb 함수에 대한 다음 호출에서 할당 목록으로 사용하기 위해 수신하는 D3DDDI_ALLOCATIONLIST 구조의 배열입니다.

NewAllocationListSize

[in/out] 사용자 모드에서 드라이버가 다음 할당 목록에 대해 요청하는 요소의 수입니다.

드라이버는 다음 명령 버퍼가 제출될 때 사용할 수 있는 할당 목록에 대한 요소 수를 받습니다.

pNewPatchLocationList

[out] 사용자 모드 표시 드라이버가 pfnRenderCb 함수에 대한 다음 호출에서 패치 위치 목록으로 사용하기 위해 수신하는 D3DDDI_PATCHLOCATIONLIST 구조의 배열입니다.

NewPatchLocationListSize

[in/out] 사용자 모드에서 다음 패치 위치 목록에 대해 드라이버가 요청하는 요소의 수입니다.

드라이버는 다음 명령 버퍼가 제출될 때 사용할 수 있는 패치 위치 목록의 요소 수를 받습니다.

Flags

[in] 렌더링할 명령 버퍼에 대한 정보를 나타내는 D3DDDICB_RENDERFLAGS 구조체입니다.

hContext

[in] 드라이버가 렌더링 작업을 제출하는 컨텍스트에 대한 핸들입니다. 사용자 모드 표시 드라이버는 이전에 pfnCreateContextCb 함수를 호출하여 이 컨텍스트를 만들었습니다.

BroadcastContextCount

[in] BroadcastContext 멤버가 지정하는 배열의 추가 컨텍스트 수입니다.

BroadcastContext[D3DDDI_MAX_BROADCAST_CONTEXT]

[in] 현재 명령 버퍼를 브로드캐스트할 추가 컨텍스트에 대한 핸들 배열입니다. 64로 정의된 D3DDDI_MAX_BROADCAST_CONTEXT 상수는 사용자 모드 표시 드라이버가 현재 명령 버퍼를 브로드캐스트할 수 있는 최대 추가 컨텍스트 수를 정의합니다.

hContext 멤버가 지정하고 명령 버퍼를 소유하는 원래 컨텍스트는 BroadcastContext 배열의 요소가 아닙니다. 예를 들어 BroadcastContext 배열에 하나의 요소가 포함된 경우 사용자 모드 표시 드라이버는 명령 버퍼를 소유 컨텍스트(hContext)로 보내고 해당 하나의 추가 컨텍스트로 브로드캐스트합니다.

QueuedBufferCount

[out] 현재 제출이 발생한 후 hContext 멤버가 지정하는 컨텍스트에 큐에 대기 중인 DMA 버퍼의 수입니다.

NewCommandBuffer

이 멤버는 예약되어 있으며 0으로 설정해야 합니다.

이 멤버는 Windows 7부터 사용할 수 있습니다.

pPrivateDriverData

[in] 이 멤버는 예약되어 있으며 0으로 설정해야 합니다.

이 멤버는 Windows 7부터 사용할 수 있습니다.

PrivateDriverDataSize

[in] 이 멤버는 예약되어 있으며 0으로 설정해야 합니다.

이 멤버는 Windows 7부터 사용할 수 있습니다.

MarkerLogType

사용자 모드 표시 드라이버가 지원하는 ETW(Windows용 이벤트 추적) 로그의 마커 유형을 나타내는 D3DDDI_MARKERLOGTYPE 열거형입니다.

RenderCBSequence

pfnRenderCb 함수 호출에 대한 고유 식별자입니다. 단일 스레드 사용자 모드 DDI와 연결된 컨텍스트의 경우 값 1에서 시작하고 자유 스레드 사용자 모드 DDI와 연결된 컨텍스트의 경우 0x80000001 값으로 범위가 지정됩니다. 사용자 모드 표시 드라이버는 모든 엔진에서 호출하는 각 pfnRenderCb 호출에 대한 값을 증가시켜야 합니다.

FirstAPISequenceNumberHigh

드라이버에서 컨텍스트의 API 시퀀스 번호를 전달하는 데 사용됩니다.

CompletedAPISequenceNumberLow0Size

드라이버에서 컨텍스트의 API 시퀀스 번호를 전달하는 데 사용됩니다.

CompletedAPISequenceNumberLow1Size

드라이버에서 컨텍스트의 API 시퀀스 번호를 전달하는 데 사용됩니다.

BegunAPISequenceNumberLow0Size

드라이버에서 컨텍스트의 API 시퀀스 번호를 전달하는 데 사용됩니다.

BegunAPISequenceNumberLow1Size

드라이버에서 컨텍스트의 API 시퀀스 번호를 전달하는 데 사용됩니다.

BatchedMarkerDataCount

pCompletedAPISequenceNumberLow0

드라이버가 컨텍스트의 API 시퀀스 번호를 전달하는 데 사용하는 포인터입니다.

pCompletedAPISequenceNumberLow1

드라이버가 컨텍스트의 API 시퀀스 번호를 전달하는 데 사용하는 포인터입니다.

pBegunAPISequenceNumberLow0

드라이버가 컨텍스트의 API 시퀀스 번호를 전달하는 데 사용하는 포인터입니다.

pBegunAPISequenceNumberLow1

드라이버가 컨텍스트의 API 시퀀스 번호를 전달하는 데 사용하는 포인터입니다.

pBatchedMarkerData

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Vista
머리글 d3dumddi.h(D3dumddi.h 포함)

추가 정보

D3DDDICB_RENDERFLAGS

D3DDDI_ALLOCATIONLIST

D3DDDI_PATCHLOCATIONLIST

pfnRenderCb