//1.初始化(InitD3D())
//創建IDirect3D9 對象并返回接口(LPDIRECT3D9)
IDirect3D9 * Direct3DCreate9(
? UINT SDKVersion??????????????? //版本號(D3D_SDK_VERSION)
);
//創建設備對象
HRESULT CreateDevice(
? [in] UINT Adapter,??????????????? //顯示適配器ID(D3DADAPTER_DEFAULT為缺省)???
? [in] D3DDEVTYPE DeviceType,?????? //顯示模式
? [in] HWND hFocusWindow,?????????? //對應的繪制窗口??????????
? [in] DWORD BehaviorFlags,???????? //D3DCREATE類型
? [in] D3DPRESENT_PARAMETERS * pPresentationParameters,? //設備參數???
? [out] IDirect3DDevice9 ** ppReturnedDeviceInterface??? //LPDIRECT3DDEVICE9類型???????
);
//2.建模
//創建頂點緩沖區
HRESULT CreateVertexBuffer(
? UINT Length,??????????????????????? //緩沖區大小
? DWORD Usage,??????????????????????? //D3DUSAGE組合,一般設0
? DWORD FVF,????????????????????????? //D3DFVF組合.
? D3DPOOL Pool,?????????????????????? //D3DPOOL枚舉,缺省用0
? IDirect3DVertexBuffer9** ppVertexBuffer,? //LPDIRECT3DVERTEXBUFFER9類型輸出對象
? HANDLE* pSharedHandle???????????????????? //保留,置零
);
//創建索引緩沖區
HRESULT CreateIndexBuffer(
? UINT Length,??????? //緩沖區長度
? DWORD Usage,??????? //D3DUSAGE組合,一般設0
? D3DFORMAT Format,?? //每個索引長度描述(一般用D3DFMT_INDEX16/D3DFMT_INDEX32)
? D3DPOOL Pool,?????? //D3DPOOL枚舉,缺省用0
? IDirect3DIndexBuffer9** ppIndexBuffer,? //LPDIRECT3DVERTEXBUFFER9類型輸出對象
? HANDLE* pSharedHandle?????????????????? //保留,置零
);
//創建紋理
D3DXCreateTextureFromFile();
D3DXCreateTextureFromResource();
D3DXCreateTextureFromFileInMemory();
//3.渲染
//清除背景
HRESULT Clear(
? DWORD Count,??????????????? //要清除的矩形個數,如pRects=NULL,必設0
? CONST D3DRECT * pRects,???? //要清除的矩形指針
? DWORD Flags,??????????????? //清除緩存類型(模板緩存/目標緩存/深度緩存)
? D3DCOLOR Color,???????????? //清除顏色
? float Z,??????????????????? //清除深度緩存值(0.0 -1.0),一般設1.0
? DWORD Stencil?????????????? //清除模板緩存值(0-2^(n-1)),一般設0
);
//開始繪制
HRESULT BeginScene();
//結束繪制
HRESULT EndScene();
//綁定頂點緩存到顯示流
HRESULT SetStreamSource(
? UINT StreamNumber,??????????????????????? //指定的數據流號
? IDirect3DVertexBuffer9 * pStreamData,???? //LPDIRECT3DVERTEXBUFFER9指針
? UINT OffsetInBytes,?????????????????????? //偏移量
? UINT Stride?????????????????????????????? //每個數據長度
);
//
HRESULT SetFVF(
? DWORD FVF
);
//根據指定類型繪制圖形
HRESULT DrawPrimitive(
? D3DPRIMITIVETYPE PrimitiveType,? //繪制類型,見 D3DPRIMITIVETYPE
? UINT StartVertex,??????????????? //表示從數組中的哪一個位置開始讀取頂點
? UINT PrimitiveCount????????????? //繪制的圖原數量
);
//根據索引繪制圖形
HRESULT DrawIndexedPrimitive(
? D3DPRIMITIVETYPE Type,??????? //繪制類型,見 D3DPRIMITIVETYPE
? INT BaseVertexIndex,????????? //第一個頂點的偏移位置
? UINT MinIndex,??????????????? //基于BaseVertexIndex的最小的頂點索引
? UINT NumVertices,???????????? //所要使用的索引數量;
? UINT StartIndex,????????????? //表示從數組中的哪一個位置開始讀取頂點
? UINT PrimitiveCount?????????? //繪制的圖原數量
);
?
posted on 2007-02-28 17:06
我風 閱讀(1198)
評論(0) 編輯 收藏 引用