我注意到在SlimDX.Direct3D9命名空间中有很多具有两个不同版本的类和方法。一个版本有一个Ex后缀。我认为DX9 API也是如此。
例如:
SlimDX.Direct3D9.Device
SlimDX.Direct3D9.DeviceEx
SlimDX.Direct3D9.DisplayMode
SlimDX.Direct3D9.DisplayModeEx
答案 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
,这是惯例。