DirectX Graphics 레퍼런스 Direct3D C/C++ 레퍼런스 인터페이스 IDirect3DDevice9 DrawRectPatch   [목차열람] [주소복사] [슬롯비우기]
IDirect3DDevice9::DrawRectPatch 메서드
 
Microsoft DirectX 9.0

IDirect3DDevice9::DrawRectPatch 메서드


현재 설정되어 있는 스트림을 사용해, 직사각형의 패치를 드로잉(Drawing) 한다.

구문

HRESULT DrawRectPatch(      

    UINT Handle,     const float* pNumSegs,     const D3DRECTPATCH_INFO* pRectPatchInfo );

파라미터

Handle
[in] 드로잉(Drawing) 하는 직사각형의 패치에의 핸들.
pNumSegs
[in] 테설레이션 시에, 직사각형 패치의 각 엣지를 분할하는 세그먼트(segment)의 수를 나타내는, 4 개의 부동 소수점값의 배열의 포인터. 「D3DRECTPATCH_INFO 」를 참조할것.
pRectPatchInfo
[in] D3DRECTPATCH_INFO 구조체의 포인터. 드로잉(Drawing) 하는 직사각형의 패치를 기술한다.

반환값

성공했을 경우는,D3D_OK 를 돌려준다.

실패했을 경우의 반환값은 다음대로.

D3DERR_INVALIDCALL메서드의 호출이 무효이다. 예를 들어, 메서드의 파라미터에 무효인 값이 설정되어 있는 경우 등이다.


주의

정적 패치의 경우 :Microsoft® Direct3D® 가 정보를 캡춰 해 캐쉬할 수 있도록, 정점 셰이더를 설정해, 적절한 스트림을 설정해,pRectPatchInfo 파라미터내에서 패치 정보를 공급해, 핸들을 지정하는 것. pRectPatchInfo 이 NULL 로 설정된 상태로 IDirect3DDevice9::DrawRectPatch 를 호출하는 것으로, 패치를 효율적으로 드로잉(Drawing) 할 수 있다. 캐쉬한 패치를 드로잉(Drawing) 할 때는, 현재 설정되어 있는 스트림은 무시된다. pNumSegs 의 새로운 값을 지정해, 캐쉬한pNumSegs를 덧쓰기하는 것. 캐쉬한 패치를 렌더링 할 때는, 캡춰시로 설정한 것과 같은 정점 셰이더를 설정할 필요가 있다.

핸들을 사용해 IDirect3DDevice9::DrawRectPatch 를 호출하면, 이전의 IDirect3DDevice9::DrawTriPatch 호출로 캐쉬한 같은 핸들이 무효가 된다.

동적 패치에 대해서는, 패치의 렌더링 마다 패치 데이터가 변화하기 위해(때문에), 정보를 캐쉬하는 것은 효율적은 아니다. 애플리케이션은,Handle 를 0 으로 설정하는 것으로, 이 정보를 Direct3D 에게 전할 수가 있다. 이 경우, Direct3D 는, 현재 설정되어 있는 스트림 및 pNumSegs 값을 사용해 패치를 드로잉(Drawing) 해, 정보의 캐쉬를 실시하지 않는다. Handle 를 0 으로 설정한 상태로 pRectPatchInfo 를 NULL 로 설정과 무효가 된다.

참조

IDirect3DDevice9::DeletePatch ,고차원 기본도형의 사용법


© 2002 Microsoft Corporation. All rights reserved.
↑TOP