【摘要】:以Direct X 7.0为例,Direct3D的API主要由IDirect3D7、IDirect3Ddevice7和IDirect3Dvertex Buffer7三个COM接口组成。其中IDirect3D7是用于获得其他接口的根接口。虽然l Direct3D7接口的命名类似于其他的前辈,支持并拓展了Draw Primitive机制,但是并不支持传统的接口。它与前辈有一个显著的区别,就是没有创建光照、材质和视口对象的方法,而是把它们放入IDirect3Ddevice7接口所采用的方法中,这种方法把光照、材质和视口作为设备内部结构的一部分,而不作为独立的对象。图7-7 Direct3D应用程序对接口的访问
对接口的访问_地学三维可视化与
以Direct X 7.0为例,Direct3D的API主要由IDirect3D7、IDirect3Ddevice7和IDirect3Dvertex Buffer7三个COM接口组成。其中IDirect3D7是用于获得其他接口的根接口。虽然l Direct3D7接口的命名类似于其他的前辈,支持并拓展了Draw Primitive机制,但是并不支持传统的接口。它与前辈有一个显著的区别,就是没有创建光照、材质和视口对象的方法,而是把它们放入IDirect3Ddevice7接口所采用的方法中,这种方法把光照、材质和视口作为设备内部结构的一部分,而不作为独立的对象。
图7-6 Direct3D立即模式的层次结构
在C++中编写Direct3D应用程序时,首先调用Direct Draw Create Ex创建一个Direct-Draw的设备(图7-7),此时才有支持Direct3D7的能力(如果用Direct Draw Create函数创建Direct Draw对象并不支持Direct3D7),然后用IUnknown::Query Interface方法得到IDi-rect3D7接口的指针。
图7-7 Direct3D应用程序对接口的访问
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。