Skip to content

Commit 2264ad4

Browse files
committed
Generate RGBA=R|G|B|A helper constant for ColorComponentFlags
When the misleading `all()` function was removed in #478 it also made all color components for `ColorComponentFlags` significantly more verbose to write, see #536.
1 parent ab36e84 commit 2264ad4

File tree

4 files changed

+12
-8
lines changed

4 files changed

+12
-8
lines changed

ash/src/vk/bitflags.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -241,6 +241,7 @@ impl ColorComponentFlags {
241241
pub const G: Self = Self(0b10);
242242
pub const B: Self = Self(0b100);
243243
pub const A: Self = Self(0b1000);
244+
pub const RGBA: Self = Self(Self::R.0 | Self::G.0 | Self::B.0 | Self::A.0);
244245
}
245246
#[repr(transparent)]
246247
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]

examples/src/bin/texture.rs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -666,10 +666,7 @@ fn main() {
666666
src_alpha_blend_factor: vk::BlendFactor::ZERO,
667667
dst_alpha_blend_factor: vk::BlendFactor::ZERO,
668668
alpha_blend_op: vk::BlendOp::ADD,
669-
color_write_mask: vk::ColorComponentFlags::R
670-
| vk::ColorComponentFlags::G
671-
| vk::ColorComponentFlags::B
672-
| vk::ColorComponentFlags::A,
669+
color_write_mask: vk::ColorComponentFlags::RGBA,
673670
}];
674671
let color_blend_state = vk::PipelineColorBlendStateCreateInfo::builder()
675672
.logic_op(vk::LogicOp::CLEAR)

examples/src/bin/triangle.rs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -319,10 +319,7 @@ fn main() {
319319
src_alpha_blend_factor: vk::BlendFactor::ZERO,
320320
dst_alpha_blend_factor: vk::BlendFactor::ZERO,
321321
alpha_blend_op: vk::BlendOp::ADD,
322-
color_write_mask: vk::ColorComponentFlags::R
323-
| vk::ColorComponentFlags::G
324-
| vk::ColorComponentFlags::B
325-
| vk::ColorComponentFlags::A,
322+
color_write_mask: vk::ColorComponentFlags::RGBA,
326323
}];
327324
let color_blend_state = vk::PipelineColorBlendStateCreateInfo::builder()
328325
.logic_op(vk::LogicOp::CLEAR)

generator/src/lib.rs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1455,9 +1455,18 @@ pub fn bitflags_impl_block(
14551455
}
14561456
});
14571457

1458+
let extra_consts = if ident == "ColorComponentFlags" {
1459+
quote!(
1460+
pub const RGBA: Self = Self(Self::R.0 | Self::G.0 | Self::B.0 | Self::A.0);
1461+
)
1462+
} else {
1463+
quote!()
1464+
};
1465+
14581466
quote! {
14591467
impl #ident {
14601468
#(#variants)*
1469+
#extra_consts
14611470
}
14621471
}
14631472
}

0 commit comments

Comments
 (0)