'D3DRS_SEPARATEDESTALPHAENABLE' :未声明的标识符 - 即使 DirectX 注释中提到了它?

发布于 2024-07-29 04:56:43 字数 735 浏览 4 评论 0原文

在 d3d9types.h 的 _D3DRENDERSTATETYPE 结构中,最后 3 个类型是:

D3DRS_SRCBLENDALPHA             = 207,  /* SRC blend factor for the alpha channel when D3DRS_SEPARATEDESTALPHAENABLE is TRUE */
D3DRS_DESTBLENDALPHA            = 208,  /* DST blend factor for the alpha channel when D3DRS_SEPARATEDESTALPHAENABLE is TRUE */
D3DRS_BLENDOPALPHA              = 209,  /* Blending operation for the alpha channel when D3DRS_SEPARATEDESTALPHAENABLE is TRUE */

请注意,它提到如果“D3DRS_SEPARATEDESTALPHAENABLE 为 TRUE”,将使用这些类型,但是该结构中没有 D3DRS_SEPARATEDESTALPHAENABLE。 最接近的东西似乎是:“D3DRS_SEPARATEALPHABLENDENABLE”,但我根本不确定这是否是同一件事。

所以我只是想知道最后三个渲染状态应该设置为 true 才能实际工作(如果有的话?),我强烈认为它是 D3DRS_SEPARATEALPHABLENDENABLE 但希望有人确认?

In d3d9types.h in the _D3DRENDERSTATETYPE struct the last 3 types are:

D3DRS_SRCBLENDALPHA             = 207,  /* SRC blend factor for the alpha channel when D3DRS_SEPARATEDESTALPHAENABLE is TRUE */
D3DRS_DESTBLENDALPHA            = 208,  /* DST blend factor for the alpha channel when D3DRS_SEPARATEDESTALPHAENABLE is TRUE */
D3DRS_BLENDOPALPHA              = 209,  /* Blending operation for the alpha channel when D3DRS_SEPARATEDESTALPHAENABLE is TRUE */

Notice it mentions that these will be used if 'D3DRS_SEPARATEDESTALPHAENABLE is TRUE', however there is no D3DRS_SEPARATEDESTALPHAENABLE in the struct whatsoever. The closest thing seems to be: "D3DRS_SEPARATEALPHABLENDENABLE" but I'm not at all sure if this is the same thing.

So i was just wondering what should be set to true for those last three renderstates to actually work (if anything?), I strongly think it's D3DRS_SEPARATEALPHABLENDENABLE but would like someone to please confirm?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

吃兔兔 2024-08-05 04:56:43

是的,D3DRS_SEPARATEALPHABLENDENABLE。 评论里好像有错别字。

来自 DXSDK:

D3DRS_SRCBLENDALPHA

已枚举 D3DBLEND 的一名成员
类型。 该值将被忽略,除非
D3DRS_SEPARATEALPHABLENDENABLE 是
真的。 默认值为
D3DBLEND_ONE。

D3DRS_DESTBLENDALPHA

已枚举 D3DBLEND 的一名成员
类型。 该值将被忽略,除非
D3DRS_SEPARATEALPHABLENDENABLE 是
真的。 默认值为
D3DBLEND_ZERO。

D3DRS_BLENDOPALPHA

用于选择算术的值
应用于单独 alpha 的操作
渲染状态时混合,
D3DRS_SEPARATEALPHABLENDENABLE,已设置
为真。

有效值由
D3DBLENDOP 枚举类型。 这
默认值为 D3DBLENDOP_ADD。 如果
D3DPMISCCAPS_BLENDOP 设备
不支持能力,那么
执行 D3DBLENDOP_ADD。 看
D3DPMISCCAPS。

Yep, D3DRS_SEPARATEALPHABLENDENABLE. Looks like a typo in the comments.

From the DXSDK:

D3DRS_SRCBLENDALPHA

One member of the D3DBLEND enumerated
type. This value is ignored unless
D3DRS_SEPARATEALPHABLENDENABLE is
true. The default value is
D3DBLEND_ONE.

D3DRS_DESTBLENDALPHA

One member of the D3DBLEND enumerated
type. This value is ignored unless
D3DRS_SEPARATEALPHABLENDENABLE is
true. The default value is
D3DBLEND_ZERO.

D3DRS_BLENDOPALPHA

Value used to select the arithmetic
operation applied to separate alpha
blending when the render state,
D3DRS_SEPARATEALPHABLENDENABLE, is set
to TRUE.

Valid values are defined by the
D3DBLENDOP enumerated type. The
default value is D3DBLENDOP_ADD. If
the D3DPMISCCAPS_BLENDOP device
capability is not supported, then
D3DBLENDOP_ADD is performed. See
D3DPMISCCAPS.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文