D3DCAPS9 结构 (d3d9caps.h)
表示通过 Direct3D 对象公开的硬件的功能。
语法
typedef struct _D3DCAPS9 {
D3DDEVTYPE DeviceType;
UINT AdapterOrdinal;
DWORD Caps;
DWORD Caps2;
DWORD Caps3;
DWORD PresentationIntervals;
DWORD CursorCaps;
DWORD DevCaps;
DWORD PrimitiveMiscCaps;
DWORD RasterCaps;
DWORD ZCmpCaps;
DWORD SrcBlendCaps;
DWORD DestBlendCaps;
DWORD AlphaCmpCaps;
DWORD ShadeCaps;
DWORD TextureCaps;
DWORD TextureFilterCaps;
DWORD CubeTextureFilterCaps;
DWORD VolumeTextureFilterCaps;
DWORD TextureAddressCaps;
DWORD VolumeTextureAddressCaps;
DWORD LineCaps;
DWORD MaxTextureWidth;
DWORD MaxTextureHeight;
DWORD MaxVolumeExtent;
DWORD MaxTextureRepeat;
DWORD MaxTextureAspectRatio;
DWORD MaxAnisotropy;
float MaxVertexW;
float GuardBandLeft;
float GuardBandTop;
float GuardBandRight;
float GuardBandBottom;
float ExtentsAdjust;
DWORD StencilCaps;
DWORD FVFCaps;
DWORD TextureOpCaps;
DWORD MaxTextureBlendStages;
DWORD MaxSimultaneousTextures;
DWORD VertexProcessingCaps;
DWORD MaxActiveLights;
DWORD MaxUserClipPlanes;
DWORD MaxVertexBlendMatrices;
DWORD MaxVertexBlendMatrixIndex;
float MaxPointSize;
DWORD MaxPrimitiveCount;
DWORD MaxVertexIndex;
DWORD MaxStreams;
DWORD MaxStreamStride;
DWORD VertexShaderVersion;
DWORD MaxVertexShaderConst;
DWORD PixelShaderVersion;
float PixelShader1xMaxValue;
DWORD DevCaps2;
float MaxNpatchTessellationLevel;
DWORD Reserved5;
UINT MasterAdapterOrdinal;
UINT AdapterOrdinalInGroup;
UINT NumberOfAdaptersInGroup;
DWORD DeclTypes;
DWORD NumSimultaneousRTs;
DWORD StretchRectFilterCaps;
D3DVSHADERCAPS2_0 VS20Caps;
D3DPSHADERCAPS2_0 PS20Caps;
DWORD VertexTextureFilterCaps;
DWORD MaxVShaderInstructionsExecuted;
DWORD MaxPShaderInstructionsExecuted;
DWORD MaxVertexShader30InstructionSlots;
DWORD MaxPixelShader30InstructionSlots;
} D3DCAPS9;
成员
DeviceType
类型: D3DDEVTYPE
D3DDEVTYPE 枚举类型的成员,该类型标识用于处理顶点的资源类型。
AdapterOrdinal
类型: UINT
创建此 Direct3D 设备的适配器。 此序号仅对传递给创建此 Direct3D 设备的 IDirect3D9 接口的方法有效。 始终可以通过调用 GetDirect3D 来检索 IDirect3D9 接口。
Caps
类型: DWORD
以下特定于驱动程序的功能。
值 | 含义 | |
---|---|---|
|
显示硬件能够返回当前扫描行。 | |
|
显示驱动程序支持覆盖 DDI,该 DDI 允许验证覆盖功能。 有关覆盖 DDI 的详细信息,请参阅 覆盖 DDI。
|
Caps2
类型: DWORD
D3DCAPS2 中标识的特定于驱动程序的功能。
Caps3
类型: DWORD
D3DCAPS3 中标识的特定于驱动程序的功能。
PresentationIntervals
类型: DWORD
表示可用的演示交换间隔的值的位掩码。
CursorCaps
类型: DWORD
指示可用于游标的硬件支持的位掩码。 Direct3D 9 不定义 alpha 混合游标功能。
“值” | 含义 |
---|---|
|
硬件支持全色光标。 具体而言,此标志指示驱动程序在扫描行大于或等于 400) 的高分辨率模式下至少支持硬件颜色光标 (。 |
|
硬件支持全色光标。 具体而言,此标志指示驱动程序在扫描行小于 400) 的高分辨率和低分辨率模式下都支持硬件颜色光标 (。 |
DevCaps
类型: DWORD
标识设备功能的标志。
“值” | 含义 |
---|---|
|
设备支持从系统内存纹理到非局部视频内存纹理的 blit。 |
|
设备可以在翻页后将呈现命令排队。 如果设置了此标志,则应用程序不会更改其行为;此功能意味着设备速度相对较快。 |
|
设备至少可以支持符合 DirectX 5 的驱动程序。 |
|
设备至少可以支持符合 DirectX 7 的驱动程序。 |
|
设备导出 IDirect3DDevice9::D rawPrimitive 感知 hal。 |
|
设备可以使用系统内存中的执行缓冲区。 |
|
设备可以使用视频内存中的执行缓冲区。 |
|
设备具有用于场景光栅化的硬件加速。 |
|
设备可以支持硬件中的转换和照明。 |
|
设备支持 N 个修补程序。 |
|
设备可以在硬件中支持光栅化、转换、照明和着色。 |
|
设备支持昆特贝塞尔曲线和 B 样条曲线。 |
|
设备支持矩形和三角补丁。 |
|
设置此设备功能后,硬件体系结构不需要缓存任何信息,并且未缓存的修补程序 (处理零) 将像绘制缓存的修补程序一样高效。 请注意,设置D3DDEVCAPS_RTPATCHHANDLEZERO并不意味着可以绘制句柄为零的修补程序。 无论是否设置了此上限,始终都可以绘制句柄零补丁。 |
|
设备正在从单独的内存池进行纹理处理。 |
|
设备可以从非本地视频内存中检索纹理。 |
|
设备可以从系统内存中检索纹理。 |
|
设备可以从设备内存中检索纹理。 |
|
设备可以将系统内存中的缓冲区用于转换的顶点和点亮顶点。 |
|
设备可以将视频内存中的缓冲区用于转换和点亮顶点。 |
PrimitiveMiscCaps
类型: DWORD
其他驱动程序基元功能。 请参阅 D3DPMISCCAPS。
RasterCaps
类型: DWORD
有关光栅绘制功能的信息。 此成员可以是以下一个或多个标志。
值 | 含义 |
---|---|
|
设备支持各向异性筛选。 |
|
设备正确迭代颜色透视。 |
|
设备可以抖改以提高颜色分辨率。 |
|
设备支持旧式深度偏差。 有关真正的深度偏差,请参阅D3DPRASTERCAPS_SLOPESCALEDEPTHBIAS。 |
|
设备支持基于范围的雾。 在基于范围的雾中,对象与查看器的距离用于计算雾效果,而不是对象 (的深度,即场景中的 z 坐标) 。 |
|
设备通过引用查找表来计算雾值,该表包含已根据给定像素深度编制索引的迷雾值。 |
|
设备在照明操作期间计算雾值,并在光栅化期间内插雾值。 |
|
设备支持详细程度偏差调整。 这些偏差调整使应用程序能够使 mipmap 看起来比平常更清晰或更清晰。 有关 mipmap 中的详细信息,请参阅D3DSAMP_MIPMAPLODBIAS。 |
|
设备支持使用 D3DRS_MULTISAMPLEANTIALIAS) 在 IDirect3DDevice9::BeginScene 和 IDirect3DDevice9::EndScene (之间切换打开和关闭多重采样。 |
|
设备支持剪刀测试。 请参阅 剪刀测试 (Direct3D 9) 。 |
|
设备执行基于真正斜率缩放的深度偏差。 这与旧式样式深度偏差形成鲜明对比。 |
|
设备支持使用 w 进行深度缓冲。 |
|
设备支持基于 w 的雾。 指定透视投影矩阵时,使用基于 W 的雾,但仿射投影仍使用基于 z 的雾。 系统会将 [3][4] 元素中包含非零值的投影矩阵视为透视投影矩阵。 |
|
设备可以执行隐藏表面删除 (HSR) ,而无需应用程序对多边形进行排序,也不需要分配深度缓冲区。 这会为纹理留下更多的视频内存。 用于执行 HSR 的方法依赖于硬件,并且对应用程序是透明的。
如果没有深度缓冲区表面与呈现目标图面关联,并且启用深度缓冲区比较测试 ((即与 D3DRS_ZENABLE 枚举常量关联的状态值设置为 TRUE) ),则执行 Z 无缓冲区 HSR。 |
|
设备支持基于 z 的雾。 |
|
设备可以执行 z 测试操作。 这会有效地呈现基元,并指示是否已呈现任何 z 像素。 |
ZCmpCaps
类型: DWORD
Z 缓冲区比较功能。 此成员可以是以下一个或多个标志。
SrcBlendCaps
类型: DWORD
源混合功能。 此成员可以是以下一个或多个标志。 (源和目标的 RGBA 值由下标 s 和 d.)
值 | 含义 | |
---|---|---|
|
驱动程序同时支持D3DBLEND_BLENDFACTOR和D3DBLEND_INVBLENDFACTOR。 请参阅 D3DBLEND。 | |
|
源混合因子为 (1 - As、1 - As、1 - As、1 - As) 和目标混合因子 (As、As、As) ;将重写目标混合选择。 | |
|
驱动程序支持D3DBLEND_BOTHSRCALPHA混合模式。 (此混合模式已过时。有关详细信息,请参阅 D3DBLEND.) | |
|
混合因子为 (Ad、Ad、Ad、Ad) 。 | |
|
混合因子 (Rd、Gd、Bd、Ad) 。 | |
|
混合因子为 (1 - Ad、1 - Ad、1 - Ad、1 - Ad) 。 | |
|
混合因子 (1 - Rd、1 - Gd、1 - Bd、1 - Ad) 。 | |
|
混合因子 (1 - As、1 - As、1 - As、1 - As、1 - As) 。 | |
|
混合因子 (为 1 - Rs、1 - Gs、1 - Bs、1 - as) 。 | |
|
混合因子 (1 - PSOutColor[1]r,1 - PSOutColor[1]g,1 - PSOutColor[1]b,not used) ) 。 请参阅 呈现目标混合。
|
|
|
混合因子 (为 1、1、1、1) 。 | |
|
混合因子 (As、As、As、As) 。 | |
|
混合因子为 (f、f、f、1) ;f = min (As,1 - Ad) 。 | |
|
混合因子为 (Rs、Gs、Bs、As) 。 | |
|
混合因子 (PSOutColor[1]r、PSOutColor[1]g、PSOutColor[1]b,未) 使用。 请参阅 呈现目标混合。
|
|
|
混合因子 (0、0、0、0) 。 |
DestBlendCaps
类型: DWORD
目标混合功能。 此成员可以是为 SrcBlendCaps 成员定义的相同功能。
AlphaCmpCaps
类型: DWORD
Alpha 测试比较功能。 此成员可以包含为 ZCmpCaps 成员定义的相同功能标志。 如果此成员仅包含D3DPCMPCAPS_ALWAYS功能或仅包含D3DPCMPCAPS_NEVER功能,则驱动程序不支持 alpha 测试。 否则,标志将标识 alpha 测试支持的单个比较。
ShadeCaps
类型: DWORD
着色操作功能。 通常,假设设备完全支持给定命令,则它支持 D3DSHADEMODE 枚举类型) 中指定的D3DSHADE_FLAT模式 (。 此标志指定驱动程序是否还可以支持 Gouraud 着色以及是否支持 alpha 颜色组件。 如果不支持 alpha 分量,则生成的颜色的 alpha 值为隐式 255。 这是最大可能的 alpha (即 alpha 分量处于全强度) 。
三角形的颜色、高光、雾和 alpha 内插都有功能标志,应用程序可以使用这些功能标志来了解设备驱动程序如何实现它们。
此成员可以是以下一个或多个标志。
TextureCaps
类型: DWORD
其他纹理映射功能。 此成员可以是以下一个或多个标志。
值 | 含义 |
---|---|
|
支持以纹理像素表示的 Alpha。 |
|
设备可以从纹理调色板绘制 alpha。 |
|
支持立方体纹理。 |
|
设备要求多维数据集纹理贴图的维度指定为 2 的幂。 |
|
设备支持误贴立方体纹理。 |
|
设备支持错误覆盖的纹理。 |
|
设备支持未覆盖的卷纹理。 |
|
还设置了D3DPTEXTURECAPS_POW2,有条件地支持使用维度不是 2 的 2D 纹理。 如果满足以下所有要求,公开此功能的设备可以使用此类纹理。
如果未设置此标志,并且D3DPTEXTURECAPS_POW2也未设置,则为维度不是 2 的 2D 纹理提供无条件支持。 不能在基于着色器计算 ((如像素着色器版本 1_0 到 1_3) 中的 bem - ps 和 texm3x3 - ps 指令)读取的阶段设置不是 2 次幂的纹理。 例如,这些纹理可用于存储将馈送到纹理读取中的凹凸,但不能存储 texbem - ps、 texbeml - ps 和 texm3x3spec - ps 中使用的环境映射。 这意味着,无法使用着色器中计算的纹理坐标来寻址或采样维度不是 2 的纹理。 这种类型的操作称为依赖读取,不能对这些类型的纹理执行。 |
|
设备不支持可编程和固定函数着色器中的投影凹凸环境查找操作。 |
|
支持透视更正纹理。 |
|
如果未设置D3DPTEXTURECAPS_NONPOW2CONDITIONAL,则所有纹理的宽度和高度都必须指定为 2 的幂。 此要求不适用于立方体纹理或体积纹理。
如果还设置了D3DPTEXTURECAPS_NONPOW2CONDITIONAL,则有条件地支持使用维度不是 2 的 2D 纹理。 请参阅D3DPTEXTURECAPS_NONPOW2CONDITIONAL说明。 如果未设置此标志,并且D3DPTEXTURECAPS_NONPOW2CONDITIONAL也未设置,则为维度不是 2 的 2D 纹理提供无条件支持。 |
|
支持D3DTTFF_PROJECTED纹理转换标志。 应用后,设备会将转换后的纹理坐标除以最后一个纹理坐标。 如果存在此功能,则按像素进行投影除法。 如果此功能不存在,但投影除法仍然需要发生,则 Direct3D 运行时会按顶点执行。 |
|
所有纹理都必须是正方形的。 |
|
纹理索引在内插之前不会按纹理大小进行缩放。 |
|
设备支持卷纹理。 |
|
设备要求体积纹理贴图的维度指定为 2 的幂。 |
TextureFilterCaps
类型: DWORD
纹理的纹理筛选功能。 按阶段筛选功能反映了执行多纹理混合时纹理阶段支持的筛选模式。 此成员可以是 D3DPTFILTERCAPS 中定义的每阶段纹理筛选标志的任意组合。
CubeTextureFilterCaps
类型: DWORD
多维数据集纹理的纹理筛选功能。 按阶段筛选功能反映了执行多纹理混合时纹理阶段支持的筛选模式。 此成员可以是 D3DPTFILTERCAPS 中定义的每阶段纹理筛选标志的任意组合。
VolumeTextureFilterCaps
类型: DWORD
体积纹理的纹理筛选功能。 按阶段筛选功能反映了执行多纹理混合时纹理阶段支持的筛选模式。 此成员可以是 D3DPTFILTERCAPS 中定义的每阶段纹理筛选标志的任意组合。
TextureAddressCaps
类型: DWORD
纹理对象的纹理寻址功能。 此成员可以是以下一个或多个标志。
VolumeTextureAddressCaps
类型: DWORD
卷纹理的纹理寻址功能。 此成员可以是为 TextureAddressCaps 成员定义的一个或多个标志。
LineCaps
类型: DWORD
定义线条绘制基元的功能。
值 | 含义 |
---|---|
|
支持 alpha 测试比较。 |
|
支持抗锯齿线。 |
|
支持源混合。 |
|
支持迷雾。 |
|
支持纹理映射。 |
|
支持 z 缓冲区比较。 |
MaxTextureWidth
类型: DWORD
此设备的最大纹理宽度。
MaxTextureHeight
类型: DWORD
此设备的最大纹理高度。
MaxVolumeExtent
类型: DWORD
三个维度中的任何一个的最大值 (体积纹理的宽度、高度和深度) 。
MaxTextureRepeat
类型: DWORD
此数字表示规范化纹理坐标后整数位的最大范围。 纹理坐标存储为 32 位有符号整数,使用 27 位存储整数部分和 5 位的浮点分数。 最大整数索引 2²⁷ 用于确定最大纹理坐标,具体取决于硬件如何进行纹理坐标缩放。
某些硬件报告上限D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE。 对于这种情况,设备会按纹理大小延迟缩放纹理坐标,直到内插并应用纹理地址模式,因此纹理可以包装的次数由 MaxTextureRepeat 中的整数值给出。
不太可取的是,在某些硬件D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE未设置,并且设备会根据纹理大小缩放纹理坐标, (使用内插之前的最高细节级别) 。 这限制了纹理可包装为 MaxTextureRepeat/纹理大小的次数。
例如,假设 MaxTextureRepeat 等于 32k,纹理大小为 4k。 如果硬件设置D3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE,则纹理可包装的次数等于 MaxTextureRepeat,在本示例中为 32k。 否则,纹理可包装的次数等于 MaxTextureRepeat 除以纹理大小,在此示例中为 32k/4k。
MaxTextureAspectRatio
类型: DWORD
硬件支持的最大纹理纵横比,通常为 2 次幂。
MaxAnisotropy
类型: DWORD
D3DSAMP_MAXANISOTROPY纹理阶段状态的最大有效值。
MaxVertexW
类型: float
设备支持的基于 W 的最大深度值。
GuardBandLeft
类型: float
防护带剪辑区域的屏幕空间坐标。 此矩形内、视区矩形外部的坐标会自动剪切。
GuardBandTop
类型: float
防护带剪辑区域的屏幕空间坐标。 此矩形内、视区矩形外部的坐标会自动剪切。
GuardBandRight
类型: float
防护带剪辑区域的屏幕空间坐标。 此矩形内、视区矩形外部的坐标会自动剪切。
GuardBandBottom
类型: float
防护带剪辑区域的屏幕空间坐标。 此矩形内、视区矩形外部的坐标会自动剪切。
ExtentsAdjust
类型: float
将盘区矩形向外调整以适应抗锯齿内核的像素数。
StencilCaps
类型: DWORD
指定支持的模具缓冲区操作的标志。 假定模具操作对所有三种模具缓冲区操作呈现状态都有效, (D3DRS_STENCILFAIL、D3DRS_STENCILPASS和D3DRS_STENCILZFAIL) 。
有关详细信息,请参阅 D3DSTENCILCAPS。
FVFCaps
类型: DWORD
灵活的顶点格式功能。
TextureOpCaps
类型: DWORD
描述此设备支持的纹理操作的标志的组合。 定义了以下标志。
MaxTextureBlendStages
类型: DWORD
固定函数管道中支持的最大纹理混合阶段数。 此值是可用的混合器数。 在可编程像素管道中,这对应于像素着色器指令使用的唯一纹理寄存器数。
MaxSimultaneousTextures
类型: DWORD
可同时绑定到固定函数管道采样器阶段的最大纹理数。 如果同一纹理绑定到两个采样器阶段,则它计为两个纹理。
此值在可编程管道中没有意义,在该管道中采样器阶段数由每个像素着色器版本决定。 每个像素着色器版本还确定纹理声明指令的数量。 请参阅 像素着色器。
VertexProcessingCaps
类型: DWORD
顶点处理功能。 对于给定的物理设备,此功能可能因 Direct3D 设备而异,具体取决于提供给 CreateDevice 的参数。 请参阅 D3DVTXPCAPS。
MaxActiveLights
类型: DWORD
可以同时处于活动状态的最大光数。 对于给定的物理设备,此功能可能因 Direct3D 设备而异,具体取决于提供给 CreateDevice 的参数。
MaxUserClipPlanes
类型: DWORD
支持的最大用户定义剪裁平面数。 此成员可以为 0。 对于给定的物理设备,此功能可能因 Direct3D 设备而异,具体取决于提供给 CreateDevice 的参数。
MaxVertexBlendMatrices
类型: DWORD
此设备在执行多矩阵顶点混合时可以应用的最大矩阵数。 对于给定的物理设备,此功能可能因 Direct3D 设备而异,具体取决于提供给 CreateDevice 的参数。
MaxVertexBlendMatrixIndex
类型: DWORD
DWORD 值,该值指定可以使用每个顶点索引编制索引到的最大矩阵索引。 矩阵的数目是 MaxVertexBlendMatrixIndex + 1,这是矩阵调色板的大小。 如果需要混合进行照明的顶点数据中存在法线,则矩阵数是此功能标志指定的数的一半。 如果 MaxVertexBlendMatrixIndex 设置为零,则驱动程序不支持索引顶点混合。 如果此值不为零,则通过 MaxVertexBlendMatrixIndex,索引的有效范围为零。
MaxVertexBlendMatrixIndex 的零值表示驱动程序不支持索引矩阵。
使用软件顶点处理时,可以使用 256 个矩阵进行索引顶点混合,无论是否使用正常混合。
对于给定的物理设备,此功能可能因 Direct3D 设备而异,具体取决于提供给 CreateDevice 的参数。
MaxPointSize
类型: float
点基元的最大大小。 如果设置为 1.0f,则设备不支持点大小控制。 范围大于或等于 1.0f。
MaxPrimitiveCount
类型: DWORD
每个 DrawPrimitive 调用的最大基元数。 存在两种情况:
- 如果 MaxPrimitiveCount 不等于 0xffff,则每次绘制调用最多可以绘制 MaxPrimitiveCount 基元。
- 但是,如果 MaxPrimitiveCount 等于 0xffff,则最多仍可以在 MaxPrimitiveCount 基元处绘制,但也可以使用不超过 MaxPrimitiveCount 唯一顶点 (因为每个基元可能使用三个不同的顶点) 。
MaxVertexIndex
类型: DWORD
硬件顶点处理支持的索引的最大大小。 可以创建 32 位索引缓冲区;但是,除非此值大于 0x0000FFFF,否则将无法使用索引缓冲区呈现。
MaxStreams
类型: DWORD
SetStreamSource 的最大并发数据流数。 有效范围是 1 到 16。 请注意,如果此值为 0,则驱动程序不是 Direct3D 9 驱动程序。
MaxStreamStride
类型: DWORD
SetStreamSource 的最大步长。
VertexShaderVersion
类型: DWORD
表示顶点着色器main和子版本的两个数字。 有关每个顶点着色器版本支持的说明的详细信息,请参阅 版本1_x、 版本 2_0、 版本 2_0 扩展或 版本 3_0。
MaxVertexShaderConst
类型: DWORD
为常量保留的 顶点着色器顶点着色器寄存器 的数目。
PixelShaderVersion
类型: DWORD
表示像素着色器main和子版本的两个数字。 有关每个像素着色器版本支持的说明的详细信息,请参阅 版本1_x、 版本 2_0、 版本 2_0 扩展或 版本 3_0。
PixelShader1xMaxValue
类型: float
像素着色器算术分量最大值。 此值指示像素颜色混合操作支持的内部值范围。 在报告范围内,实现必须允许数据通过未经修改的像素处理 (非限制) 传递。 通常,此成员的值是绝对值。 例如,1.0 表示范围是 -1.0 到 1,8.0 表示范围是 -8.0 到 8.0。 对于支持像素着色器的任何硬件,该值必须为 >= 1.0。
DevCaps2
类型: DWORD
自适应分割的设备驱动程序功能。 有关详细信息,请参阅 D3DDEVCAPS2
MaxNpatchTessellationLevel
TBD
Reserved5
TBD
MasterAdapterOrdinal
类型: UINT
此数字指示哪个设备是此从属设备的主机。 此数字取自与适配器值相同的空间。
对于多头支持,一个头将表示主头,同一个卡上的所有其他头将表示从属头。 如果系统中存在多个多头适配器,则来自一个多头适配器的主节点及其从属节点称为组。
AdapterOrdinalInGroup
类型: UINT
此数字指示 API 引用头的顺序。 主适配器的值始终为 0。 这些值不对应于适配器序号。 它们仅适用于组中的头部。
NumberOfAdaptersInGroup
类型: UINT
仅当主) 时才 (此适配器组中的适配器数。 对于传统适配器,此值为 1。 对于多头卡的主适配器,该值将大于 1。 对于多头卡的从属适配器,该值将为 0。 每个卡最多可以有一个主数据库,但可以有多个下属。
DeclTypes
类型: DWORD
顶点声明中包含的一个或多个数据类型的组合。 请参阅 D3DDTCAPS。
NumSimultaneousRTs
类型: DWORD
同时呈现目标的数目。 此数字必须至少为 1。
StretchRectFilterCaps
类型: DWORD
描述 StretchRect 支持的操作的常量的组合。 可在此字段中设置的标志为:
一直 | 说明 |
---|---|
D3DPTFILTERCAPS_MINFPOINT | 设备支持用于缩小矩形的点样本筛选。 通过使用 D3DTEXF_POINT 调用 StretchRect 来请求此筛选器类型。 |
D3DPTFILTERCAPS_MAGFPOINT | 设备支持放大矩形的点样本筛选。 通过使用 D3DTEXF_POINT 调用 StretchRect 来请求此筛选器类型。 |
D3DPTFILTERCAPS_MINFLINEAR | 设备支持用于缩小矩形的双线性内插筛选。 通过使用 D3DTEXF_LINEAR 调用 StretchRect 来请求此筛选器类型。 |
D3DPTFILTERCAPS_MAGFLINEAR | 设备支持放大矩形的双线性内插筛选。 通过使用 D3DTEXF_LINEAR 调用 StretchRect 来请求此筛选器类型。 |
有关详细信息,请参阅 D3DTEXTUREFILTERTYPE 和 D3DTEXTUREFILTERTYPE。
VS20Caps
设备支持顶点着色器版本 2_0 扩展功能。 请参阅 D3DVSHADERCAPS2_0。
PS20Caps
设备支持像素着色器版本 2_0 扩展功能。 请参阅 D3DPSHADERCAPS2_0。
VertexTextureFilterCaps
类型: DWORD
设备支持顶点着色器纹理筛选器功能。 请参阅 D3DPTFILTERCAPS。
MaxVShaderInstructionsExecuted
类型: DWORD
使用流控制时可以运行的最大顶点着色器指令数。 可编程的最大指令数为 MaxVertexShader30InstructionSlots。
MaxPShaderInstructionsExecuted
类型: DWORD
使用流控制时可以运行的最大像素着色器指令数。 可编程的最大指令数是 MaxPixelShader30InstructionSlots。
MaxVertexShader30InstructionSlots
类型: DWORD
支持的最大顶点着色器指令槽数。 可对此上限设置的最大值为 32768。 支持vs_3_0的设备至少需要支持 512 个指令槽。
MaxPixelShader30InstructionSlots
类型: DWORD
支持的最大像素着色器指令槽数。 可对此上限设置的最大值为 32768。 支持ps_3_0的设备至少需要支持 512 个指令槽。
备注
MaxTextureBlendStages 和 MaxSimultaneousTextures 成员看起来可能相似,但它们包含不同的信息。 MaxTextureBlendStages 成员包含当前设备支持的纹理混合阶段的总数,MaxSimultaneousTextures 成员描述通过使用 SetTexture 方法可将纹理绑定到这些阶段中的多少个阶段。
当驱动程序填充此结构时,它可以设置 execute-buffer 功能的值,即使用于检索功能 (的接口(如 IDirect3DDevice9) )不支持执行缓冲区也是如此。
通常,如果使用纹理,然后在场景中对其进行修改,则可能会出现性能问题。 确保除非绝对必要,否则不会逐出当前 BeginScene 和 EndScene 块中使用的纹理。 如果场景中的纹理使用率非常高,则结果未定义。 当你修改在场景中使用的纹理,并且没有可用的备用纹理内存时,会发生这种情况。 对于此类系统,z 缓冲区的内容在 EndScene 中变为无效。 应用程序不应从 BeginScene/EndScene 对内此类硬件上的后台缓冲区调用 UpdateSurface 。 此外,如果设置了D3DPRASTERCAPS_ZBUFFERLESSHSR功能标志,应用程序不应尝试访问 z 缓冲区。 最后,应用程序不应锁定 BeginScene/EndScene 对内的后台缓冲区或 z 缓冲区。
Direct3D 9 不支持有关错误纹理的以下标志。
- D3DPTFILTERCAPS_LINEAR
- D3DPTFILTERCAPS_LINEARMIPLINEAR
- D3DPTFILTERCAPS_LINEARMIPNEAREST
- D3DPTFILTERCAPS_MIPNEAREST
- D3DPTFILTERCAPS_NEAREST
要求
标头 | d3d9caps.h |