DirectX Graphics 레퍼런스 Direct3D C/C++ 레퍼런스 구조체 D3DRECTPATCH_INFO [목차열람] [주소복사] [슬롯비우기] |
Microsoft DirectX 9.0 |
직사각형의 고차원 패치를 기술한다.
구문
typedef struct _D3DRECTPATCH_INFO { UINT StartVertexOffsetWidth; UINT StartVertexOffsetHeight; UINT Width; UINT Height; UINT Stride; D3DBASISTYPE Basis; D3DDEGREETYPE Degree; } D3DRECTPATCH_INFO;
멤버
- StartVertexOffsetWidth
- 정점의 수로 나타낸, 시작 정점 오프셋(offset)의 폭.
- StartVertexOffsetHeight
- 정점의 수로 나타낸, 시작 정점 오프셋(offset)의 높이.
- Width
- 정점의 수로 나타낸, 각 정점의 폭.
- Height
- 정점의 수로 나타낸, 각 정점의 높이.
- Stride
- 가공의 2 차원 정점 배열의 폭. 이 폭은 정점 버퍼와 같은 공간을 점유 한다. 예에 대해서는, 다음의 그림을 참조할것.
- Basis
- D3DBASISTYPE 열거형의 멤버. 직사각형의 고차원 패치의 기본 타입을 정의한다.
값 지원 되는 차수 폭과 높이 D3DBASIS_BEZIER 1 차, 2 차, 3 차 폭 = 높이 = (DWORD) order + 1 D3DBASIS_BSPLINE 1 차, 2 차, 3 차 폭 = 높이 > (DWORD) order D3DBASIS_INTERPOLATE 2 차 폭 = 높이 > (DWORD) order - Degree
- D3DDEGREETYPE 열거형의 멤버. 직사각형 패치의 차수를 정의한다.
주의
다음의 그림에, 직사각형 패치를 지정하는 파라미터를 나타낸다.
정점 버퍼의 각 정점은, 흑점으로써 가리킨다. 이 정점 버퍼에 20 의 정점이 있어, 그 중 16 개는 직사각형 패치내에 있다. 보폭은 정점 버퍼의 폭에 있는 정점의 수로, 이 경우는 5 이다. 최초의 정점에의 x 오프셋(offset)는 StartIndexVertexWidth 로 불려 여기에서는 1 이다. 최초의 패치 정점에의 y 오프셋(offset)는 StartIndexVertexHeight 로 불려 여기에서는 0 이다.
각각의 직사각형 패치의 스트림 (비모자이크)을 렌더링 하려면 , 지오메트리를 가늘고 긴 (1 × N) 직사각형 패치로서 해석해야 한다. 이러한 스트립 (2 차 베지어(Bezier))의 D3DRECTPATCH_INFO 구조체는, 다음과 같이 설정된다.
D3DRECTPATCH_INFO RectInfo; RectInfo.Width = 4; RectInfo.Height = 4; RectInfo.Stride = 4; RectInfo.Basis = D3DBASIS_BEZIER; RectInfo.Order = D3DORDER_CUBIC; RectInfo.StartVertexOffsetWidth = 0; RectInfo.StartVertexOffsetHeight = 4*i; // The variable i is the index of the // patch you want to render.
구조체의 정보
헤더 d3d9types.h 최저한의 operating system Windows 98
참조
IDirect3DDevice9::DrawRectPatch