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 구조에 대해 D3dDrawPrimitives2는 드라이버의 프라이빗 렌더링 상태와 D3DHAL_DRAWPRIMITIVES2DATA lpdwRStates 멤버가 가리키는 렌더링 상태 배열을 업데이트해야 합니다. 공용 렌더링 상태 배열에서 업데이트할 요소는 lpdwRStates[RenderState]입니다.

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

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

요구 사항

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

추가 정보

D3DDP2OP_RENDERSTATE

D3DHAL_DP2COMMAND

D3DHAL_DRAWPRIMITIVES2DATA

D3DRENDERSTATETYPE

D3dDrawPrimitives2