【Direct3D】之资源管理

来源:互联网 发布:城乡统筹发展数据 编辑:程序博客网 时间:2024/05/16 01:12
资源的概念


Direct3D资源是指用来渲染一个场景的纹理或缓冲区。应用程序需要创建、加载、复制、使用资源。Direct3D所有的资源,包括几何数据资源IDirect3DIndexBuffer9、IDirect3DVertexBuffer9等,都继承于接口IDirect3DResource9。纹理资源IDirect3DCubeTexture9,IDirect3DTexture9和IDirect3DVolumeTextre9是从接口IDirect3DResource9的子接口IDirect3DBaseTexture9中继承而来的


(1)资源用法


资源的使用是强制的。在应用程序中,要以特定的操作使用资源,则在创建该资源时就必须指定使用方法。Direct3D定义了一系列的常量(以D3DUSAGE开发的大写表示符),用来表示资源使用方法,详细情况请参考DirectX帮助文档。例如D3DUSAGE_RTPATCHES,D3DUSAGE_NPATCHES和D3DUSAGE_POINTS表示的资源使用方法,通知驱动程序,在缓冲区内的数据将可能用于渲染高序元(high-order primitives)、网格patches、N-patches和点精灵(point scripts)。提供这些标志是为了防止没有主操作(host processing)时硬件不能执行这些操作。因此,驱动将在系统内存中分配这些表面,使CPU可以操作它们。如果驱动完全可以通过硬件实现这些操作,那么就能在显存中申请这些表面从而避免一次内存复制,这样至少能提高运行性能两倍。需要指出的是这些标志提供的信息不是绝对必须的。驱动能检测到这些将要对数据的操作,并将缓冲区数据移动到系统内存,进行下一帧内容的绘制。
原创粉丝点击