summaryrefslogtreecommitdiffstats
path: root/gfx/wr/webrender/src/renderer/shade.rs
diff options
context:
space:
mode:
Diffstat (limited to 'gfx/wr/webrender/src/renderer/shade.rs')
-rw-r--r--gfx/wr/webrender/src/renderer/shade.rs48
1 files changed, 48 insertions, 0 deletions
diff --git a/gfx/wr/webrender/src/renderer/shade.rs b/gfx/wr/webrender/src/renderer/shade.rs
index 96e8982aa0..5463e8eb67 100644
--- a/gfx/wr/webrender/src/renderer/shade.rs
+++ b/gfx/wr/webrender/src/renderer/shade.rs
@@ -263,6 +263,7 @@ impl LazilyCompiledShader {
VertexArrayKind::Scale => &desc::SCALE,
VertexArrayKind::Resolve => &desc::RESOLVE,
VertexArrayKind::SvgFilter => &desc::SVG_FILTER,
+ VertexArrayKind::SvgFilterNode => &desc::SVG_FILTER_NODE,
VertexArrayKind::Composite => &desc::COMPOSITE,
VertexArrayKind::Clear => &desc::CLEAR,
VertexArrayKind::Copy => &desc::COPY,
@@ -601,6 +602,7 @@ pub struct Shaders {
pub cs_radial_gradient: LazilyCompiledShader,
pub cs_conic_gradient: LazilyCompiledShader,
pub cs_svg_filter: LazilyCompiledShader,
+ pub cs_svg_filter_node: LazilyCompiledShader,
// Brush shaders
brush_solid: BrushShader,
@@ -632,6 +634,8 @@ pub struct Shaders {
ps_split_composite: LazilyCompiledShader,
pub ps_quad_textured: LazilyCompiledShader,
+ pub ps_quad_radial_gradient: LazilyCompiledShader,
+ pub ps_quad_conic_gradient: LazilyCompiledShader,
pub ps_mask: LazilyCompiledShader,
pub ps_mask_fast: LazilyCompiledShader,
pub ps_clear: LazilyCompiledShader,
@@ -768,6 +772,16 @@ impl Shaders {
profile,
)?;
+ let cs_svg_filter_node = LazilyCompiledShader::new(
+ ShaderKind::Cache(VertexArrayKind::SvgFilterNode),
+ "cs_svg_filter_node",
+ &[],
+ device,
+ options.precache_flags,
+ &shader_list,
+ profile,
+ )?;
+
let ps_mask = LazilyCompiledShader::new(
ShaderKind::Cache(VertexArrayKind::Mask),
"ps_quad_mask",
@@ -888,6 +902,26 @@ impl Shaders {
profile,
)?;
+ let ps_quad_radial_gradient = LazilyCompiledShader::new(
+ ShaderKind::Primitive,
+ "ps_quad_radial_gradient",
+ &[],
+ device,
+ options.precache_flags,
+ &shader_list,
+ profile,
+ )?;
+
+ let ps_quad_conic_gradient = LazilyCompiledShader::new(
+ ShaderKind::Primitive,
+ "ps_quad_conic_gradient",
+ &[],
+ device,
+ options.precache_flags,
+ &shader_list,
+ profile,
+ )?;
+
let ps_split_composite = LazilyCompiledShader::new(
ShaderKind::Primitive,
"ps_split_composite",
@@ -1107,6 +1141,7 @@ impl Shaders {
cs_border_solid,
cs_scale,
cs_svg_filter,
+ cs_svg_filter_node,
brush_solid,
brush_image,
brush_fast_image,
@@ -1122,6 +1157,8 @@ impl Shaders {
ps_text_run,
ps_text_run_dual_source,
ps_quad_textured,
+ ps_quad_radial_gradient,
+ ps_quad_conic_gradient,
ps_mask,
ps_mask_fast,
ps_split_composite,
@@ -1160,6 +1197,8 @@ impl Shaders {
) -> &mut LazilyCompiledShader {
match pattern {
PatternKind::ColorOrTexture => &mut self.ps_quad_textured,
+ PatternKind::RadialGradient => &mut self.ps_quad_radial_gradient,
+ PatternKind::ConicGradient => &mut self.ps_quad_conic_gradient,
PatternKind::Mask => unreachable!(),
}
}
@@ -1175,6 +1214,12 @@ impl Shaders {
BatchKind::Quad(PatternKind::ColorOrTexture) => {
&mut self.ps_quad_textured
}
+ BatchKind::Quad(PatternKind::RadialGradient) => {
+ &mut self.ps_quad_radial_gradient
+ }
+ BatchKind::Quad(PatternKind::ConicGradient) => {
+ &mut self.ps_quad_conic_gradient
+ }
BatchKind::Quad(PatternKind::Mask) => {
unreachable!();
}
@@ -1268,6 +1313,7 @@ impl Shaders {
self.cs_blur_a8.deinit(device);
self.cs_blur_rgba8.deinit(device);
self.cs_svg_filter.deinit(device);
+ self.cs_svg_filter_node.deinit(device);
self.brush_solid.deinit(device);
self.brush_blend.deinit(device);
self.brush_mix_blend.deinit(device);
@@ -1305,6 +1351,8 @@ impl Shaders {
self.cs_border_segment.deinit(device);
self.ps_split_composite.deinit(device);
self.ps_quad_textured.deinit(device);
+ self.ps_quad_radial_gradient.deinit(device);
+ self.ps_quad_conic_gradient.deinit(device);
self.ps_mask.deinit(device);
self.ps_mask_fast.deinit(device);
self.ps_clear.deinit(device);