(Direct3D 9) 的资源属性

所有资源共享以下属性。

  • 使用情况。 资源使用方式,例如,作为纹理或呈现器目标。
  • 格式。 数据的格式,例如 2D 图面的像素格式。
  • 池。 分配资源的内存类型。
  • 键入 。 资源类型,例如顶点缓冲区或呈现目标。

强制执行资源使用。 将在某个操作中使用资源的应用程序必须在创建资源时指定该操作。 有关为资源定义的使用常量的列表,请参阅 D3DUSAGE

D3DUSAGE_RTPATCHES、D3DUSAGE_NPATCHES和D3DUSAGE_POINTS常量向驱动程序指示,这些缓冲区中的数据可能分别用于三角或网格补丁、N 补丁或点子画面。 如果硬件在没有主机处理的情况下无法执行这些操作,则提供这些标志。 因此,驱动程序希望在系统内存中分配这些图面,以便 CPU 可以访问它们。 如果驱动程序可以在硬件中完全执行这些操作,则可以在视频或 AGP 内存中分配这些图面,以避免主机复制并将性能提高至少两倍。 请注意,这些标志提供的信息并非绝对必需。 驱动程序可以检测到正在对数据执行此类操作,并将缓冲区移回系统内存以供后续帧使用。

有关使用情况标志及其与特定资源的关系的详细信息,请参阅各个资源创建方法上的参考页。

有关资源表面格式的信息,请参阅 D3DFORMAT 枚举类型。

保存资源缓冲区的内存类称为池。 池值由 D3DPOOL 枚举类型定义。 对于单个资源中包含的不同对象(即 mipmap 中的 mip 级别),池不能混合,并且当为资源选择池时,无法更改该池。

当应用程序调用资源创建方法(如 IDirect3DDevice9::CreateCubeTexture)时,将在运行时隐式设置资源类型。 资源类型由 D3DRESOURCETYPE 枚举类型定义。 应用程序可以在运行时查询这些类型;但是,预计大多数方案不需要运行时类型检查。

Direct3D 资源