1
0
Fork 0
forked from wry/wry

all: add support for hy3 like tiling

This commit is contained in:
kossLAN 2026-04-10 13:16:35 -04:00
parent a41dbae899
commit cea4187fc0
No known key found for this signature in database
21 changed files with 1237 additions and 48 deletions

View file

@ -254,6 +254,7 @@ struct VulkanRoundedFillOp {
border_width: f32,
scale: f32,
range_address: DeviceAddress,
z_order: u32,
}
struct VulkanRoundedTexOp {
@ -923,7 +924,7 @@ impl VulkanRenderer {
enum Key {
Fill { color: [u32; 4] },
Tex(usize),
RoundedFill { color: [u32; 4] },
RoundedFill { z_order: u32, color: [u32; 4] },
RoundedTex(usize),
}
match o {
@ -932,6 +933,7 @@ impl VulkanRenderer {
},
VulkanOp::Tex(t) => Key::Tex(t.index),
VulkanOp::RoundedFill(f) => Key::RoundedFill {
z_order: f.z_order,
color: f.color.map(|c| c.to_bits()),
},
VulkanOp::RoundedTex(t) => Key::RoundedTex(t.index),
@ -1152,6 +1154,7 @@ impl VulkanRenderer {
border_width: rf.border_width,
scale: rf.scale,
range_address: 0,
z_order: rf.z_order,
}));
}
}
@ -2385,12 +2388,13 @@ impl VulkanRenderer {
};
(opaque, c.target)
}
GfxApiOpt::RoundedFillRect(_) => {
// Rounded rects are never fully opaque due to AA at corners
continue;
GfxApiOpt::RoundedFillRect(rf) => {
// Rounded rects are never fully opaque due to AA at corners,
// but they do paint pixels and need paint regions.
(false, rf.rect)
}
GfxApiOpt::RoundedCopyTexture(_) => {
continue;
GfxApiOpt::RoundedCopyTexture(ct) => {
(false, ct.target)
}
};
if opaque || bb.is_none() {