【问题标题】:In SlimDX and DX9 what is the suffix "Ex" that is on the end of some classes mean?在 SlimDX 和 DX9 中,某些类末尾的后缀“Ex”是什么意思?
【发布时间】:2012-09-27 22:11:39
【问题描述】:

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

例如:

SlimDX.Direct3D9.Device

SlimDX.Direct3D9.DeviceEx

SlimDX.Direct3D9.DisplayMode

SlimDX.Direct3D9.DisplayModeEx

【问题讨论】:

  • 那么我应该使用 Ex 版本吗?
  • 你需要吗?非 Ex 版本是否标记为过时?
  • 哎呀,我误删了他的评论,有人可以扭转吗?
  • 我删除了 :) 你不能编辑其他人的 cmets。

标签: graphics direct3d slimdx


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2012-05-07
      • 1970-01-01
      • 2014-04-04
      • 1970-01-01
      • 2012-10-31
      • 1970-01-01
      • 1970-01-01
      • 2021-05-16
      • 1970-01-01
      相关资源
      最近更新 更多