读书笔记--DirectX概述

来源:互联网 发布:pcb原理图设计软件 编辑:程序博客网 时间:2024/06/11 21:10

对于任何一种图形,图像库,无外乎都是从最基本的绘制图元开始,然后以渐进的方式描述复杂的三维物体模型。

DirectX包含两方面:一方面指的是DirectX SDK,即DirectX API(DirectX应用程序接口),用于开发DirectX应用程序;另一方面是指DirectX Runtime(DirectX运行时),它是一组动态链接库,用于开发和运行DirectX应用程序。

基于DirectX API开发的多媒体软件可以运行于硬件抽象层(HAL),它既充分利用了系统硬件的加速功能,又隐藏了硬件相关的设备特性。通过编写与设备无关的高效代码,DirectX程序总是能以最佳方式运行,因此具有效率高,并且易于开发的特点。

DirectX由很多API组成,按照性质可以分为四大部分:显示部分,声音部分,输入部分和网络部分,并且它们分别DirectDraw和Direct3D,DirectInput,DirectPlay,DirectSound,DirectShow, DirectSetup组成。

Direct3D是基于组件对象模型(Components Object Model)对象的设计结构;COM接口对象是对一组特定功能的抽象集合,应用程序不能直接访问COM接口对象,而是必须通过COM接口对象的接口的指针执行COM接口对象的功能。COM接口对象定义了可供程序调用的一组函数,而接口是包含函数指针数组的内存结构,其中的每一个数组元素包含的是一个由组件所实现的函数地址,其使用方法类似于C++类的指针。

COM接口对象和C++类的区别:C++类由new和delete运算符控制类对象的生成周期,而COM接口对象则通过控制对该对象的引用计数来决定其生存周期。COM接口对象的引用计数器记录了该对象当前被引用的个数。当一个COM接口对象被创建时,其引用计数将为1,以后每当程序又创建了该COM接口的新对象时,其引用计数将加1。当程序对该对象的引用结束时,需要调用该对象的Release方法释放该接口,而其引用计数将减1.但是此时该对象所占用的内存还没有释放,只有当该对象的引用计数减为0,即所有对该对象的引用都已经得到释放后,此时才释放该COM接口对象所占用的内存。


0 0
原创粉丝点击