subsurface_widget: Take owned SubsurfaceBuffer
This type is an `Arc`, so there's no major benefit to using a reference, or a `Cow` to make it generic. Drag surfaces currently require a `'static` `Element`, so this is needed their.
This commit is contained in:
parent
dbbaa4f442
commit
c18f5f6dda
1 changed files with 9 additions and 10 deletions
|
|
@ -582,17 +582,16 @@ pub(crate) fn take_subsurfaces() -> Vec<SubsurfaceInfo> {
|
||||||
}
|
}
|
||||||
|
|
||||||
#[must_use]
|
#[must_use]
|
||||||
pub struct Subsurface<'a> {
|
pub struct Subsurface {
|
||||||
buffer_size: Size<f32>,
|
buffer_size: Size<f32>,
|
||||||
buffer: &'a SubsurfaceBuffer,
|
buffer: SubsurfaceBuffer,
|
||||||
width: Length,
|
width: Length,
|
||||||
height: Length,
|
height: Length,
|
||||||
content_fit: ContentFit,
|
content_fit: ContentFit,
|
||||||
alpha: f32,
|
alpha: f32,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<'a, Message, Theme, Renderer> Widget<Message, Theme, Renderer>
|
impl<Message, Theme, Renderer> Widget<Message, Theme, Renderer> for Subsurface
|
||||||
for Subsurface<'a>
|
|
||||||
where
|
where
|
||||||
Renderer: renderer::Renderer,
|
Renderer: renderer::Renderer,
|
||||||
{
|
{
|
||||||
|
|
@ -648,11 +647,11 @@ where
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<'a> Subsurface<'a> {
|
impl Subsurface {
|
||||||
pub fn new(
|
pub fn new(
|
||||||
buffer_width: u32,
|
buffer_width: u32,
|
||||||
buffer_height: u32,
|
buffer_height: u32,
|
||||||
buffer: &'a SubsurfaceBuffer,
|
buffer: SubsurfaceBuffer,
|
||||||
) -> Self {
|
) -> Self {
|
||||||
Self {
|
Self {
|
||||||
buffer_size: Size::new(buffer_width as f32, buffer_height as f32),
|
buffer_size: Size::new(buffer_width as f32, buffer_height as f32),
|
||||||
|
|
@ -686,13 +685,13 @@ impl<'a> Subsurface<'a> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<'a, Message, Theme, Renderer> From<Subsurface<'a>>
|
impl<Message, Theme, Renderer> From<Subsurface>
|
||||||
for Element<'a, Message, Theme, Renderer>
|
for Element<'static, Message, Theme, Renderer>
|
||||||
where
|
where
|
||||||
Message: Clone + 'a,
|
Message: Clone,
|
||||||
Renderer: renderer::Renderer,
|
Renderer: renderer::Renderer,
|
||||||
{
|
{
|
||||||
fn from(subsurface: Subsurface<'a>) -> Self {
|
fn from(subsurface: Subsurface) -> Self {
|
||||||
Self::new(subsurface)
|
Self::new(subsurface)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue