[−][src]Macro vulkayes_core::color_blend_state_expr
Expands to vk::PipelineColorBlendAttachmentStateBuilder
.
Syntax: color : alpha & mask
color
- expression:($src_factor) * src {$op} ($dst_factor) * dst
specifying the source and destination factors (vk::BlendFactor
) and blending operation (vk::BlendOp
).alpha
- expression:($src_factor) * src {$op} ($dst_factor) * dst
specifying the source and destination factors (vk::BlendFactor
) and blending operation (vk::BlendOp
).mask
- value of typevk::ColorComponentFlags
The macro also accepts the token disabled & mask
, which returns a builder with blending disabled.
Example:
// Blends based on alpha, stores the new alpha, doesn't mask anything color_blend_state_expr!( (S * SRC_ALPHA) ADD (D * ONE_MINUS_SRC_ALPHA) : (S * ONE) SUBTRACT (D * ZERO) & vk::ColorComponentFlags::all() ); // Disables blending, doesn't mask anything color_blend_state_expr!( disabled & vk::ColorComponentFlags::all() ); // Same as the first one, but variables are expressions instead of identifiers. color_blend_state_expr!( (S * vk::BlendFactor::SRC_ALPHA) {vk::BlendOp::ADD} (D * vk::BlendFactor::ONE_MINUS_SRC_ALPHA) : (S * vk::BlendFactor::ONE) {vk::BlendOp::SUBTRACT} (D * vk::BlendFactor::ZERO) & vk::ColorComponentFlags::all() );