D3DTRANSFORMDATA

typedef struct _D3DTRANSFORMDATA {

DWORD dwSize;

LPVOID lpIn;

DWORD dwInSize;

LPVOID lpOut;

DWORD dwOutSize;

LPD3DHVERTEX lpHOut;

DWORD dwClip;

DWORD dwClipIntersection;

DWORD dwClipUnion;

D3DRECT drExtent;

} D3DTRANSFORMDATA, *LPD3DTRANSFORMDATA;

Contains information about transformations for the IDirect3DViewport::TransformVertices method.

dwSize

Size of the structure, in bytes.

lpIn

Address of the vertices to be transformed. This should be a D3DLVERTEX structure.

dwInSize

Stride of the vertices to be transformed.

lpOut

Address used to store the transformed vertices.

dwOutSize

Stride of output vertices.

lpHOut

Address of a value that contains homogeneous transformed vertices. This value is a D3DHVERTEX structure

dwClip

Flags specifying how the vertices are clipped. This member can be one or more of the following values:

D3DCLIP_BACK

Clipped by the back plane of the viewing frustum.

D3DCLIP_BOTTOM

Clipped by the bottom plane of the viewing frustum.

D3DCLIP_FRONT

Clipped by the front plane of the viewing frustum.

D3DCLIP_GEN0 through D3DCLIP_GEN5

Application-defined clipping planes.

D3DCLIP_LEFT

Clipped by the left plane of the viewing frustum.

D3DCLIP_RIGHT

Clipped by the right plane of the viewing frustum.

D3DCLIP_TOP

Clipped by the top plane of the viewing frustum.

dwClipIntersection

Flags denoting the intersection of the clip flags. This member can be one or more of the following values:

D3DSTATUS_CLIPINTERSECTIONBACK

Logical AND of the clip flags for the vertices compared to the back clipping plane of the viewing frustum.

D3DSTATUS_CLIPINTERSECTIONBOTTOM

Logical AND of the clip flags for the vertices compared to the bottom of the viewing frustum.

D3DSTATUS_CLIPINTERSECTIONFRONT

Logical AND of the clip flags for the vertices compared to the front clipping plane of the viewing frustum.

D3DSTATUS_CLIPINTERSECTIONGEN0 through D3DSTATUS_CLIPINTERSECTIONGEN5

Logical AND of the clip flags for application-defined clipping planes.

D3DSTATUS_CLIPINTERSECTIONLEFT

Logical AND of the clip flags for the vertices compared to the left side of the viewing frustum.

D3DSTATUS_CLIPINTERSECTIONRIGHT

Logical AND of the clip flags for the vertices compared to the right side of the viewing frustum.

D3DSTATUS_CLIPINTERSECTIONTOP

Logical AND of the clip flags for the vertices compared to the top of the viewing frustum.

dwClipUnion

Flags denoting the union of the clip flags. This member can be one or more of the following values:

D3DSTATUS_CLIPUNIONBACK

Equal to D3DCLIP_BACK.

D3DSTATUS_CLIPUNIONBOTTOM

Equal to D3DCLIP_BOTTOM.

D3DSTATUS_CLIPUNIONFRONT

Equal to D3DCLIP_FRONT.

D3DSTATUS_CLIPUNIONGEN0 through D3DSTATUS_CLIPUNIONGEN5

Equal to D3DCLIP_GEN0 through D3DCLIP_GEN5.

D3DSTATUS_CLIPUNIONLEFT

Equal to D3DCLIP_LEFT.

D3DSTATUS_CLIPUNIONRIGHT

Equal to D3DCLIP_RIGHT.

D3DSTATUS_CLIPUNIONTOP

Equal to D3DCLIP_TOP.

drExtent

Value that defines the extent of the transformed vertices. This structure is filled by the transformation module with the screen extent of the transformed geometry. For geometries that are clipped, this extent will only include vertices that are inside the viewing volume. This value is a D3DRECT structure

Each input vertex should be a three-vector vertex giving the [x y z] coordinates in model space for the geometry. The dwInSize member gives the amount to skip between vertices, allowing the application to store extra data inline with each vertex.

All values generated by the transformation module are stored as 16-bit precision values. The clip is treated as an integer bitfield that is set to the inclusive OR of the viewing volume planes that clip a given transformed vertex.