用于标识资源使用方式的使用选项。
下表汇总了可用的使用选项。
| 恒定 | DESCRIPTION |
|---|---|
|
资源将自动生成 mipmap。 请参阅 自动生成 Mipmaps (Direct3D 9)。 卷纹理和深度模具图面/纹理不支持自动生成 mipmap。 此用法对系统内存中的资源无效(D3DPOOL_SYSTEMMEM)。 |
|
资源将是深度模具缓冲区。
D3DUSAGE_DEPTHSTENCIL 只能与 D3DPOOL_DEFAULT一起使用。 |
|
资源将是位移图。 |
|
设置为指示顶点缓冲区内容永远不会需要剪辑。 使用设置了此标志的缓冲区进行呈现时, D3DRS_CLIPPING 呈现状态必须设置为 false。 |
|
设置为指示顶点缓冲区需要动态内存使用。 这对于驱动程序很有用,因为它使驱动程序能够决定缓冲区的放置位置。 一般情况下,静态顶点缓冲区放置在视频内存中,动态顶点缓冲区放置在 AGP 内存中。 请注意,没有单独的静态用途。 如果未指定 D3DUSAGE_DYNAMIC,则顶点缓冲区是静态的。
严格执行D3DUSAGE_DYNAMICD3DLOCK_DISCARD和D3DLOCK_NOOVERWRITE锁定标志。 因此, D3DLOCK_DISCARD 和 D3DLOCK_NOOVERWRITE 仅在使用 D3DUSAGE_DYNAMIC创建的顶点缓冲区上有效。 它们不是静态顶点缓冲区上的有效标志。 有关详细信息,请参阅“管理资源”(Direct3D 9)。 有关使用动态顶点缓冲区的详细信息,请参阅性能优化(Direct3D 9)。 D3DUSAGE_DYNAMIC 和 D3DPOOL_MANAGED 不兼容,不应一起使用。 请参阅 D3DPOOL。 纹理可以指定 D3DUSAGE_DYNAMIC。 但是,托管纹理无法使用 D3DUSAGE_DYNAMIC。 有关动态纹理的详细信息,请参阅 “使用动态纹理”。 |
|
允许由安全应用程序创建的共享图面由具有共享句柄的非安全应用程序打开。 Direct3D 9 和 Direct3D 9Ex 之间的差异: 此标志仅在 Direct3D 9Ex 中可用。 |
|
设置为指示顶点缓冲区用于绘制 N 修补程序。 |
|
设置为指示顶点或索引缓冲区将用于绘制点子画面。 如果需要软件顶点处理来模拟点子画面,则缓冲区将加载到系统内存中。 |
|
资源将是呈现目标。
D3DUSAGE_RENDERTARGET 只能与 D3DPOOL_DEFAULT一起使用。 |
|
设置为指示顶点缓冲区用于绘制高阶基元。 |
|
如果使用此标志,则顶点处理在软件中完成。 如果未使用此标志,则顶点处理在硬件中完成。 当为该设备启用混合模式或软件顶点处理(D3DCREATE_MIXED_VERTEXPROCESSING / D3DCREATE_SOFTWARE_VERTEXPROCESSING)时,可以设置D3DUSAGE_SOFTWAREPROCESSING标志。 必须为在混合模式下使用软件顶点处理设置D3DUSAGE_SOFTWAREPROCESSING,但在混合模式下使用硬件索引处理时,不应为最佳性能设置缓冲区(D3DCREATE_HARDWARE_VERTEXPROCESSING)。 但是,当单个缓冲区用于硬件和软件顶点处理时,设置 D3DUSAGE_SOFTWAREPROCESSING 是唯一的选项。 混合和软件设备允许D3DUSAGE_SOFTWAREPROCESSING。 D3DUSAGE_SOFTWAREPROCESSING 与 CheckDeviceFormat 一起使用,以确定特定纹理格式是否可以在软件顶点处理期间用作顶点纹理。 如果可以,则必须在 D3DPOOL_SCRATCH中创建纹理。 |
|
必须为顶点缓冲区和源图面指定此使用标志,用于对 ComposeRects 的调用。 使用此使用标志创建的纹理不能用于纹理筛选。 使用此使用标志创建的顶点缓冲区不能用作输入流源。 Direct3D 9 和 Direct3D 9Ex 之间的差异: 此标志仅在 Direct3D 9Ex 中可用。 |
|
通知系统应用程序仅写入顶点缓冲区。 使用此标志,驱动程序可以选择最佳内存位置,以便高效写入作和呈现。 尝试从使用此功能创建的顶点缓冲区进行读取将失败。 使用未指定D3DUSAGE_WRITEONLY的D3DPOOL_DEFAULT创建的缓冲区可能会受到严重的性能损失。
D3DUSAGE_WRITEONLY 仅影响 D3DPOOL_DEFAULT 缓冲区的性能。 |
|
设置此标志表示资源可能包含受保护的内容。 Direct3D 9 和 Direct3D 9Ex 之间的差异: 此标志仅在 Direct3D 9Ex 中可用。 |
|
设置此标志表示应限制对共享资源的访问。 Direct3D 9 和 Direct3D 9Ex 之间的差异: 此标志仅在 Direct3D 9Ex 中可用。 |
|
设置此标志表示驱动程序应限制对共享资源的访问。 调用方必须使用驱动程序创建经过身份验证的通道。 然后,驱动程序应允许访问尝试打开该共享资源的进程。 Direct3D 9 和 Direct3D 9Ex 之间的差异: 此标志仅在 Direct3D 9Ex 中可用。 |
注解
使用情况和资源组合
使用 CheckDeviceType 创建资源或使用 CheckDeviceType 指定,以测试现有资源的功能时指定使用情况。 下表标识了哪些用法可以应用于哪些资源类型。
| 用法 | 顶点缓冲区创建 | 创建索引缓冲区 | 纹理创建 | 多维数据集纹理创建 | 卷纹理创建 | Surface create | 检查设备格式 |
|---|---|---|---|---|---|---|---|
| D3DUSAGE_AUTOGENMIPMAP | 是的 | 是的 | |||||
| D3DUSAGE_DEPTHSTENCIL | 是的 | 是的 | |||||
| D3DUSAGE_DMAP | 是的 | 是的 | |||||
| D3DUSAGE_DONOTCLIP 是 | |||||||
| D3DUSAGE_DYNAMIC 是,是的,是的 | 是的 | ||||||
| D3DUSAGE_NONSECURE 是的,是的 | |||||||
| D3DUSAGE_NPATCHES 是的 | |||||||
| D3DUSAGE_POINTS 是的 | |||||||
| D3DUSAGE_RTPATCHES 是的 | |||||||
| D3DUSAGE_RENDERTARGET | 是的 | 是的 | |||||
| D3DUSAGE_SOFTWAREPROCESSING 是的,是的是的 | 是的 | ||||||
| D3DUSAGE_TEXTAPI 是 | 是的 | ||||||
| D3DUSAGE_WRITEONLY 是 |
使用 CheckDeviceFormat 检查硬件对这些使用情况的支持。
此处列出了每个资源创建方法。
- CreateCubeTexture
- CreateDepthStencilSurface
- CreateIndexBuffer
- CreateOffscreenPlainSurface
- CreateRenderTarget
- CreateTexture
- CreateVertexBuffer
- CreateVolumeTexture
D3DXCreatexxx 文本转换函数还使用这些常量值中的一些值创建资源。
有关池类型及其特定用法的限制的详细信息,请参阅 D3DPOOL。
要求
| 要求 | 价值 |
|---|---|
| 标题 |
|
另请参阅