다음을 통해 공유


D3DHAL_DP2RENDERSTATE 구조체(d3dhal.h)

D3DHAL_DP2COMMAND 구조체의 bCommand 멤버가 D3DDP2OP_RENDERSTATE 설정되고 적절한 렌더링 상태를 설정하는 데 사용될 때 하나 이상의 D3DHAL_DP2RENDERSTATE 구조가 D3dDrawPrimitives2 콜백에 의해 명령 버퍼에서 구문 분석됩니다.

통사론

typedef struct _D3DHAL_DP2RENDERSTATE {
  D3DRENDERSTATETYPE RenderState;
  union {
    D3DVALUE dvState;
    DWORD    dwState;
  };
} D3DHAL_DP2RENDERSTATE;

회원

RenderState

업데이트할 렌더링 상태를 나타내는 D3DRENDERSTATETYPE 열거형 형식을 지정합니다. 애플리케이션 수준에서 요청된 렌더링 상태는 DirectX SDK 설명서에 설명되어 있습니다. 드라이버에서만 사용되는 렌더링 상태는 D3DRENDERSTATETYPE설명되어 있습니다.

dvState

드라이버가 RenderState 멤버로 식별되는 렌더링 상태를 업데이트해야 하는 값을 지정합니다. 이 멤버는 RenderState D3DVALUE 필요한 경우에 유효합니다.

dwState

드라이버가 RenderState 식별된 렌더링 상태를 업데이트해야 하는 값을 지정합니다. 이 멤버는 RenderState DWORD가 필요한 경우에 유효합니다.

발언

D3dDrawPrimitives2 명령 버퍼에서 wStateCount D3DHAL_DP2RENDERSTATE 구조를 처리해야 합니다. wStateCount 값은 D3DHAL_DP2COMMAND 구조체에 지정됩니다.

각 D3DHAL_DP2RENDERSTATE 구조에 대해 D3dDrawPrimitives2lpdwRStates가 D3DHAL_DRAWPRIMITIVES2DATA 멤버가 가리키는 드라이버의 프라이빗 렌더링 상태 및 렌더링 상태 배열을 업데이트해야 합니다. 공용 렌더링 상태 배열에서 업데이트할 요소는 lpdwRStates[RenderState] .

다음 그림에서는 D3DDP2OP_RENDERSTATE 명령과 두 개의 D3DHAL_DP2RENDERSTATE 구조체를 포함하는 샘플 명령 버퍼의 일부를 보여줍니다. 드라이버는 lpdwRStates[D3DRENDERSTATE_FILLMODE]을 D3DFILL_SOLID 업데이트하고 lpdwRStates [D3DRENDERSTATE_SHADEMODE]을 D3DSHADE_GOURAUD합니다. 또한 드라이버는 그에 따라 개인 상태를 업데이트해야 합니다.

D3DDP2OP_RENDERSTATE 명령과 두 개의 D3DHAL_DP2RENDERSTATE 구조가 있는 명령 버퍼를 보여 주는 그림 형식의 값이 부울인 렌더링 상태는 TRUE(1) 및 FALSE(0)만 허용하는 것으로 문서화되지만 런타임은 이 유효성을 검사하지 않고 모든 영하 값을 true로 허용합니다. 샘플 드라이버는 이를 엄격하게 해석하고 1 이외의 값을 TRUE 해석합니다. 그러나 런타임에서 유효성 검사를 제공하지 않으므로 드라이버는 0을 FALSE 및 다른 모든 하위 0으로 해석해야 TRUE. 이와 관련하여 드라이버는 제공된 샘플 드라이버의 동작을 모방해서는 안 됩니다.

요구 사항

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

참고 항목

D3DDP2OP_RENDERSTATE

D3DHAL_DP2COMMAND

D3DHAL_DRAWPRIMITIVES2DATA

D3DRENDERSTATETYPE

D3dDrawPrimitives2