D3DRENDERSTATETYPE 枚举 (d3d9types.h)

D3DRENDERSTATETYPE枚举类型列出了各种属性或呈现状态。 驱动程序专门使用的D3DRENDERSTATETYPE的枚举器可以指定呈现信息或纹理属性。 显示驱动程序使用以下呈现状态:

语法

typedef enum _D3DRENDERSTATETYPE {
  D3DRS_ZENABLE,
  D3DRS_FILLMODE,
  D3DRS_SHADEMODE,
  D3DRS_ZWRITEENABLE,
  D3DRS_ALPHATESTENABLE,
  D3DRS_LASTPIXEL,
  D3DRS_SRCBLEND,
  D3DRS_DESTBLEND,
  D3DRS_CULLMODE,
  D3DRS_ZFUNC,
  D3DRS_ALPHAREF,
  D3DRS_ALPHAFUNC,
  D3DRS_DITHERENABLE,
  D3DRS_ALPHABLENDENABLE,
  D3DRS_FOGENABLE,
  D3DRS_SPECULARENABLE,
  D3DRS_FOGCOLOR,
  D3DRS_FOGTABLEMODE,
  D3DRS_FOGSTART,
  D3DRS_FOGEND,
  D3DRS_FOGDENSITY,
  D3DRS_RANGEFOGENABLE,
  D3DRS_STENCILENABLE,
  D3DRS_STENCILFAIL,
  D3DRS_STENCILZFAIL,
  D3DRS_STENCILPASS,
  D3DRS_STENCILFUNC,
  D3DRS_STENCILREF,
  D3DRS_STENCILMASK,
  D3DRS_STENCILWRITEMASK,
  D3DRS_TEXTUREFACTOR,
  D3DRS_WRAP0,
  D3DRS_WRAP1,
  D3DRS_WRAP2,
  D3DRS_WRAP3,
  D3DRS_WRAP4,
  D3DRS_WRAP5,
  D3DRS_WRAP6,
  D3DRS_WRAP7,
  D3DRS_CLIPPING,
  D3DRS_LIGHTING,
  D3DRS_AMBIENT,
  D3DRS_FOGVERTEXMODE,
  D3DRS_COLORVERTEX,
  D3DRS_LOCALVIEWER,
  D3DRS_NORMALIZENORMALS,
  D3DRS_DIFFUSEMATERIALSOURCE,
  D3DRS_SPECULARMATERIALSOURCE,
  D3DRS_AMBIENTMATERIALSOURCE,
  D3DRS_EMISSIVEMATERIALSOURCE,
  D3DRS_VERTEXBLEND,
  D3DRS_CLIPPLANEENABLE,
  D3DRS_POINTSIZE,
  D3DRS_POINTSIZE_MIN,
  D3DRS_POINTSPRITEENABLE,
  D3DRS_POINTSCALEENABLE,
  D3DRS_POINTSCALE_A,
  D3DRS_POINTSCALE_B,
  D3DRS_POINTSCALE_C,
  D3DRS_MULTISAMPLEANTIALIAS,
  D3DRS_MULTISAMPLEMASK,
  D3DRS_PATCHEDGESTYLE,
  D3DRS_DEBUGMONITORTOKEN,
  D3DRS_POINTSIZE_MAX,
  D3DRS_INDEXEDVERTEXBLENDENABLE,
  D3DRS_COLORWRITEENABLE,
  D3DRS_TWEENFACTOR,
  D3DRS_BLENDOP,
  D3DRS_POSITIONDEGREE,
  D3DRS_NORMALDEGREE,
  D3DRS_SCISSORTESTENABLE,
  D3DRS_SLOPESCALEDEPTHBIAS,
  D3DRS_ANTIALIASEDLINEENABLE,
  D3DRS_MINTESSELLATIONLEVEL,
  D3DRS_MAXTESSELLATIONLEVEL,
  D3DRS_ADAPTIVETESS_X,
  D3DRS_ADAPTIVETESS_Y,
  D3DRS_ADAPTIVETESS_Z,
  D3DRS_ADAPTIVETESS_W,
  D3DRS_ENABLEADAPTIVETESSELLATION,
  D3DRS_TWOSIDEDSTENCILMODE,
  D3DRS_CCW_STENCILFAIL,
  D3DRS_CCW_STENCILZFAIL,
  D3DRS_CCW_STENCILPASS,
  D3DRS_CCW_STENCILFUNC,
  D3DRS_COLORWRITEENABLE1,
  D3DRS_COLORWRITEENABLE2,
  D3DRS_COLORWRITEENABLE3,
  D3DRS_BLENDFACTOR,
  D3DRS_SRGBWRITEENABLE,
  D3DRS_DEPTHBIAS,
  D3DRS_WRAP8,
  D3DRS_WRAP9,
  D3DRS_WRAP10,
  D3DRS_WRAP11,
  D3DRS_WRAP12,
  D3DRS_WRAP13,
  D3DRS_WRAP14,
  D3DRS_WRAP15,
  D3DRS_SEPARATEALPHABLENDENABLE,
  D3DRS_SRCBLENDALPHA,
  D3DRS_DESTBLENDALPHA,
  D3DRS_BLENDOPALPHA,
  D3DRS_FORCE_DWORD
} D3DRENDERSTATETYPE;

常量

 
D3DRS_ZENABLE
表示深度缓冲状态 的D3DZBUFFERTYPE 枚举类型。
D3DRS_FILLMODE
D3DFILLMODE枚举类型。
D3DRS_SHADEMODE
D3DSHADEMODE枚举类型。
D3DRS_ZWRITEENABLE
如果为 TRUE,则使应用程序能够写入深度缓冲区。 默认值为 TRUE。 此成员使应用程序能够阻止系统使用新的深度值更新深度缓冲区。 如果为 FALSE,则仍会根据呈现状态D3DRS_ZFUNC进行深度比较,前提是正在进行深度缓冲,但深度值不会写入缓冲区。
D3DRS_ALPHATESTENABLE
如果为 TRUE,则启用每像素 alpha 测试。 如果测试通过,则帧缓冲区将处理像素。 否则,将跳过像素的所有帧缓冲区处理。
D3DRS_LASTPIXEL
默认值为 TRUE,用于绘制线条中的最后一个像素。 若要防止绘制最后一个像素,请将此值设置为 FALSE。
D3DRS_SRCBLEND
D3DBLEND枚举类型。
D3DRS_DESTBLEND
D3DBLEND枚举类型。
D3DRS_CULLMODE
D3DCULL枚举类型,指定如何剔除朝后三角形(如果有)。
D3DRS_ZFUNC
一种D3DCMPFUNC枚举类型,使应用程序能够根据像素与相机的距离接受或拒绝像素。

像素的深度值与深度缓冲区值进行比较。 如果像素的深度值通过比较函数,则写入像素。

仅当呈现状态为 TRUE 时,深度值才会写入深度缓冲区。
D3DRS_ALPHAREF
值,该值指定在启用 alpha 测试时对其测试像素的引用 alpha 值。 这是放置在 DWORD 呈现状态值的低 8 位中的 8 位值的 8 位值。 值的范围可以是0x00000000到0x000000FF。 默认值为 0。
D3DRS_ALPHAFUNC
一种D3DCMPFUNC枚举类型,使应用程序能够基于其 alpha 值接受或拒绝像素。
D3DRS_DITHERENABLE
如果为 TRUE,则启用抖。。 默认值是 FALSE。
D3DRS_ALPHABLENDENABLE
如果为 TRUE,则启用 alpha 混合透明度。 默认值是 FALSE。

alpha 混合的类型由D3DRS_SRCBLEND和呈现状态D3DRS_DESTBLEND决定。
D3DRS_FOGENABLE
如果为 TRUE,则启用雾混合。 默认值是 FALSE。
D3DRS_SPECULARENABLE
如果为 TRUE,则启用反射高光。 默认值是 FALSE。
反射高光的计算方式与被点亮对象中的每个顶点都位于对象的原点一样。 只要对象围绕原点建模,并且从光线到对象的距离相对较远,这就能得出预期结果。 在其他情况下,结果为未定义。

当此成员设置为 TRUE 时,将在纹理级联之后但在 alpha 混合之前将反射颜色添加到基色中。
D3DRS_FOGCOLOR
D3DCOLORVALUE结构。
D3DRS_FOGTABLEMODE
D3DFOGMODE枚举类型,表示要用于像素雾的迷雾公式。
D3DRS_FOGSTART
线性迷雾模式的像素或顶点雾效果开始的深度。 默认值为 0.0f。 深度在顶点雾的世界空间和设备空间 [0.0, 1.0] 或像素雾的世界空间中指定。 对于像素雾,当系统使用 z 进行雾计算时,这些值在设备空间中,当系统使用相对眼睛的雾 (w-fog) 时,这些值在设备空间中。
D3DRS_FOGEND
线性雾模式像素或顶点雾效果结束的深度。 默认值为 1.0f。 深度在顶点雾的世界空间和设备空间 [0.0, 1.0] 或像素雾的世界空间中指定。 对于像素雾,当系统使用 z 进行雾计算时,这些值位于设备空间中;当系统使用与眼睛相对的雾 (w-fog) 时,这些值位于世界空间中。
D3DRS_FOGDENSITY
指数雾模式中使用的像素或顶点雾的雾密度 (D3DFOG_EXP 和D3DFOG_EXP2) 。 有效密度值范围为 0.0 到 1.0。
D3DRS_RANGEFOGENABLE
如果为 TRUE,则启用基于范围的顶点雾。 默认值为 FALSE,在这种情况下,系统使用基于深度的雾。 在基于范围的雾中,对象与查看器的距离用于计算雾效果,而不是对象 (的深度,即场景中的 z 坐标) 。 在基于范围的雾中,所有迷雾方法都照常工作,只不过它们在计算中使用范围而不是深度。

范围是用于迷雾计算的正确因素,但通常改为使用深度,因为范围计算非常耗时,并且深度通常已可用。 使用深度来计算迷雾具有不良效果,即当观看者的眼睛移动时,外围对象的雾度会发生变化 - 在这种情况下,深度变化且范围保持不变。

由于目前没有硬件支持基于每个像素范围的雾,因此仅针对顶点雾提供范围更正。
D3DRS_STENCILENABLE
如果为 TRUE,则启用 stenciling;如果为 FALSE,则禁用 stenciling。 默认值是 FALSE。
D3DRS_STENCILFAIL
一个D3DSTENCILOP枚举类型,指定在模具测试失败时要执行的模具操作。 默认值为 D3DSTENCILOP_KEEP。
D3DRS_STENCILZFAIL
一种D3DSTENCILOP枚举类型,指定在模具测试通过且深度测试 (z-test) 失败时要执行的模具操作。
D3DRS_STENCILPASS
一种D3DSTENCILOP枚举类型,指定在模具和 z) 测试通过时要执行的模具操作 (。
D3DRS_STENCILFUNC
比较函数用于将引用值与模具缓冲区条目进行比较。 此比较仅适用于引用值和模具缓冲区条目中的位,这些位在模具掩码 (由D3DRS_STENCILMASK呈现状态) 设置。 如果为 TRUE,则模具测试通过。
D3DRS_STENCILREF
模具测试的 int 引用值。 默认值为 0。
D3DRS_STENCILMASK
应用于引用值和每个模具缓冲区条目的掩码,以确定模具测试的重要位。 默认掩码为0xFFFFFFFF。
D3DRS_STENCILWRITEMASK
写入掩码应用于写入模具缓冲区的值。 默认掩码为0xFFFFFFFF。
D3DRS_TEXTUREFACTOR
用于使用D3DTA_TFACTOR纹理混合参数或D3DTOP_BLENDFACTORALPHA纹理混合操作进行多纹理混合的颜色。
D3DRS_WRAP0
多组纹理坐标的纹理环绕行为。 此呈现状态的有效值可以是D3DWRAPCOORD_0 (或D3DWRAP_U) 、D3DWRAPCOORD_1 (或D3DWRAP_V) 、D3DWRAPCOORD_2 (或D3DWRAP_W) 以及D3DWRAPCOORD_3标志的任意组合。 这会导致系统在给定纹理的第一个、第二个、第三个和第四个维度的方向环绕,有时称为 s、t、r 和 q 方向。 此呈现状态的默认值为 0 (在) 的所有方向禁用环绕。
D3DRS_WRAP1
请参阅D3DRS_WRAP0。
D3DRS_WRAP2
请参阅D3DRS_WRAP0。
D3DRS_WRAP3
请参阅D3DRS_WRAP0。
D3DRS_WRAP4
请参阅D3DRS_WRAP0。
D3DRS_WRAP5
请参阅D3DRS_WRAP0。
D3DRS_WRAP6
请参阅D3DRS_WRAP0。
D3DRS_WRAP7
请参阅D3DRS_WRAP0。
D3DRS_CLIPPING
如果为 TRUE,则通过 Direct3D 启用基元剪辑;如果为 FALSE,则禁用它。 默认值为 TRUE。
D3DRS_LIGHTING
如果为 TRUE,则启用 Direct3D 照明;如果为 FALSE,则禁用它。 默认值为 TRUE。 只有包含顶点法线的顶点才会正确亮起;不包含法线的顶点在所有照明计算中采用点积 0。
D3DRS_AMBIENT
环境光颜色。
D3DRS_FOGVERTEXMODE
用于顶点雾的迷雾公式。
D3DRS_COLORVERTEX
如果为 TRUE,则启用每顶点颜色;如果为 FALSE,则禁用该颜色。 默认值为 TRUE。 启用每个顶点颜色允许系统在其照明计算中包含为单个顶点定义的颜色。
D3DRS_LOCALVIEWER
如果为 TRUE,则启用相机相对高光;如果为 FALSE,则使用正交反射高光。 默认值为 TRUE。 使用正交投影的应用程序应指定 FALSE。
D3DRS_NORMALIZENORMALS
如果为 TRUE,则启用顶点法线的自动规范化;如果为 FALSE,则禁用它。 默认值是 FALSE。 启用此功能会使系统在将顶点转换为相机空间后规范化顶点的顶点法线,这在计算上非常耗时。
D3DRS_DIFFUSEMATERIALSOURCE
用于照明计算的漫射颜色源。
D3DRS_SPECULARMATERIALSOURCE
用于照明计算的反射色源。
D3DRS_AMBIENTMATERIALSOURCE
照明计算的环境颜色源。
D3DRS_EMISSIVEMATERIALSOURCE
用于照明计算的辐射颜色源。
D3DRS_VERTEXBLEND
用于执行几何图形混合的矩阵数(如果有)。
D3DRS_CLIPPLANEENABLE
启用或禁用用户定义的剪裁平面。 有效值是任何 DWORD,其中每个位的状态 (设置或未设置) 切换相应的用户定义的剪切平面的激活状态。 最小有效位 (位 0) 控制索引 0 处的第一个剪切平面,后续位控制在更高索引处的剪切平面的激活。 如果设置了位,系统会在场景渲染期间应用适当的剪裁平面。 默认值为 0。
D3DRS_POINTSIZE
一个浮点值,指定在未为每个顶点指定点大小的情况下用于点大小计算的大小。 当顶点包含点大小时,不使用此值。 如果D3DRS_POINTSCALEENABLE为 FALSE,则此值以屏幕空间单位表示;否则,此值以世界空间单位表示。 默认值为驱动程序返回的值。 如果驱动程序返回 0 或 1,则默认值为 64,这允许软件点大小模拟。
D3DRS_POINTSIZE_MIN
一个浮点值,该值指定点基元的最小大小。 在呈现期间,点基元被固定到此大小。 将此值设置为小于 1.0 的值会导致当点未覆盖像素中心且禁用抗锯齿或在启用抗锯齿时以降低强度呈现时,点会掉落。 默认值为 1.0f。 此值的范围大于或等于 0.0f。
D3DRS_POINTSPRITEENABLE
如果为 TRUE,则设置点基元的纹理坐标,以便在每个点上映射完整的纹理。 如果为 FALSE,则顶点纹理坐标用于整个点。 默认值是 FALSE。 通过将 D3DRS_POINTSCALEENABLE 设置为 FALSE,将 D3DRS_POINTSIZE 设置为 1.0(默认值),可以实现 DirectX 7 样式的单像素点。
D3DRS_POINTSCALEENABLE
一个布尔值,控制点基元的大小计算。 如果为 TRUE,则点大小解释为相机空间值,并按距离函数和视锥缩放视区 y 轴缩放来计算最终的屏幕空间点大小。 如果为 FALSE,则点大小将解释为屏幕空间并直接使用。 默认值是 FALSE。
D3DRS_POINTSCALE_A
一个浮点值,用于控制点基元的基于距离的大小衰减。 仅当D3DRS_POINTSCALEENABLE为 TRUE 时才处于活动状态。 默认值为 1.0f。 此值的范围大于或等于 0.0f。
D3DRS_POINTSCALE_B
一个浮点值,用于控制点基元的基于距离的大小衰减。 仅当D3DRS_POINTSCALEENABLE为 TRUE 时才处于活动状态。 默认值为 0.0f。 此值的范围大于或等于 0.0f。
D3DRS_POINTSCALE_C
一个浮点值,用于控制点基元的基于距离的大小衰减。 仅当D3DRS_POINTSCALEENABLE为 TRUE 时才处于活动状态。 默认值为 0.0f。 此值的范围大于或等于 0.0f。
D3DRS_MULTISAMPLEANTIALIAS
一个布尔值,确定在使用多重采样呈现目标缓冲区时如何计算各个样本。 设置为 TRUE 时,将计算多个样本,以便通过对每个多个样本的不同样本位置采样来执行全场景抗锯齿。 如果设置为 FALSE,则多个样本都使用相同的样本值写入,在像素中心采样,从而允许将非抗锯齿呈现到多采样缓冲区。 呈现到单个示例缓冲区时,此呈现状态不起作用。 默认值为 TRUE。
D3DRS_MULTISAMPLEMASK
此掩码中的每个位(从 LSB) 的最小有效位 (开始)控制对多重采样呈现目标中一个样本的修改。 因此,对于 8 个样本的呈现目标,低字节包含八个样本中的每一个的 8 个写入启用。 呈现到单个示例缓冲区时,此呈现状态不起作用。 默认值为 0xFFFFFFFF。

此呈现状态允许使用多采样缓冲区作为累积缓冲区,对几何进行多通道渲染,其中每次传递都会更新样本的子集。
如果有 n 个多采样和 k 个已启用样本,则呈现的图像的强度应为 k/n。 每个像素的每个分量 RGB 都按 k/n 进行分解。
D3DRS_PATCHEDGESTYLE
设置修补边缘是否将使用浮点样式细化。
D3DRS_DEBUGMONITORTOKEN
仅为调试监视器设置。
D3DRS_POINTSIZE_MAX
一个浮点值,该值指定将点子画面固定到的最大大小。 该值必须小于或等于 D3DCAPS9 的 MaxPointSize 成员,并且大于或等于 D3DRS_POINTSIZE_MIN。 默认值为 64.0。
D3DRS_INDEXEDVERTEXBLENDENABLE
一个布尔值,用于启用或禁用索引顶点混合。 默认值是 FALSE。 设置为 TRUE 时,将启用索引顶点混合。 如果设置为 FALSE,则禁用索引顶点混合。 如果启用此呈现状态,用户必须将矩阵索引作为打包的 DWORD 与每个顶点传递。 禁用呈现状态并通过D3DRS_VERTEXBLEND状态启用顶点混合时,这相当于每个顶点的矩阵索引为 0、1、2、3。
D3DRS_COLORWRITEENABLE
为呈现目标颜色缓冲区启用每通道写入的 UINT 值。 设置位会导致在 3D 呈现期间更新颜色通道。 清除位会导致颜色通道不受影响。
D3DRS_TWEENFACTOR
控制补间因子的浮点值。
D3DRS_BLENDOP
当 alpha 混合呈现状态(D3DRS_ALPHABLENDENABLE)设置为 TRUE 时,用于选择应用的算术运算的值。

如果不支持D3DPMISCCAPS_BLENDOP设备功能,则执行D3DBLENDOP_ADD。
D3DRS_POSITIONDEGREE
N 补丁位置内插度。 这些值可以是默认) 或D3DDEGREE_LINEAR D3DDEGREE_CUBIC (。
D3DRS_NORMALDEGREE
N 补丁法线内插度。 这些值可以是默认D3DDEGREE_LINEAR () 或D3DDEGREE_QUADRATIC。
D3DRS_SCISSORTESTENABLE
如果为 TRUE,则启用剪刀测试,如果为 FALSE,则禁用它。 默认值是 FALSE。
D3DRS_SLOPESCALEDEPTHBIAS
用于确定可应用于共平面基元以减少 z 冲突的偏差量。 默认值为 0。
D3DRS_ANTIALIASEDLINEENABLE
如果为 TRUE,则启用行抗锯齿;如果为 FALSE,则禁用行抗锯齿。 默认值是 FALSE。
D3DRS_MINTESSELLATIONLEVEL
最小分割级别。 默认值为 1.0f。
D3DRS_MAXTESSELLATIONLEVEL
最大分割级别。 默认值为 1.0f。
D3DRS_ADAPTIVETESS_X
等于在 x 方向上自适应细化。 默认值为 0.0f。
D3DRS_ADAPTIVETESS_Y
在 y 方向上自适应细化。 默认值为 0.0f。
D3DRS_ADAPTIVETESS_Z
等于自适应 tessellate,在 z 方向。 默认值为 1.0f。
D3DRS_ADAPTIVETESS_W
等于自适应细化,在 w 方向。 默认值为 0.0f。
D3DRS_ENABLEADAPTIVETESSELLATION
如果为 TRUE,则启用自适应细化,如果为 FALSE,则禁用自适应细化。
D3DRS_TWOSIDEDSTENCILMODE
如果为 TRUE,则启用双面紧连,FALSE 则禁用它。 默认值是 FALSE。 应用程序应将 D3DRS_CULLMODE 设置为 D3DCULL_NONE 以启用双面模具模式。 如果三角形缠绕顺序是顺时针的,则将使用D3DRS_STENCIL*运算。 如果绕组顺序是逆时针的,则将使用D3DRS_CCW_STENCIL*运算。
D3DRS_CCW_STENCILFAIL
在 CCW 模具测试失败时要执行的模具操作。
D3DRS_CCW_STENCILZFAIL
在 CCW 模具测试通过且 z 测试失败时执行的模具操作。
D3DRS_CCW_STENCILPASS
当 CCW 模具和 z 测试都通过时要执行的模具操作。
D3DRS_CCW_STENCILFUNC
比较函数。 如果 ( (ref & mask) 模具函数 (模具 & 掩码) ) 为 TRUE,则 CCW 模具测试通过。
D3DRS_COLORWRITEENABLE1
设备的其他 ColorWriteEnable 值。
D3DRS_COLORWRITEENABLE2
设备的其他 ColorWriteEnable 值。
D3DRS_COLORWRITEENABLE3
设备的其他 ColorWriteEnable 值。
D3DRS_BLENDFACTOR
alpha 混合期间的常量混合因子。
D3DRS_SRGBWRITEENABLE
启用呈现器目标写入以将 gamma 更正为 sRGB。 格式必须公开D3DUSAGE_SRGBWRITE。 默认值为 0。
D3DRS_DEPTHBIAS
用于比较深度值的浮点值。
D3DRS_WRAP8
请参阅D3DRS_WRAP0。
D3DRS_WRAP9
请参阅D3DRS_WRAP0。
D3DRS_WRAP10
请参阅D3DRS_WRAP0。
D3DRS_WRAP11
请参阅D3DRS_WRAP0。
D3DRS_WRAP12
请参阅D3DRS_WRAP0。
D3DRS_WRAP13
请参阅D3DRS_WRAP0。
D3DRS_WRAP14
请参阅D3DRS_WRAP0。
D3DRS_WRAP15
请参阅D3DRS_WRAP0。
D3DRS_SEPARATEALPHABLENDENABLE
TRUE 为 alpha 通道启用单独的混合模式。 默认值是 FALSE。

设置为 FALSE 时,应用于 alpha 的呈现器目标混合因子和运算强制与为颜色定义的混合因子和运算相同。 对于未设置上限D3DPMISCCAPS_SEPARATEALPHABLEND的实现,此模式实际上已硬连线为 FALSE。
D3DRS_SRCBLENDALPHA
除非D3DRS_SEPARATEALPHABLENDENABLE为 TRUE,否则将忽略此值。
D3DRS_DESTBLENDALPHA
除非D3DRS_SEPARATEALPHABLENDENABLE为 TRUE,否则将忽略此值。
D3DRS_BLENDOPALPHA
当呈现状态(D3DRS_SEPARATEALPHABLENDENABLE)设置为 TRUE 时,用于选择应用于单独 alpha 混合的算术运算的值。
D3DRS_FORCE_DWORD
强制此枚举编译为大小为 32 位。 如果没有此值,某些编译器将允许此枚举编译为 32 位以外的大小。 不使用此值。

注解

这些呈现状态仅供内部使用:

D3DRENDERSTATE_EVICTMANAGEDTEXTURES

确定是否从内存中逐出纹理。 驱动程序使用不带默认值的 BOOL 数据类型来检测是否逐出。

此呈现状态确定驱动程序是否从视频内存中逐出它管理 (的纹理,而不是 Direct3D 运行时管理的纹理) 。 如果呈现状态值为 TRUE,驱动程序将逐出纹理。 否则,驱动程序不会逐出这些纹理。

D3DRENDERSTATE_SCENECAPTURE

为帧内捕获的几何数据指定开始场景信息或结束场景信息。 驱动程序使用默认值为 TRUE 的 BOOL 数据类型来检测场景捕获信息。

驱动程序首先响应D3DRENDERSTATE_SCENECAPTURE的开始场景信息为 TRUE ,然后对结束场景信息使用 FALSE 响应,以捕获帧内的几何数据。 有关示例实现,请参阅 Windows 驱动程序开发工具包 (DDK) 随附的 permedia2 示例驱动程序。 使用 D3DRENDERSTATE_SCENECAPTURE D3dDrawPrimitives2 调用中的呈现状态将替换旧版 D3DHALCallbacks-D3dSceneCapture> 回调例程。

必须将实现旧版 D3DHALCallbacks-D3dSceneCapture> 回调例程的驱动程序更新为使用D3DRENDERSTATE_SCENECAPTURE呈现状态的驱动程序。 D3dSceneCapture 回调例程使用常量D3DHAL_SCENE_CAPTURE_START和D3DHAL_SCENE_CAPTURE_END分别指示场景的开始和结束。 这些常量的值分别为 0 和 1。 如果在此呈现状态下使用这些常量来代替 TRUEFALSE ,则含义将与你的意图完全相反。

D3DRS_DELETERTPATCH

仅限 DirectX 8.0 及更高版本。

从内存中删除矩形或三角补丁。 驱动程序使用不带默认值的 DWORD 数据类型来检测要删除的修补程序。

此呈现状态通知驱动程序要删除修补程序。 此呈现状态的值是受影响的修补程序的句柄。 应释放所有缓存的信息,并且应从驱动程序的修补程序句柄表中删除句柄。 此呈现状态对应用程序不可见,但在应用程序调用 DeletePatch 函数时会在内部生成。 仅当 DeletePatch 显式删除修补程序时,才会将此呈现状态发送到驱动程序。 销毁设备时,应清理所有其他修补程序。

D3DRS_MAXPIXELSHADERINST

仅限 DirectX 9.0 及更高版本。

确定像素着色器汇编程序可以执行的最大指令数。

驱动程序使用默认值为 D3DINFINITEINSTRUCTIONS (0xffffffff) 的 DWORD 数据类型来报告像素着色器指令的最大数目。 此最大数目取决于显示设备支持的像素着色器版本,如下表所示。

版本 最大数量
早于 2_0 0
2_0 从 96 到 D3DINFINITEINSTRUCTIONS
3_0 及更高版本 从 2¹⁶ (0x0000ffff) 到 D3DINFINITEINSTRUCTIONS

D3DINFINITEINSTRUCTIONS几乎表示无限量。

此呈现状态的有效值是幂为 2 的数字;如果驱动程序设置任何其他整数,则运行时使用下一个最接近的幂 2 个数字。

运行时将 D3DCAPS9 结构的 MaxVShaderInstructionsExecuted 成员设置为此最大数目。

D3DRS_MAXVERTEXSHADERINST

仅限 DirectX 9.0 及更高版本。

确定顶点着色器汇编程序可以执行的最大指令数。

驱动程序使用默认值为 D3DINFINITEINSTRUCTIONS (0xffffffff) 的 DWORD 数据类型来报告顶点着色器指令的最大数目。 此最大数目取决于显示设备支持的顶点着色器版本,如下表所示。

版本 最大数量
早于 2_0 0
2_0 及更高版本 从 2¹⁶ (0x0000ffff) 到 D3DINFINITEINSTRUCTIONS

D3DINFINITEINSTRUCTIONS几乎表示无限量。

此呈现状态的有效值是幂为 2 的数字;如果驱动程序设置任何其他整数,则运行时使用下一个最接近的幂 2 个数字。

运行时将 D3DCAPS9 结构的 MaxVShaderInstructionsExecuted 成员设置为此最大数目。

驱动程序在执行图形呈现时使用这些呈现状态。 Windows 驱动程序工具包 (WDK) 文档中仅包含特定于驱动程序的呈现状态。 DirectX SDK 文档中包含 DirectX 应用程序可访问的呈现状态。 这些应用程序级呈现状态包括以下特征:是否启用 alpha 混合、是否启用抖动、是否使用 Direct3D 照明以及要使用的着色类型。

为了更新特定的呈现状态,Direct3D 存储有关呈现状态的信息,然后调用驱动程序的 D3dDrawPrimitives2 回调例程。 提供给驱动程序的信息使它能够:

  • 确定它应更新一个或多个呈现状态。

  • 确定要更新的呈现状态,以及新的呈现状态值。

请注意,若要遵循某些呈现状态,驱动程序必须以前在 D3DPRIMCAPS 结构的相关成员中设置功能标志。

为了指示特定的呈现状态更新,Direct3D 将 D3DHAL_DP2COMMAND 结构插入命令缓冲区,将此结构的 bCommand 成员设置为D3DDP2OP_RENDERSTATE (查看D3DHAL_DP2OPERATION) 中 D3DDP2OP_RENDERSTATE 的说明,并将同一结构的 wStateCount 成员设置为要更新的呈现状态数。

紧跟 在D3DHAL_DP2COMMAND 结构之后,Direct3D 将一个 D3DHAL_DP2RENDERSTATE 结构插入命令缓冲区,以便更新每个呈现状态。 此结构的 RenderState 成员标识要更改的呈现状态;此呈现状态的新值在 dwState 成员 (中指定,用于 DWORD 值) 或 fState 成员 (中指定) D3DVALUE值。

下图显示了包含一个D3DDP2OP_RENDERSTATE命令和两个D3DHAL_DP2RENDERSTATE结构的命令缓冲区的一部分。 三个结构中的第一个表示要更新两个呈现状态。 第二个结构指示D3DRENDERSTATE_FILLMODE呈现状态将更改为D3DFILL_SOLID。 第三个结构指示应将D3DRENDERSTATE_SHADEMODE呈现状态更新为D3DSHADE_GOURAUD。

显示具有D3DDP2OP_RENDERSTATE命令和两个D3DHAL_DP2RENDERSTATE结构的命令缓冲区的图

其他说明

有关所有已启用的呈现状态类型的完整列表,请参阅 DirectX SDK 文档中的D3DTEXTURESTAGESTATETYPE、D3DTEXTUREOP和D3DTEXTUREFILTER枚举类型。

对 DirectX 5.0 及更高版本D3DRENDERSTATETYPE枚举类型进行了一些更改。 D3DRENDERSTATE_BLENDENABLE已被完全删除,尽管它在 d3dtypes.h 头文件中定义为D3DRENDERSTATE_ALPHABLENDENABLE。 有关说明,请参阅D3DRENDERSTATE_COLORKEYENABLE。 间隔 [128, 255] 中的 128 个整数值是为纹理坐标换行标志保留的。 这些宏是使用 D3DWRAP_U 和 D3DWRAP_V 宏构造的。 使用标志字可保持与尺寸高于 2D 的纹理坐标的前向兼容性。

多文本宏操作和D3DRENDERSTATE_TEXTUREFACTOR替代 (COLOR{OP,ARG1,ARG2} & ALPHA{OP,ARG1,ARG2} ) 的所有按纹理阶段混合控件。

要求

要求
Header d3d9types.h (包括 D3dhal.h)