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 来检索 IDirect3D 接口。
Caps
类型: DWORD
以下特定于驱动程序的功能。
Value | 含义 | |
---|---|---|
|
显示硬件能够返回当前扫描行。 | |
|
显示驱动程序支持覆盖 DDI,用于验证覆盖功能。 有关覆盖 DDI 的详细信息,请参阅 覆盖 DDI。
|
Caps2
类型: DWORD
D3DCAPS2 中标识的特定于驱动程序的功能。
Caps3
类型: DWORD
D3DCAPS3 中标识的特定于驱动程序的功能。
PresentationIntervals
类型: DWORD
表示可用的演示文稿交换间隔的值的位掩码。
CursorCaps
类型: DWORD
指示哪些硬件支持可用于游标的位掩码。 Direct3D 9 不定义 alpha 混合游标功能。
Value | 含义 |
---|---|
|
硬件支持全色光标。 具体而言,此标志表示驱动程序在高分辨率模式下至少支持硬件颜色光标, (扫描行大于或等于 400) 。 |
|
硬件支持全色光标。 具体而言,此标志指示驱动程序在高分辨率和低分辨率模式下都支持硬件颜色光标, (扫描行小于 400) 。 |
DevCaps
类型: DWORD
标识设备功能的标志。
Value | 含义 |
---|---|
|
设备支持从系统内存纹理到非局部视频内存纹理的 blits。 |
|
设备可以在页面翻转后对呈现命令进行排队。 如果设置了此标志,则应用程序不会更改其行为;此功能意味着设备相对较快。 |
|
设备至少可以支持符合 DirectX 5 的驱动程序。 |
|
设备至少可以支持符合 DirectX 7 的驱动程序。 |
|
设备导出 IDirect3DDevice9::D rawPrimitive 感知 hal。 |
|
设备可以使用系统内存中的执行缓冲区。 |
|
设备可以使用视频内存中的执行缓冲区。 |
|
设备具有用于场景光栅化的硬件加速。 |
|
设备可以支持硬件中的转换和照明。 |
|
设备支持 N 个修补程序。 |
|
设备可以支持硬件中的光栅化、转换、照明和底纹。 |
|
设备支持 quintic Bézier 曲线和 B-spline。 |
|
设备支持矩形和三角形修补程序。 |
|
设置此设备功能后,硬件体系结构不需要缓存任何信息,并且未缓存的修补程序 (处理零) 将像缓存的修补程序一样高效绘制。 请注意,设置D3DDEVCAPS_RTPATCHHANDLEZERO并不意味着可以绘制带句柄零的修补程序。 无论是否设置此上限,始终都可以绘制句柄零补丁。 |
|
设备正在从单独的内存池进行文本处理。 |
|
设备可以从非本地视频内存中检索纹理。 |
|
设备可以从系统内存中检索纹理。 |
|
设备可以从设备内存中检索纹理。 |
|
设备可以使用系统内存中的缓冲区进行转换和点亮。 |
|
设备可以使用视频内存中的缓冲区进行转换和点亮。 |
PrimitiveMiscCaps
类型: DWORD
其他驱动程序基元功能。 请参阅 D3DPMISCCAPS。
RasterCaps
类型: DWORD
有关光栅绘图功能的信息。 此成员可以是以下一个或多个标志。
Value | 含义 |
---|---|
|
设备支持异性筛选。 |
|
设备可正确迭代颜色透视。 |
|
设备可以改进颜色分辨率。 |
|
设备支持旧深度偏差。 有关真正的深度偏差,请参阅D3DPRASTERCAPS_SLOPESCALEDEPTHBIAS。 |
|
设备支持基于范围的雾。 在基于范围的雾中,对象与查看器的距离用于计算雾效果,而不是对象 (的深度,即场景中的 z 坐标) 。 |
|
设备通过引用包含已索引到给定像素深度的雾值查找表来计算雾值。 |
|
设备在照明操作期间计算雾值,并在光栅化期间内插雾值。 |
|
设备支持细节级别偏差调整。 这些偏差调整使应用程序能够使 mipmap 看起来比通常更清晰或更尖锐。 有关 mipmap 中详细程度偏差的详细信息,请参阅D3DSAMP_MIPMAPLODBIAS。 |
|
设备支持使用 D3DRS_MULTISAMPLEANTIALIAS) 在 IDirect3DDDevice9::BeginScene 和 IDirect3DDevice9::EndScene (之间切换多采样。 |
|
设备支持剪裁器测试。 请参阅 Scissor 测试 (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.) 指示
Value | 含义 | |
---|---|---|
|
驱动程序支持D3DBLEND_BLENDFACTOR和D3DBLEND_INVBLENDFACTOR。 请参阅 D3DBLEND。 | |
|
源混合因子 (1 - As、 1 - As、1 - As、1 - As) 和目标混合因子 (As、As、As、As) ;覆盖目标混合选择。 | |
|
驱动程序支持D3DBLEND_BOTHSRCALPHA混合模式。 (此混合模式已过时。有关详细信息,请参阅 D3DBLEND.) | |
|
混合因子 (Ad、Ad、A d、Ad) 。 | |
|
混合因子 (Rd、Gd、B d、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) 。 | |
|
Blend factor (1 - PSOutColor[1]r, 1 - PSOutColor[1]g, 1 - PSOutColor[1]b, not used) ) . 请参阅 呈现目标混合。
|
|
|
混合因子 (1、1、1、1) 。 | |
|
Blend factor (As、As、As、As、As) 。 | |
|
混合因子 (f、f、f、1) ;f = min (As, 1 -A d) 。 | |
|
Blend factor (Rs、Gs、Bs 和 As) 。 | |
|
Blend factor (PSOutColor[1]r, PSOutColor[1]g, PSOutColor[1]b, not use) . 请参阅 呈现目标混合。
|
|
|
混合因子 (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
其他纹理映射功能。 此成员可以是以下一个或多个标志。
Value | 含义 |
---|---|
|
支持纹理像素中的 Alpha。 |
|
设备可以从纹理调色板绘制 alpha。 |
|
支持多维数据集纹理。 |
|
设备要求多维数据集纹理映射具有指定为两个幂的维度。 |
|
设备支持 mipmapped 多维数据集纹理。 |
|
设备支持误用纹理。 |
|
设备支持误用卷纹理。 |
|
此外还设置了D3DPTEXTURECAPS_POW2,有条件地支持将 2D 纹理与不具有两个幂的维度一起使用。 如果满足以下所有要求,公开此功能的设备可以使用此类纹理。
如果未设置此标志,并且未设置D3DPTEXTURECAPS_POW2,则为具有两个维度的 2D 纹理提供无条件支持。 不能在基于着色器计算 ((如 bem - ps 和 texm3x3)的着色器计算(如 bem - ps 和 texm3x3) 的阶段设置两者的力量的纹理, 像素着色器版本 1_0 到 1_3) 。 例如,这些纹理可用于存储将馈送到纹理读取中的颠簸,但不能存储在 texbem - ps、 texbeml - ps 和 texm3x3spec - ps 中使用的环境映射。 这意味着,不能使用着色器内计算的纹理坐标处理或采样具有两个维度的纹理。 这种类型的操作称为依赖读取,不能对这些类型的纹理执行。 |
|
设备不支持可编程和固定函数着色器中的投影凸起环境查找操作。 |
|
支持透视更正文本。 |
|
如果未设置D3DPTEXTURECAPS_NONPOW2CONDITIONAL,则所有纹理必须具有指定为两个幂的宽度和高度。 此要求不适用于多维数据集纹理或卷纹理。
如果还设置了D3DPTEXTURECAPS_NONPOW2CONDITIONAL,则有条件地支持将 2D 纹理与不具有两个幂的维度一起使用。 请参阅D3DPTEXTURECAPS_NONPOW2CONDITIONAL说明。 如果未设置此标志,并且未设置D3DPTEXTURECAPS_NONPOW2CONDITIONAL,则为具有两个维度的 2D 纹理提供无条件支持。 |
|
支持D3DTTFF_PROJECTED纹理转换标志。 应用后,设备将转换后的纹理坐标除以最后一个纹理坐标。 如果存在此功能,则每个像素会出现投影除法。 如果此功能不存在,但投影除法仍需要进行,则 Direct3D 运行时按顶点执行。 |
|
所有纹理必须为正方形。 |
|
在内插之前,纹理索引不会按纹理大小缩放。 |
|
设备支持卷纹理。 |
|
设备要求卷纹理映射具有指定为两个幂的维度。 |
TextureFilterCaps
类型: DWORD
纹理的纹理筛选功能。 每阶段筛选功能反映执行多纹理混合时纹理阶段支持哪些筛选模式。 此成员可以是 D3DPTFILTERCAPS 中定义的每阶段纹理筛选标志的任意组合。
CubeTextureFilterCaps
类型: DWORD
多维数据集纹理的纹理筛选功能。 每阶段筛选功能反映执行多纹理混合时纹理阶段支持哪些筛选模式。 此成员可以是 D3DPTFILTERCAPS 中定义的每阶段纹理筛选标志的任意组合。
VolumeTextureFilterCaps
类型: DWORD
卷纹理的纹理筛选功能。 每阶段筛选功能反映执行多纹理混合时纹理阶段支持哪些筛选模式。 此成员可以是 D3DPTFILTERCAPS 中定义的每阶段纹理筛选标志的任意组合。
TextureAddressCaps
类型: DWORD
纹理对象的纹理寻址功能。 此成员可以是以下一个或多个标志。
VolumeTextureAddressCaps
类型: DWORD
卷纹理的纹理寻址功能。 此成员可以是为 TextureAddressCaps 成员定义的一个或多个标志。
LineCaps
类型: DWORD
定义线条绘制基元的功能。
Value | 含义 |
---|---|
|
支持 alpha-test 比较。 |
|
支持抗锯齿线。 |
|
支持源混合。 |
|
支持雾。 |
|
支持纹理映射。 |
|
支持 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
顶点处理功能。 对于给定的物理设备,此功能可能因提供给 CreateDevice 的参数而异。 请参阅 D3DVTXPCAPS。
MaxActiveLights
类型: DWORD
可同时处于活动状态的最大灯数。 对于给定的物理设备,此功能可能因提供给 CreateDevice 的参数而异。
MaxUserClipPlanes
类型: DWORD
支持的最大用户定义的剪裁平面数。 此成员可以是 0。 对于给定的物理设备,此功能可能因提供给 CreateDevice 的参数而异。
MaxVertexBlendMatrices
类型: DWORD
执行多矩阵混合时,此设备可以应用的最大矩阵数。 对于给定的物理设备,此功能可能因提供给 CreateDevice 的参数而异。
MaxVertexBlendMatrixIndex
类型: DWORD
DWORD 值,该值指定可以使用每个顶点索引编制索引的最大矩阵索引。 矩阵数为 MaxVertexBlendMatrixIndex + 1,即矩阵调色板的大小。 如果正态存在于需要混合用于照明的顶点数据中,则矩阵数是此功能标志所指定的数字的一半。 如果 MaxVertexBlendMatrixIndex 设置为零,则驱动程序不支持索引顶点混合。 如果此值不是零,则索引的有效范围通过 MaxVertexBlendMatrixIndex 为零。
MaxVertexBlendMatrixIndex 的零值指示驱动程序不支持索引矩阵。
使用软件顶点处理时,可以使用 256 个矩阵进行索引顶点混合,与或不正常混合。
对于给定的物理设备,此功能可能因提供给 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
表示顶点着色器主版本和子版本的两个数字。 有关每个顶点着色器版本支持的说明的详细信息,请参阅版本1_x版本 2_0、版本 2_0 扩展版或版本 3_0。
MaxVertexShaderConst
类型: DWORD
为常量保留的 顶点着色器顶点着色器寄存器 数。
PixelShaderVersion
类型: DWORD
表示像素着色器主版本和子版本的两个数字。 有关每个像素着色器版本支持的说明的详细信息,请参阅版本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
同时呈现目标的数目。 此数字必须至少为一个。
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 方法绑定到这些阶段。
当驱动程序填充此结构时,它可以为执行缓冲区功能设置值,即使用于检索功能 ((如 IDirect3DDevice9) )的接口也不支持执行缓冲区。
一般情况下,如果使用纹理,然后在场景中对其进行修改,则可能会出现性能问题。 确保除非绝对必要,否则不会逐出当前 BeginScene 和 EndScene 块中使用的纹理。 如果场景中的纹理使用率非常高,则结果未定义。 当修改在场景中使用的纹理并且没有可用的备用纹理内存时,将发生这种情况。 对于此类系统,z 缓冲区的内容在 EndScene 中变为无效。 应用程序不应在 BeginScene/EndScene 对内的此类硬件上或从后端缓冲区调用 UpdateSurface 。 此外,如果设置了D3DPRASTERCAPS_ZBUFFERLESSHSR功能标志,则应用程序不应尝试访问 z 缓冲区。 最后,应用程序不应锁定 Back 缓冲区或 BeginScene/EndScene 对内的 z 缓冲区。
Direct3D 9 不支持以下有关误用纹理的标志。
- D3DPTFILTERCAPS_LINEAR
- D3DPTFILTERCAPS_LINEARMIPLINEAR
- D3DPTFILTERCAPS_LINEARMIPNEAREST
- D3DPTFILTERCAPS_MIPNEAREST
- D3DPTFILTERCAPS_NEAREST
要求
标头 | d3d9caps.h |