在SlimDX和DX9中,某些类末尾的后缀“Ex”是什么意思?

时间:2012-09-27 22:11:40

标签: graphics direct3d slimdx

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

例如:

SlimDX.Direct3D9.Device

SlimDX.Direct3D9.DeviceEx

SlimDX.Direct3D9.DisplayMode

SlimDX.Direct3D9.DisplayModeEx

2 个答案:

答案 0 :(得分:1)

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

每个之间存在一些不兼容性,例如在创建资源时,您必须小心选择哪个池(使用Device处理Pool.Managed但使用DeviceEx需要Pool.Default)

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

答案 1 :(得分:0)

Ex - 我一直都是在脑海里读它(虽然这可能是错的)。

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

当其他语言有重载时,包装器可以保持Ex约定以更好地镜像底层源API,包括在类型上使用“注释”。

此命名约定一直用于Win-C / Microsoft API的大部分内容,但可能Foo2,这是惯例。