shader_element: Store program type instead of shader

This commit is contained in:
Ivan Molodetskikh
2024-05-03 21:21:58 +04:00
parent 5c32031111
commit 8ab50f9d1c
13 changed files with 148 additions and 111 deletions
+15 -19
View File
@@ -54,30 +54,26 @@ impl TestCase for GradientAngle {
fn render(
&mut self,
renderer: &mut GlesRenderer,
_renderer: &mut GlesRenderer,
size: Size<i32, Physical>,
) -> Vec<Box<dyn RenderElement<GlesRenderer>>> {
let (a, b) = (size.w / 4, size.h / 4);
let size = (size.w - a * 2, size.h - b * 2);
let area = Rectangle::from_loc_and_size((a, b), size);
BorderRenderElement::shader(renderer)
.map(|shader| {
BorderRenderElement::new(
shader,
Scale::from(1.),
area,
area,
[1., 0., 0., 1.],
[0., 1., 0., 1.],
self.angle - FRAC_PI_2,
area,
0.,
CornerRadius::default(),
)
})
.into_iter()
.map(|elem| Box::new(elem) as _)
.collect()
[BorderRenderElement::new(
Scale::from(1.),
area,
area,
[1., 0., 0., 1.],
[0., 1., 0., 1.],
self.angle - FRAC_PI_2,
area,
0.,
CornerRadius::default(),
)]
.into_iter()
.map(|elem| Box::new(elem) as _)
.collect()
}
}
+13 -17
View File
@@ -98,23 +98,19 @@ impl TestCase for GradientArea {
);
rv.extend(
BorderRenderElement::shader(renderer)
.map(|shader| {
BorderRenderElement::new(
shader,
Scale::from(1.),
area,
g_area,
[1., 0., 0., 1.],
[0., 1., 0., 1.],
FRAC_PI_4,
area,
0.,
CornerRadius::default(),
)
})
.into_iter()
.map(|elem| Box::new(elem) as _),
[BorderRenderElement::new(
Scale::from(1.),
area,
g_area,
[1., 0., 0., 1.],
[0., 1., 0., 1.],
FRAC_PI_4,
area,
0.,
CornerRadius::default(),
)]
.into_iter()
.map(|elem| Box::new(elem) as _),
);
rv