IDirect3DDevice9::Clear
来源:互联网 发布:心脏为什么会跳动 知乎 编辑:程序博客网 时间:2024/05/14 18:08
为了渲染并显示一个场景,此步骤中示例代码的做法是:清除后备缓冲,并设置为蓝色,将后备缓冲中的内容提交到前台缓冲中,最后将前台缓冲呈现给屏幕。
为了清除一个场景,需要调用IDirect3DDevice9::Clear方法。
g_pd3dDevice->Clear( 0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(0,0,255), 1.0f, 0 );
IDirect3DDevice9::Clear的前两个参数,告知Direct3D所要清除一系列矩形的大小和地址。这些矩形描述了那些在渲染目标表面的,即将被清除的区域。
大多数情况下,你仅仅使用一个覆盖整个渲染目标的矩形。为了达到这个目的,需要将第一个参数设置为0,同时第二个参数设置为NULL。第三个参数决定了此方法的行为。你可以指定不同的标志位,从而来清理渲染目标表面,关联的深度缓冲,模板缓冲,或者是他们三者的任意组合。这个指南并没有使用深度缓冲,所以D3DCLEAR_TARGET是唯一使用了的标志位。最后三个参数分别对应渲染目标,深度缓冲以及模板缓冲清理后的预设数值。CreateDevice示例工程将渲染目标的清理颜色设置为蓝色(D3DCOLOR_XRGB(0,0,255))。最后两个参数会被忽略掉,因为没有设置相应的标志位。
在清理之后,CreateDevice示例工程告知Direct3D可以开始进行渲染,之后它发出信号表示渲染已经完成。代码如下:
g_pd3dDevice->BeginScene();
// Rendering of scene objects happens here.
// End the scene.
g_pd3dDevice->EndScene();
IDirect3DDevice9::BeginScene和IDirect3DDevice9::EndScene方法用来通知系统渲染何时开始,何时完成。你可以在这两个方法之间调用其它渲染方法。如果某个渲染方法失败,你应该在再次调用BeginScene之前调用EndScene方法。
在渲染场景之后,你需要调用IDirect3DDevice9::Present方法来显示它。
前两个参数分别代表了源矩形和目标矩形。由于此示例中是将整个后备缓冲提交到前台缓冲中,所以这两个参数设置为NULL。第三个参数用来设置接受呈现的目标窗口。由于这个参数被设置为NULL,则会默认使用D3DPRESENT_PARAMETERS中的hWndDeviceWindow成员所代表的窗口。第四个参数代表了“脏矩形区域”,在大多数情况下都应该设置为NULL。
- IDirect3DDevice9::Clear
- IDirect3DDevice9::Clear
- IDirect3DDevice9::Clear函数
- IDirect3DDevice9::Clear函数
- DirectX9函数:IDirect3DDevice9::Clear 方法
- IDirect3DDevice9:Clear的参数说明
- IDirect3DDevice9::SetTextureStageState
- IDirect3DDevice9::GetRenderTargetData
- IDirect3DDevice9::StretchRect
- IDirect3DDevice9::DrawPrimitive
- IDirect3DDevice9::SetTextureStageState
- IDirect3DDevice9::SetClipPlane
- IDirect3DDevice9::CreateTexture
- IDirect3DDevice9::SetClipPlane
- clear
- clear ()
- clear
- clear
- defy的wifi经常断线和不稳定问题的解决办法,请机油们试试看
- Exchange Server 书籍&教程资源下载总汇
- ios 开发 | 资料收集
- Maven 2.0:编译、测试、部署、运行
- 动态规划经典算法之装配站调度问题源代码
- IDirect3DDevice9::Clear
- 获取iPhone通话记录(需越狱)
- MP3解码算法分析——MP3帧头(Frame Header)数据结构描述
- 软件工程相关名词解析
- BigDecimal 精确计算
- PHP json_encode
- ADO.NET操作Excel常见问题
- tomcat6.0数据源配置
- DDR3详解(以Micron MT41J128M8 1Gb DDR3 SDRAM为例)之一