D3DHAL_DP2RESPONSEQUERY 구조체(d3dhal.h)

DirectX 9.0 이상 버전만 해당합니다.

하나 이상의 D3DHAL_DP2RESPONSEQUERY 구조체는 런타임이 D3dDrawPrimitives2 콜백을 호출한 후 런타임에 의해 응답 버퍼에서 구문 분석됩니다. 드라이버는 D3DHAL_DP2RESPONSE 구조체의 bCommand 멤버를 D3DDP2OP_RESPONSEQUERY 설정하여 이전에 발급된 쿼리에 대한 응답을 응답 버퍼에서 사용할 수 있음을 나타냅니다.

구문

typedef struct _D3DHAL_DP2RESPONSEQUERY {
  DWORD dwQueryID;
  DWORD dwSize;
} D3DHAL_DP2RESPONSEQUERY;

멤버

dwQueryID

응답 데이터를 사용할 수 있는 쿼리를 식별합니다.

dwSize

드라이버가 런타임으로 반환하는 쿼리 정보의 크기(바이트)를 지정합니다.

설명

런타임은 D3DDP2OP_ISSUEQUERY 명령을 사용하여 드라이버 프로세스에서 쿼리하도록 요청합니다. 드라이버의 D3dDrawPrimitives2 콜백은 명령 버퍼에서 wPrimitiveCount D3DHAL_DP2ISSUEQUERY 쿼리 구조를 처리해야 합니다. wPrimitiveCount 값은 D3DHAL_DP2COMMAND 구조체에 지정됩니다. 드라이버는 이러한 쿼리 구조를 구문 분석하고 하드웨어 특정 명령으로 변환합니다.

이전에 D3DDP2OP_ISSUEQUERY 작업을 사용하여 쿼리를 제출한 경우 드라이버는 D3DHAL_DRAWPRIMITIVES2DATA 구조체 의 dwErrorOffset 멤버에 있는 응답 버퍼의 크기를 설정하고 성공적으로 완료하기 위해 D3DHAL_DRAWPRIMITIVES2DATA ddrval 멤버를 D3D_OK 설정합니다. 또한 드라이버는 나가는 응답 버퍼를 사용하여 들어오는 명령 버퍼를 덮어씁니다. 응답 버퍼의 각 D3DHAL_DP2RESPONSEQUERY 쿼리와 관련된 다음 데이터가 뒤따릅니다.

  • D3DQUERYTYPE_EVENT 대한 BOOL입니다. 이벤트에 대한 D3DDP2OP_RESPONSEQUERY 응답하기 전에 드라이버는 GPU(그래픽 처리 장치)가 이벤트와 관련된 모든 D3DHAL_DP2OPERATION 작업 처리를 완료하는지 확인해야 합니다. 즉, 드라이버는 이벤트의 ISSUE_END 상태가 발생한 후에만 응답합니다. 드라이버는 응답할 때 항상 이벤트의 BOOL 값을 TRUE 로 설정해야 합니다.
  • D3DQUERYTYPE_OCCLUSION DWORD입니다. 드라이버는 이 DWORD를 쿼리의 시작과 끝 사이의 모든 기본 형식에 대해 z-test가 통과한 픽셀 수로 설정합니다. 깊이 버퍼가 다중 샘플링된 경우 드라이버는 샘플 수에서 픽셀 수를 결정합니다. 그러나 디스플레이 디바이스가 다중 샘플링 z 테스트 정확도를 사용할 수 있는 경우 픽셀 수로 변환하는 것이 일반적으로 반올림되어야 합니다. 그러면 애플리케이션이 0에 대해 폐색 결과를 검사 "완전히 폐색됨"을 효과적으로 의미할 수 있습니다. 다중 샘플링된 수량을 픽셀 수량으로 변환하는 드라이버는 렌더링 대상 다중 샘플링 변경 내용을 검색하고 쿼리 결과를 적절하게 계속 계산해야 합니다.
  • D3DQUERYTYPE_VCACHE 구조체를 D3DDEVINFO_VCACHE.

런타임은 반환된 응답 버퍼를 구문 분석하고 내부 데이터 구조를 업데이트합니다.

요구 사항

요구 사항
헤더 d3dhal.h(D3dhal.h 포함)

추가 정보

D3DDEVINFO_VCACHE

D3DDP2OP_ISSUEQUERY

D3DDP2OP_RESPONSEQUERY

D3DHAL_DP2COMMAND

D3DHAL_DP2ISSUEQUERY

D3DHAL_DP2RESPONSE

D3DHAL_DRAWPRIMITIVES2DATA

D3dDrawPrimitives2