Supply solid tiles with the appropriate filter.

Fixes `embrace.svg` in MPVG.
This commit is contained in:
Patrick Walton 2020-04-22 12:53:35 -07:00
parent 104869a6e9
commit 24deb36e9a
1 changed files with 6 additions and 4 deletions

View File

@ -15,7 +15,7 @@ use crate::gpu_data::{Tile, TileBatch};
use crate::paint::{PaintId, PaintMetadata}; use crate::paint::{PaintId, PaintMetadata};
use crate::tile_map::DenseTileMap; use crate::tile_map::DenseTileMap;
use crate::tiles; use crate::tiles;
use pathfinder_content::effects::{BlendMode, Filter}; use pathfinder_content::effects::BlendMode;
use pathfinder_geometry::rect::RectF; use pathfinder_geometry::rect::RectF;
use pathfinder_geometry::vector::Vector2I; use pathfinder_geometry::vector::Vector2I;
use vec_map::VecMap; use vec_map::VecMap;
@ -78,9 +78,11 @@ impl ZBuffer {
// Create a batch if necessary. // Create a batch if necessary.
let paint_tile_batch_texture = paint_metadata.tile_batch_texture(); let paint_tile_batch_texture = paint_metadata.tile_batch_texture();
let paint_filter = paint_metadata.filter();
match solid_tiles.batches.last() { match solid_tiles.batches.last() {
Some(TileBatch { color_texture: tile_batch_texture, .. }) if Some(TileBatch { color_texture: tile_batch_texture, filter: tile_filter, .. }) if
*tile_batch_texture == paint_tile_batch_texture => {} *tile_batch_texture == paint_tile_batch_texture &&
*tile_filter == paint_filter => {}
_ => { _ => {
// Batch break. // Batch break.
// //
@ -89,7 +91,7 @@ impl ZBuffer {
solid_tiles.batches.push(TileBatch { solid_tiles.batches.push(TileBatch {
color_texture: paint_tile_batch_texture, color_texture: paint_tile_batch_texture,
tiles: vec![], tiles: vec![],
filter: Filter::None, filter: paint_filter,
blend_mode: BlendMode::default(), blend_mode: BlendMode::default(),
tile_page: !0, tile_page: !0,
}); });