D3DUSAGE
标识资源的使用方式的用法选项。
下表总结了可用的使用选项。
返回的常量 | 说明 |
---|---|
|
资源将自动生成 mipmap。 请参阅 (Direct3D 9) 自动生成 Mipmap 。 体积纹理和深度模具表面/纹理不支持自动生成 mipmap。 此用法对系统内存中的资源无效, (D3DPOOL_SYSTEMMEM) 。 |
|
资源将是深度模具缓冲区。
D3DUSAGE_DEPTHSTENCIL 只能与 D3DPOOL_DEFAULT 一起使用。 |
|
资源将是位移映射。 |
|
设置为指示顶点缓冲区内容将永远不需要剪辑。 使用设置了此标志的缓冲区进行呈现时, D3DRS_CLIPPING 呈现状态必须设置为 false。 |
|
设置为指示顶点缓冲区需要使用动态内存。 这对于驱动程序很有用,因为它使他们能够决定放置缓冲区的位置。 通常,静态顶点缓冲区放置在视频内存中,动态顶点缓冲区放置在 AGP 内存中。 请注意,没有单独的静态用法。 如果未指定 D3DUSAGE_DYNAMIC,则顶点缓冲区将设置为静态。
D3DUSAGE_DYNAMIC 通过 D3DLOCK_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_VERTEXPROCESSINGD3DCREATE_SOFTWARE_VERTEXPROCESSING) 时,可以设置D3DUSAGE_SOFTWAREPROCESSING标志。 必须设置D3DUSAGE_SOFTWAREPROCESSING才能将缓冲区与混合模式下的软件顶点处理配合使用,但在混合模式下使用硬件索引处理 (D3DCREATE_HARDWARE_VERTEXPROCESSING) 时,不应设置该缓冲区以获得最佳性能。 但是,当将单个缓冲区用于硬件和软件顶点处理时,设置 D3DUSAGE_SOFTWAREPROCESSING 是唯一的选项。 混合 设备和软件设备允许D3DUSAGE_SOFTWAREPROCESSING。 D3DUSAGE_SOFTWAREPROCESSING 与 CheckDeviceFormat 一起使用,以确定在软件顶点处理期间,特定纹理格式是否可用作顶点纹理。 如果可以,则必须在 D3DPOOL_SCRATCH中创建纹理。 |
|
必须为调用 ComposeRects 时使用的顶点缓冲区和源图面指定此使用标志。 使用此用法标志创建的 T exture 不能用于纹理筛选。 使用此用法标志创建的顶点缓冲区不能用作输入流源。 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 指定以测试现有资源的功能。 下表标识了哪些用法可应用于哪些资源类型。
使用情况 | 创建顶点缓冲区 | 创建索引缓冲区 | 纹理创建 | 创建立方体纹理 | 体积纹理创建 | Surface 创建 | 检查设备格式 |
---|---|---|---|---|---|---|---|
D3DUSAGE_AUTOGENMIPMAP | x | x | x | ||||
D3DUSAGE_DEPTHSTENCIL | x | x | x | x | |||
D3DUSAGE_DMAP | x | x | |||||
D3DUSAGE_DONOTCLIP | x | x | |||||
D3DUSAGE_DYNAMIC | x | x | x | x | x | x | |
D3DUSAGE_NONSECURE | x | x | x | x | x | x | x |
D3DUSAGE_NPATCHES | x | x | |||||
D3DUSAGE_POINTS | x | x | |||||
D3DUSAGE_RTPATCHES | x | x | |||||
D3DUSAGE_RENDERTARGET | x | x | x | x | |||
D3DUSAGE_SOFTWAREPROCESSING | x | x | x | x | x | x | |
D3DUSAGE_TEXTAPI | x | x | |||||
D3DUSAGE_WRITEONLY | x | x |
使用 CheckDeviceFormat 检查这些用法的硬件支持。
此处列出了每个资源创建方法。
- CreateCubeTexture
- CreateDepthStencilSurface
- CreateIndexBuffer
- CreateOffscreenPlainSurface
- CreateRenderTarget
- CreateTexture
- CreateVertexBuffer
- CreateVolumeTexture
D3DXCreatexxx 文本化函数也使用这些常量值中的一些进行资源创建。
有关池类型及其特定用法的限制的详细信息,请参阅 D3DPOOL。
要求
要求 | 值 |
---|---|
标头 |
|
另请参阅