Skip to content

Commit ec41864

Browse files
vorporealamrbashir
andauthored
fix(dx12): map composite alpha mode (gfx-rs#7117) (#3)
* fix(dx12): map composite alpha mode closes gfx-rs#7108 * changelog entry * add composite modes based on surface target * fix missing `in` in change log entry Co-authored-by: Amr Bashir <github@amrbashir.me>
1 parent 58b2f07 commit ec41864

File tree

2 files changed

+21
-3
lines changed

2 files changed

+21
-3
lines changed

wgpu-hal/src/auxil/dxgi/conv.rs

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -281,6 +281,13 @@ pub fn map_vertex_format(format: wgt::VertexFormat) -> Dxgi::Common::DXGI_FORMAT
281281
}
282282
}
283283

284-
pub fn map_acomposite_alpha_mode(_mode: wgt::CompositeAlphaMode) -> Dxgi::Common::DXGI_ALPHA_MODE {
285-
Dxgi::Common::DXGI_ALPHA_MODE_IGNORE
284+
pub fn map_acomposite_alpha_mode(mode: wgt::CompositeAlphaMode) -> Dxgi::Common::DXGI_ALPHA_MODE {
285+
match mode {
286+
wgt::CompositeAlphaMode::PreMultiplied => Dxgi::Common::DXGI_ALPHA_MODE_PREMULTIPLIED,
287+
wgt::CompositeAlphaMode::PostMultiplied => Dxgi::Common::DXGI_ALPHA_MODE_STRAIGHT,
288+
wgt::CompositeAlphaMode::Opaque => Dxgi::Common::DXGI_ALPHA_MODE_IGNORE,
289+
wgt::CompositeAlphaMode::Auto | wgt::CompositeAlphaMode::Inherit => {
290+
Dxgi::Common::DXGI_ALPHA_MODE_UNSPECIFIED
291+
}
292+
}
286293
}

wgpu-hal/src/dx12/adapter.rs

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -828,7 +828,18 @@ impl crate::Adapter for super::Adapter {
828828
| crate::TextureUses::COPY_SRC
829829
| crate::TextureUses::COPY_DST,
830830
present_modes,
831-
composite_alpha_modes: vec![wgt::CompositeAlphaMode::Opaque],
831+
composite_alpha_modes: match surface.target {
832+
SurfaceTarget::WndHandle(_) => vec![wgt::CompositeAlphaMode::Opaque],
833+
SurfaceTarget::Visual(_)
834+
| SurfaceTarget::SurfaceHandle(_)
835+
| SurfaceTarget::SwapChainPanel(_) => vec![
836+
wgt::CompositeAlphaMode::Auto,
837+
wgt::CompositeAlphaMode::Inherit,
838+
wgt::CompositeAlphaMode::Opaque,
839+
wgt::CompositeAlphaMode::PostMultiplied,
840+
wgt::CompositeAlphaMode::PreMultiplied,
841+
],
842+
},
832843
})
833844
}
834845

0 commit comments

Comments
 (0)