• DirectX学习入门笔记(一)


    原文:https://blog.csdn.net/butcher986115/article/details/50595937 

    什么是DirectX?

    DirectX是游戏制作者的API(Application Development Interface)。

    它是一组允许你直接控制计算机硬件设备的软件。

    我们是通过硬件抽象层(HAL)和硬件仿真层(HEL)来保证设备无关性和让你的程序正常运行。

    DirectX由很多组件构成,每一个都有特定的用途。

    (1)组件DirectDraw是最为重要的一个,因为所有的图形都要用到它,它是2D图形的引擎,3D图形也同样离不开它。

    (2)DirectSound:提供硬件和软件的声音混合与回放。

    (3)DirectMusic:处理基于消息的音乐数据。它支持乐器数字接口(MIDI, Musical Instrument Digital Interface)并为创建交互式音乐提供创作工具。

    (4)DirectPlay:使得通过调制解调器链接或通过网络来与应用程序相连成为可能

    (5)Direct3D:是一个三维图形包,它提供一个高级的保留模式(Retained Mode)接口,这使得你能够实现一个完整的三维图形系统。它还包含一个低级的即时模式(Immediate Mode)接口,使得应用程序获得对渲染管线的完全控制。

    (6) DirectInput:为包括游戏杆、鼠标、键盘和游戏控制器在内的输入设备提供支持。它还为反馈游戏设备提供支持。

    (7)DirectSetup:为DirectX提供了一个简单的安装过程。它简化了更新显示和音频驱动程序的过程,并且确保没有硬件或软件冲突的存在。

    (8) AutoPlay:让你能够制作一张一旦插入驱动器就能自动安装的光盘。AutoPlay并非DirectX所独有,因为它是Microsoft Win32 API的一部分。

    组件对象模型(COM)是DirectX的基础.

    组件对象模型(COM)

    COM接口是DirectX技术的基础,

    DirectX的大多数API都是基于COM结构的。COM为软件模块化和软件重用提供了最坚实的基础,它的最重要的概念就是接口(interface),接口是软件重用的最基本方法。更专业的说,接口是一系列操作的规范描述,即接口规范。

    所有的COM接口都是从Iunknown接口继承而来的,IUnknown接口是所有COM接口的根。IUnknown接口具有3个方法:

    · QueryInterface():此方法查询新接口,并在新接口存在时返回之。

    · AddRef():此方法在接口或其它应用程序链接到此COM对象上时将引用计数值递加1。

    · Release():此方法将COM对象的引用计数递减1。当引用计数递减到0时,该COM对象自动释放。

    所有COM对象都具有这三个方法。虽然DirectX应用程序一般不需要考虑引用计数的问题,但引用计数确实是存在的,它已经由DirectX自动完成了。

    我们所要做的,就是创建DirectX对象,然后在使用完毕后调用Release方法释放引用。

    ☆ 设置

    用DirectX创建程序,你需要有三件主要的事要做。

    第一件事是COM对象本身,它们包含在.DLL文件里,这些.DLL文件需要在Windows里注册,这在安装DirectX软件包时已经完成了。这些对象是我们创建DirectX应用程序时用到的接口,例如IdirectDraw。

    使用DirectX的不同组件,你需要链接不同的静态库。例如你要使用DirectDraw组件,你就需要ddraw.lib。

    最后,你还需要DrectX头文件,它包含函数原形、宏、常量和你需要用到的各种类型。对于DirectDraw,这个头文件是ddraw.h。

    要确认你使用了正确的文件版本,你还得让编译器包含软件开发包的目录。

    具体的做法是:

    首先点击Tool菜单,选择Options,然后点击Directories,在Show Directories for 组合框下拉菜单中选择Include files,增加一个新的目录。将你的DirectX的路径填入。(例如:C:DXSDKinclude)然后将它移到列表的第一位,使编译时第一个寻找它(防止寻找老版本)。然后选择Show Directories for组合框下拉菜单中的Library files,方法同前,只是把include改成lib。现在,你已经设置完了DirectX。你仍然需要手动增加一些库文件到你的项目中,

  • 相关阅读:
    Openssl命令详解
    Openssl命令详解
    Mac根目录下无法创建文件或目录
    解决 mysql from_base64 函数返回乱码的问题
    elementUI日期选择器 el-date-picker根据所选日期选择禁用
    el-dialog设置为点击弹窗以外的区域不自动关闭弹窗
    在vue项目中MD5加密的使用方法
    bower install 报错fatal: unable to access 'https://github.com/angular/bower-angular-touch.git/'类错误解决方法
    angular项目grunt serve报错Cannot find where you keep your Bower packages
    移动端开发--》适配各种机型样式大小
  • 原文地址:https://www.cnblogs.com/XiHua/p/11050770.html
Copyright © 2020-2023  润新知