mirror of
https://github.com/aelurum/AssetStudio.git
synced 2025-05-26 13:50:21 -04:00
Fix cutout glitch in some packed sprites
- Improved performance (https://github.com/Perfare/AssetStudio/issues/1015)
This commit is contained in:
parent
5944dd8c58
commit
11b9ca37da
@ -130,20 +130,24 @@ namespace AssetStudio
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
var triangles = GetTriangles(m_Sprite.m_RD);
|
|
||||||
var polygons = triangles.Select(x => new Polygon(new LinearLineSegment(x.Select(y => new PointF(y.X, y.Y)).ToArray()))).ToArray();
|
|
||||||
IPathCollection path = new PathCollection(polygons);
|
|
||||||
var matrix = Matrix3x2.CreateScale(m_Sprite.m_PixelsToUnits);
|
var matrix = Matrix3x2.CreateScale(m_Sprite.m_PixelsToUnits);
|
||||||
matrix *= Matrix3x2.CreateTranslation(m_Sprite.m_Rect.width * m_Sprite.m_Pivot.X - textureRectOffset.X, m_Sprite.m_Rect.height * m_Sprite.m_Pivot.Y - textureRectOffset.Y);
|
matrix *= Matrix3x2.CreateTranslation(m_Sprite.m_Rect.width * m_Sprite.m_Pivot.X - textureRectOffset.X, m_Sprite.m_Rect.height * m_Sprite.m_Pivot.Y - textureRectOffset.Y);
|
||||||
path = path.Transform(matrix);
|
var triangles = GetTriangles(m_Sprite.m_RD);
|
||||||
var graphicsOptions = new GraphicsOptions
|
var points = triangles.Select(x => x.Select(y => new PointF(y.X, y.Y)).ToArray());
|
||||||
|
var pathBuilder = new PathBuilder(matrix);
|
||||||
|
foreach (var p in points)
|
||||||
{
|
{
|
||||||
Antialias = false,
|
pathBuilder.AddLines(p);
|
||||||
AlphaCompositionMode = PixelAlphaCompositionMode.DestOut
|
pathBuilder.CloseFigure();
|
||||||
};
|
}
|
||||||
|
var path = pathBuilder.Build();
|
||||||
var options = new DrawingOptions
|
var options = new DrawingOptions
|
||||||
{
|
{
|
||||||
GraphicsOptions = graphicsOptions
|
GraphicsOptions = new GraphicsOptions
|
||||||
|
{
|
||||||
|
Antialias = false,
|
||||||
|
AlphaCompositionMode = PixelAlphaCompositionMode.DestOut
|
||||||
|
}
|
||||||
};
|
};
|
||||||
using (var mask = new Image<Bgra32>(rect.Width, rect.Height, SixLabors.ImageSharp.Color.Black))
|
using (var mask = new Image<Bgra32>(rect.Width, rect.Height, SixLabors.ImageSharp.Color.Black))
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user