D3D9 SDK文档笔记2---一切从头开始(1)
来源:互联网 发布:网络打假赚钱 编辑:程序博客网 时间:2024/05/18 02:10
玩过Directx开发的人都知道,Directx是基于COM(组件对象模型)的。据本人理解,COM本质上就是在windows注册表里登记入户的一些接口---函数的集合,给每个COM一个身份证号(GUID)。这样通过在注册表中查找身份证号,每个应用程序都可以方便的调用这些接口。同时为了保证这些接口的通用性,以便各种不同的编程语言都可以方便调用,在编写COM时,就必须遵循一个公共的标准。而在一台机器上注册户口,整个分布式环境就可以使用,COM便通过网络成了DCOM。使用COM本身比较简单,初始化COM,获得接口,调用接口的函数,释放接口。
在开发D3D的程序时,你可能感觉不到COM的存在,这正是MS着力打造的结果。D3D API将COM完全藏在了身后,你的开发过程和以前并没有任何差别。根据我的经验,初学者只会受到一些关于D3D 对象没有释放问题的困扰。这是由于COM采用的是引用计数的方法来创建和销毁COM接口的。也就是说,接口只创建一次,而在应用程序中各个地方的被引用而已。那什么时候释放这个接口呢?只有通过引用的计数了,当你所有引用接口的地方都已经,显式地调用了Release(),那么引用计数最终为0,这就真的到了接口被释放的时候了。所以碰到D3D对象没有释放的问题,那就一定是你的程序在引用完接口后,漏掉调用Release()了。
终于啰嗦完COM了,其实学习3D开发最首要也是最让人初学者迷惑的问题是:那些三维画面到底是怎样,最后呈现在了我们的眼前。- D3D9 SDK文档笔记2---一切从头开始(1)
- D3D9 SDK文档笔记3---一切从头开始(2)
- D3D9 SDK文档笔记4---一切从头开始(3)
- D3D9 SDK文档笔记1---为什么开始?
- D3D9 SDK文档笔记6---视锥体
- D3D9 SDK文档笔记7---透视投影
- D3D9 SDK文档笔记5---虚拟三维世界的坐标系
- 一切的一切从头开始
- 一切从头开始
- 一切从头开始
- QeePHP:一切从头开始
- 一切从头开始
- 一切从头开始吧。
- 一切,从头开始
- 一切从头开始
- 创业,一切从头开始
- 刚刚加入一切从头开始
- 新的开始,一切从头开始
- Struts1.2 开发技巧 一 ---------- 安装Struts
- 一个简单的Hibernate入门示例
- js为加载图片的实现过程
- 已更新或删除的行值要么不能使该行成为唯一行,要么改变了多个行.
- Struts1.2开发技巧二-----------------Struts标签的使用
- D3D9 SDK文档笔记2---一切从头开始(1)
- mysql 赋给用户权限 grant all privileges on
- StartKit.Ajax
- windows下的命令
- 通过PowerDesigner生成数据库表
- Eclipse 3.4 + Tomcat Plugin + Tomcat 6 "DevLoader" 问题解决办法
- OpenLayers项目分析——(七)地图表现
- 对"25岁后应知道的66件事"的一些个人理解
- C#抽象工厂模式的几种实现方法及比较