zoukankan      html  css  js  c++  java
  • IDirect3DDevice9::Clear 【转】

    为了渲染并显示一个场景,此步骤中示例代码的做法是:清除后备缓冲,并设置为蓝色,将后备缓冲中的内容提交到前台缓冲中,最后将前台缓冲呈现给屏幕。

    为了清除一个场景,需要调用IDirect3DDevice9::Clear方法。

    // Clear the back buffer to a blue color
    g_pd3dDevice->Clear( 0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(0,0,255), 1.0f0 );

    IDirect3DDevice9::Clear的前两个参数,告知Direct3D所要清除一系列矩形的大小和地址。这些矩形描述了那些在渲染目标表面的,即将被清除的区域。

    大多数情况下,你仅仅使用一个覆盖整个渲染目标的矩形。为了达到这个目的,需要将第一个参数设置为0,同时第二个参数设置为NULL。第三个参数决定了此方法的行为。你可以指定不同的标志位,从而来清理渲染目标表面,关联的深度缓冲,模板缓冲,或者是他们三者的任意组合。这个指南并没有使用深度缓冲,所以D3DCLEAR_TARGET是唯一使用了的标志位。最后三个参数分别对应渲染目标,深度缓冲以及模板缓冲清理后的预设数值。CreateDevice示例工程将渲染目标的清理颜色设置为蓝色(D3DCOLOR_XRGB(0,0,255))。最后两个参数会被忽略掉,因为没有设置相应的标志位。

    在清理之后,CreateDevice示例工程告知Direct3D可以开始进行渲染,之后它发出信号表示渲染已经完成。代码如下:

    // Begin the scene.
    g_pd3dDevice->BeginScene();

    // Rendering of scene objects happens here.

    // End the scene.
    g_pd3dDevice->EndScene();

    IDirect3DDevice9::BeginScene和IDirect3DDevice9::EndScene方法用来通知系统渲染何时开始,何时完成。你可以在这两个方法之间调用其它渲染方法。如果某个渲染方法失败,你应该在再次调用BeginScene之前调用EndScene方法。

    在渲染场景之后,你需要调用IDirect3DDevice9::Present方法来显示它。

    g_pd3dDevice->Present( NULL, NULL, NULL, NULL );

    前两个参数分别代表了源矩形和目标矩形。由于此示例中是将整个后备缓冲提交到前台缓冲中,所以这两个参数设置为NULL。第三个参数用来设置接受呈现的目标窗口。由于这个参数被设置为NULL,则会默认使用D3DPRESENT_PARAMETERS中的hWndDeviceWindow成员所代表的窗口。第四个参数代表了“脏矩形区域”,在大多数情况下都应该设置为NULL。

    源:http://www.cnitblog.com/zhangsure/articles/40469.html

  • 相关阅读:
    判断url的正则表达式
    将Excel数据导入MySql
    需要记一下的
    java笔记
    禁用cookie后
    smarty框架块函数
    php Smarty date_format [格式化时间日期]
    mysql 笔记
    笔记 php.ini配置文件中magic_quotes_gpc, magic_quotes_runtime的作用是什么?应该开启还是关闭?
    php
  • 原文地址:https://www.cnblogs.com/emyueguang/p/2084004.html
Copyright © 2011-2022 走看看