all: add support for hy3 like tiling
This commit is contained in:
parent
a41dbae899
commit
cea4187fc0
21 changed files with 1237 additions and 48 deletions
|
|
@ -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() {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue