posts - 126,  comments - 73,  trackbacks - 0


//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 我风 阅读(1185) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2007年2月>
28293031123
45678910
11121314151617
18192021222324
25262728123
45678910

常用链接

留言簿(12)

随笔分类

随笔档案

文章档案

相册

收藏夹

C++

MyFavorite

搜索

  •  

积分与排名

  • 积分 - 323534
  • 排名 - 75

最新评论

阅读排行榜

评论排行榜