#ifndef STDVERTS_H_INCLUDED
#define STDVERTS_H_INCLUDED

//////////////////////////
// Old directx7-style vertices

typedef struct _D3DTLVERTEX {
    float sx, sy;  // screen position    
    float sz;      // Z-buffer depth    
    float rhw;     // reciprocal homogeneous W    
    DWORD color;   // diffuse color    
    float tu, tv;  // texture coordinates
} D3DTLVERTEX, *LPD3DTLVERTEX;

#define D3DFVF_TLVERTEX (D3DFVF_XYZRHW | D3DFVF_DIFFUSE | D3DFVF_TEX1)

typedef struct _D3DLVERTEX {
  float x,y,z;      // world coordinates
  DWORD color;      // diffuse color
  float tu, tv;     // texture coordinates
} D3DLVERTEX, *LPD3DLVERTEX;

#define D3DFVF_LVERTEX (D3DFVF_XYZ | D3DFVF_DIFFUSE | D3DFVF_TEX1)

typedef struct _D3DVERTEX {
  float x,y,z;      // world coordinates
  float nx,ny,nz;   // vertex normal
  float tu, tv;     // texture coordinates
} D3DVERTEX, *LPD3DVERTEX;

#define D3DFVF_VERTEX (D3DFVF_XYZ | D3DFVF_NORMAL | D3DFVF_TEX1)

//////////////////////////
// My own types..


typedef struct _D3DPLVERTEX {
  float x,y,z;      // world coordinates
  float psize;      // point size
  DWORD color;      // diffuse color
} D3DPLVERTEX, *LPD3DPLVERTEX;

#define D3DFVF_PLVERTEX (D3DFVF_XYZ | D3DFVF_DIFFUSE | D3DFVF_PSIZE )

typedef struct _D3DPTLVERTEX {
  float sx,sy;      // screen position    
  float sz;         // Z-buffer depth    
  float rhw;        // reciprocal homogeneous W  
  float psize;      // point size
  DWORD color;      // diffuse color
} D3DPTLVERTEX, *LPD3DPTLVERTEX;

#define D3DFVF_PTLVERTEX (D3DFVF_XYZRHW | D3DFVF_DIFFUSE | D3DFVF_PSIZE )


#endif