
D3D模块的易语言源代码。
5星
- 浏览量: 0
- 大小:None
- 文件类型:RAR
简介:
以下更新相对于 E_D3D9 1.0 正式版:1:[!]E_D3D9 已更名为“E_DirectX”,为其他 DirectX 组件的开发做准备。2:[!] 调用 d3dx9_42.dll 库更改为 d3dx9_39.dll 库,直接影响相关的 ID3DX... 类。3:[!] 优化各类(修改为继承),删除与基类重复的方法,从而相对减少源码体积(约 20KB)。3:[+] ID3DXPMesh 之前版本遗漏了(MSDN 内未提及,d3dx9mesh.h 中有)。4 [+] ID3DXSPMesh 之前版本遗漏了(MSDN 内未提及,d3dx9mesh.h 中有)。5:[+] IDirect3D9Ex6:[+] IDirect3DDevice9Ex7:[+] IDirect3DSwapChain9Ex8:[+] IDirect3D9ExOverlayExtension9:[+] IDirect3DDevice9Video10:[+] IDirect3DAuthenticatedChannel911:[+] IDirect3DCryptoSession912:[+] IDirectInput813:[+] IDirectInputDevice8 其中 DIDATAFORMAT 参考了 Delphi 的 JEDI 后处理的。若有更优方案,欢迎积极讨论。14:[+] IDirectInputEffect15:[*] 后续将陆续添加 DirectX 的其余组件,并修复现有问题。(以后版本将整合发布,改动都将记录在日志中,以公开免费的方式发布,旨在寻求易语言完美调用原生 DirectX 所有组件的方法。待组件全部完成后,我将定期逐个类/方法进行测试,并附上 Demo。)提示:有易友建议我使用 EATL,我大致了解其原理与此类似。但它对易语言的类进行了改写(这也是其亮点),从而使其可以直接调用。对于 E_DirectX 这个项目而言,我认为其意义可能并不显著(需要处理的类型仍然需要处理!)。这并非否定 EATL 的价值,本人经过多方考虑后认为它不适合本项目。许多类方法可能存在问题,务必注意以下特征/情况:方法中参数类型为文本型、字节集、所有类型的数组以及自定义类型成员中含有其他自定义类型的成员变量时,这些未经充分处理的大多存在问题。此外,小数型参数与返回值的问题(“Call” 问题)也存在于第一个版本 (E_D3D9 Beta1) 中,后续版本基本已修复。上述问题主要源于易语言独特的类型存储结构与 C++ 类型存储结构之间不匹配。(了解 C++ 类型存储结构的小伙伴可以快速想到解决方案。)模块还存在大量未处理的问题,本人没有充足的时间和精力去逐个测试。除了自己常用的方法以外,许多都是简单处理下(工作量异常巨大!无奈之举,以后会慢慢修复吧。也可以自行参照我处理过的代码进行研究和学习;开源也是出于此目的。)若发现任何问题可以发送相关的代码到我的邮箱 (请见模块中的作者信息一栏),以便我整合进下一版本中。承诺:以后所有版本都将以免费开源的形式发布,可自由使用,没有任何限制。(据我所知之前也有不少小伙伴因此受益,这让我更有信心继续下去)。声明:E_DirectX (E_D3D9) 从诞生以来一直是以无偿开源的形式存在,同时作者 (Roc/xc.roc) 也无法对产品和用户进行有效的约束或限制,也不承担因该产品所带来的任何后果; 若造成任何损失/后果由使用者自行承担.请大家谨慎考虑取舍!总而言之,一切如涛哥所言:“向正确的方向前进!”动态:本人最近根据某易友的建议正在开发 Essen GUI (游戏界面库),主要应用于游戏环境(Hook D3D - -!). 将以开源模块的形式小范围收费发布,并且提供相关技术支持. 有相关需求的用户也可以联系我的邮箱. 以后会建立相关 Q 群供用户交流. 大致特点: 简单、易用、可扩展性强(几乎你能想到的组件都能扩展出来;类似 Ex_DUI, 但两者之间存在显著区别)。
全部评论 (0)


