mirror of
https://github.com/gfx-rs/wgpu.git
synced 2024-11-23 07:14:01 +00:00
hal/vk: use stencil read/write masks
This commit is contained in:
parent
36220b4da5
commit
6bc896fe8c
@ -698,14 +698,18 @@ pub fn map_stencil_op(op: wgt::StencilOperation) -> vk::StencilOp {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn map_stencil_face(face: &wgt::StencilFaceState) -> vk::StencilOpState {
|
pub fn map_stencil_face(
|
||||||
|
face: &wgt::StencilFaceState,
|
||||||
|
compare_mask: u32,
|
||||||
|
write_mask: u32,
|
||||||
|
) -> vk::StencilOpState {
|
||||||
vk::StencilOpState {
|
vk::StencilOpState {
|
||||||
fail_op: map_stencil_op(face.fail_op),
|
fail_op: map_stencil_op(face.fail_op),
|
||||||
pass_op: map_stencil_op(face.pass_op),
|
pass_op: map_stencil_op(face.pass_op),
|
||||||
depth_fail_op: map_stencil_op(face.depth_fail_op),
|
depth_fail_op: map_stencil_op(face.depth_fail_op),
|
||||||
compare_op: map_comparison(face.compare),
|
compare_op: map_comparison(face.compare),
|
||||||
compare_mask: !0,
|
compare_mask,
|
||||||
write_mask: !0,
|
write_mask,
|
||||||
reference: 0,
|
reference: 0,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1470,8 +1470,9 @@ impl crate::Device<super::Api> for super::Device {
|
|||||||
.depth_compare_op(conv::map_comparison(ds.depth_compare));
|
.depth_compare_op(conv::map_comparison(ds.depth_compare));
|
||||||
}
|
}
|
||||||
if ds.stencil.is_enabled() {
|
if ds.stencil.is_enabled() {
|
||||||
let front = conv::map_stencil_face(&ds.stencil.front);
|
let s = &ds.stencil;
|
||||||
let back = conv::map_stencil_face(&ds.stencil.back);
|
let front = conv::map_stencil_face(&s.front, s.read_mask, s.write_mask);
|
||||||
|
let back = conv::map_stencil_face(&s.back, s.read_mask, s.write_mask);
|
||||||
vk_depth_stencil = vk_depth_stencil
|
vk_depth_stencil = vk_depth_stencil
|
||||||
.stencil_test_enable(true)
|
.stencil_test_enable(true)
|
||||||
.front(front)
|
.front(front)
|
||||||
|
Loading…
Reference in New Issue
Block a user