1

我注意到在 SlimDX.Direct3D9 命名空间中有很多具有两个不同版本的类和方法。一个版本有一个 Ex 后缀。我认为 DX9 API 也是如此。

例如:

SlimDX.Direct3D9.Device

SlimDX.Direct3D9.DeviceEx

SlimDX.Direct3D9.DisplayMode

SlimDX.Direct3D9.DisplayModeEx

4

2 回答 2

1

DirectX9Ex 主要是对 DirectX9 的改进,只为 Windows Vista 和更高版本添加了新功能(最值得注意的是共享资源的能力)。

每个之间有一些不兼容,例如在创建资源时,您必须小心选择哪个池(Pool.Managed 与 Device 一起工作,但您需要 Pool.Default 与 DeviceEx )

如果您需要跨进程共享纹理,DeviceEx 是您唯一的选择,否则标准 Device 就可以了。

于 2012-09-28T00:23:39.923 回答
0

Ex -tended 是我一直在脑海中阅读它的方式(尽管它可能是错误的)。

C 没有重载,因此如果更新 API 以考虑最初未考虑的额外内容,例如新的选项字段,请输入FooEx. (同样的推理也适用于新类型,即使重载不适用。)

虽然其他语言确实有重载,但包装器可能会保留Ex约定以更好地反映底层源 API,包括对类型使用“注释”。

此命名约定在大部分 Win-C/Microsoft API中一直使用,但如果Foo2是约定,则可能是。

于 2012-09-27T22:13:56.947 回答