论坛风格切换切换到宽版
  • 4270阅读
  • 5回复

[请教]如何封装DirectX [复制链接]

上一主题 下一主题
离线上帝之手
 
发帖
64
樱饼
0
博丽神社的喝茶券(威望)
0
春度
0
交易币
0
只看楼主 倒序阅读 楼主  发表于: 2010-03-25
最近看了下HGE,好像不配置DirectX路径也能运行,是不是把DirectX相关功能封装到HGE里了?现在自己写的引擎需要安装DirectX才能运行,我想问下,如果是那样的话,是如何把DirectX封装自己的引擎里的?在不装DirectX的电脑上也能运行自己的引擎?
挑选中……
离线貘良了
发帖
80
樱饼
0
博丽神社的喝茶券(威望)
0
春度
0
交易币
0
只看该作者 1楼 发表于: 2010-03-25
有个误区要解释下,HGE用到的是DirectX 的图形引擎。其他东西例如Directshow没有包含在内。

楼下的群众继续解释封装Directx的问题,我觉得太抽象,说不清楚。
离线ryuka
发帖
234
樱饼
0
博丽神社的喝茶券(威望)
0
春度
37
交易币
0
只看该作者 2楼 发表于: 2010-03-25
winxp 自己就装了dx在系统里面的。没directx 怎么可能运行你的引擎阿。你的问题是不是:你自己的引擎需要安装dxsdk才能运行?那估计是你用了D3DX而且链接到了d3dx的dll上面了,你只要随你的引擎带上D3DX的dll就可以了。
怎么找你的d3dx的dll呢。有2个办法。1.找到你的dxsdk里面的lib里面的d3dx9.lib,用ue之类的打开,看看link在哪个dll,然后你去下个。2.找到你dxsdk里面的redist目录。里面有一些cab包,找到和你dxsdk时间对应的d3dx的那个cab,dll就在里面了。
顺便说下HGE是用的DX8,1的。那时候的sdk的d3dx (包括2003年以前的dxsdk里面的d3dx9)是静态的lib,所以不用带什么dll。
。。。没啥签名。。。反正是一小号。。。
离线上帝之手
发帖
64
樱饼
0
博丽神社的喝茶券(威望)
0
春度
0
交易币
0
只看该作者 3楼 发表于: 2010-03-26
谢谢回复,我的意思是在vs里需要配置DirectX的include和lib目录才能用的。而HGE好像不用配置这个路径就能用了。因为我做的引擎里用到了#include <d3dx9.h>。所以如果不配置路径,就会找不到d3dx9.h的错误信息。这个该怎么做呢?
挑选中……
离线貘良了
发帖
80
樱饼
0
博丽神社的喝茶券(威望)
0
春度
0
交易币
0
只看该作者 4楼 发表于: 2010-03-26
从源头开始动手解决问题。

首先,hge是用DX8的,而你的是d3dx9,也就是用DX9的,所以要么彻底把HGE源码修改成DX9的,要么就不用HGE了。
下面是dx9版本的HGE引擎:http://www.pudn.com/downloads167/sourcecode/others/detail768616.html
就好比如说,DirectShow没有封装在HGE里,也是同理。

还有一个东西LZ可以去看看,就是使用HGE引擎的OGF框架的使用。

http://www.cppblog.com/lwq49/archive/2007/09/10/31976.aspx?opt=admin
OGF游戏框架是一个基本MPL开源协议的开源项目。它是针对2D游戏普遍的执行流程而提出的框架,而并非一个图形引擎(内核图形引擎是基于HGE)。除了为游戏提供整套的管理规范及流程外,同时提供经常用到的计时器、动作引擎等附助功能;并以组件的形式提供,有利于独立扩展,减少组件的重复开发,加快开发进度。
[ 此帖被貘良了在2010-03-26 18:09重新编辑 ]
离线上帝之手
发帖
64
樱饼
0
博丽神社的喝茶券(威望)
0
春度
0
交易币
0
只看该作者 5楼 发表于: 2010-03-29
谢谢指点,我去看看先。
挑选中……
快速回复
限100 字节
 
上一个 下一个