    Rem Project: D3D_Draw_Primitive_example
    Rem Created: 13/04/2008 23:10:51

    Rem ***** Main Source File *****

    Rem Declare FVF Constants

    #Constant D3DFVF_XYZ                2
    #Constant D3DFVF_XYZRHW             4
    #Constant D3DFVF_NORMAL             16
    #Constant D3DFVF_PSIZE              32
    #Constant D3DFVF_DIFFUSE            64
    #Constant D3DFVF_SPECULAR           128
    #Constant D3DFVF_TEX1               256

    Rem Declare Primitive Types
    #Constant D3DPT_POINTLIST           1
    #Constant D3DPT_LINELIST            2
    #Constant D3DPT_LINESTRIP           3
    #Constant D3DPT_TRIANGLELIST        4
    #Constant D3DPT_TRIANGLESTRIP       5
    #Constant D3DPT_TRIANGLEFAN         6

    Rem 3D Vertex Type with Diffuse Colour
    Rem D3DFVF_XYZ or D3DFVF_DIFFUSE

    type typVertex
        X#              as float
        Y#              as float
        Z#              as float
        Colour          as DWORD
    endtype

    dim My3DVertex(4) as typVertex

    Rem 2D Transformed Vertex Type with Diffuse Colour
    Rem D3DFVF_DIFFUSE or D3DFVF_XYZRHW

    type Transformed
        X#              as float
        Y#              as float
        Z#              as float
        W#              as float
        colour          as DWORD
    endtype

    dim My2DVertex(3) as Transformed

    My2DVertex(0).X#=50.0
    My2DVertex(0).Y#=50.0
    My2DVertex(0).Z#=1.0
    My2DVertex(0).W#=1.0
    My2DVertex(0).Colour=RGB(255,0,0)

    My2DVertex(1).X#=200.0
    My2DVertex(1).Y#=50.0
    My2DVertex(1).Z#=1.0
    My2DVertex(1).W#=1.0
    My2DVertex(1).Colour=RGB(255,255,0)

    My2DVertex(2).X#=50.0
    My2DVertex(2).Y#=200.0
    My2DVertex(2).Z#=1.0
    My2DVertex(2).W#=1.0
    My2DVertex(2).Colour=RGB(255,255,0)

    My2DVertex(3).X#=200.0
    My2DVertex(3).Y#=200.0
    My2DVertex(3).Z#=1.0
    My2DVertex(3).W#=1.0
    My2DVertex(3).Colour=RGB(255,0,0)

    Rem Define 3d Rectangle

    My3DVertex(0).X#=0.0
    My3DVertex(0).Y#=0.0
    My3DVertex(0).Z#=0.0
    My3DVertex(0).Colour=RGB(255,0,0)

    My3DVertex(1).X#=-1.0
    My3DVertex(1).Y#=0.0
    My3DVertex(1).Z#=0.0
    My3DVertex(1).Colour=RGB(255,255,0)

    My3DVertex(2).X#=-1.0
    My3DVertex(2).Y#=1.0
    My3DVertex(2).Z#=0.0
    My3DVertex(2).Colour=RGB(255,0,0)

    My3DVertex(3).X#=0.0
    My3DVertex(3).Y#=1.0
    My3DVertex(3).Z#=0.0
    My3DVertex(3).Colour=RGB(255,255,0)

    My3DVertex(4).X#=0.0
    My3DVertex(4).Y#=0.0
    My3DVertex(4).Z#=0.0
    My3DVertex(4).Colour=RGB(255,0,0)

    backdrop on:color backdrop 0

    Rem Setup Fonts

    d3d_font 1,"Arial",20,0,0,1
    d3d_font 2,"Arial",10,0,0,1

    Rem setup camera angle
    ca#=0

    do

    Rem move camera in circle around the origin

    Position camera sin(ca#)*10,5,cos(ca#)*10
    point camera 0,0,0
    ca#=wrapvalue(ca#+.01)

    Rem Draw a 2D Transformed Rectangle
    D3D_Draw_Primitive D3DFVF_DIFFUSE or D3DFVF_XYZRHW,D3DPT_TRIANGLESTRIP,My2DVertex(0)

    Rem Draw a 3d Rectangle
    D3D_Draw_Primitive 0,0,0,D3DFVF_XYZ or D3DFVF_DIFFUSE,D3DPT_LINESTRIP,My3DVertex(0)

    d3d_starttext
       d3d_text 1,Screen width()/2,0,1,"D3D_Draw_Primitive Example"
       d3d_text 2,Screen width()/2,30,1,"Jason Clogg - 2008"
       d3d_text 2,125,210,1,"D3DPT_TRIANGLESTRIP"
       d3d_text 2,Screen width()/2,screen height()/2+10,1,"D3DPT_LINESTRIP"
    d3d_endtext

    loop