|
@@ -8,6 +8,7 @@ using PixiEditor.Helpers;
|
|
|
using PixiEditor.Models.DocumentModels;
|
|
|
using PixiEditor.Models.Handlers;
|
|
|
using Drawie.Numerics;
|
|
|
+using PixiEditor.ChangeableDocument.Rendering;
|
|
|
|
|
|
namespace PixiEditor.Models.Rendering;
|
|
|
|
|
@@ -18,6 +19,7 @@ internal class MemberPreviewUpdater
|
|
|
|
|
|
private AnimationKeyFramePreviewRenderer AnimationKeyFramePreviewRenderer { get; }
|
|
|
|
|
|
+
|
|
|
public MemberPreviewUpdater(IDocument doc, DocumentInternalParts internals)
|
|
|
{
|
|
|
this.doc = doc;
|
|
@@ -27,13 +29,13 @@ internal class MemberPreviewUpdater
|
|
|
|
|
|
public void UpdatePreviews(HashSet<Guid> membersToUpdate,
|
|
|
HashSet<Guid> masksToUpdate, HashSet<Guid> nodesToUpdate, HashSet<Guid> keyFramesToUpdate,
|
|
|
- bool ignoreAnimationPreviews)
|
|
|
+ bool ignoreAnimationPreviews, bool renderMiniPreviews)
|
|
|
{
|
|
|
if (!membersToUpdate.Any() && !masksToUpdate.Any() && !nodesToUpdate.Any() &&
|
|
|
!keyFramesToUpdate.Any())
|
|
|
return;
|
|
|
|
|
|
- UpdatePreviewPainters(membersToUpdate, masksToUpdate, nodesToUpdate, keyFramesToUpdate, ignoreAnimationPreviews);
|
|
|
+ UpdatePreviewPainters(membersToUpdate, masksToUpdate, nodesToUpdate, keyFramesToUpdate, ignoreAnimationPreviews, renderMiniPreviews);
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
@@ -42,11 +44,14 @@ internal class MemberPreviewUpdater
|
|
|
/// <param name="members">Members that should be rendered</param>
|
|
|
/// <param name="masksToUpdate">Masks that should be rendered</param>
|
|
|
private void UpdatePreviewPainters(HashSet<Guid> members, HashSet<Guid> masksToUpdate,
|
|
|
- HashSet<Guid> nodesToUpdate, HashSet<Guid> keyFramesToUpdate, bool ignoreAnimationPreviews)
|
|
|
+ HashSet<Guid> nodesToUpdate, HashSet<Guid> keyFramesToUpdate, bool ignoreAnimationPreviews, bool renderLowPriorityPreviews)
|
|
|
{
|
|
|
- RenderWholeCanvasPreview();
|
|
|
- RenderLayersPreview(members);
|
|
|
- RenderMaskPreviews(masksToUpdate);
|
|
|
+ RenderWholeCanvasPreview(renderLowPriorityPreviews);
|
|
|
+ if (renderLowPriorityPreviews)
|
|
|
+ {
|
|
|
+ RenderLayersPreview(members);
|
|
|
+ RenderMaskPreviews(masksToUpdate);
|
|
|
+ }
|
|
|
|
|
|
if (!ignoreAnimationPreviews)
|
|
|
{
|
|
@@ -59,7 +64,8 @@ internal class MemberPreviewUpdater
|
|
|
/// <summary>
|
|
|
/// Re-renders the preview of the whole canvas which is shown as the tab icon
|
|
|
/// </summary>
|
|
|
- private void RenderWholeCanvasPreview()
|
|
|
+ /// <param name="renderMiniPreviews"></param>
|
|
|
+ private void RenderWholeCanvasPreview(bool renderMiniPreviews)
|
|
|
{
|
|
|
var previewSize = StructureHelpers.CalculatePreviewSize(internals.Tracker.Document.Size);
|
|
|
//float scaling = (float)previewSize.X / doc.SizeBindable.X;
|
|
@@ -74,6 +80,21 @@ internal class MemberPreviewUpdater
|
|
|
doc.PreviewPainter.ProcessingColorSpace = internals.Tracker.Document.ProcessingColorSpace;
|
|
|
doc.PreviewPainter.FrameTime = doc.AnimationHandler.ActiveFrameTime;
|
|
|
doc.PreviewPainter.Repaint();
|
|
|
+
|
|
|
+ if(!renderMiniPreviews)
|
|
|
+ return;
|
|
|
+
|
|
|
+ if (doc.MiniPreviewPainter == null)
|
|
|
+ {
|
|
|
+ doc.MiniPreviewPainter = new PreviewPainter(doc.Renderer, doc.Renderer,
|
|
|
+ doc.AnimationHandler.ActiveFrameTime,
|
|
|
+ doc.SizeBindable, internals.Tracker.Document.ProcessingColorSpace);
|
|
|
+ }
|
|
|
+
|
|
|
+ doc.MiniPreviewPainter.DocumentSize = doc.SizeBindable;
|
|
|
+ doc.MiniPreviewPainter.ProcessingColorSpace = internals.Tracker.Document.ProcessingColorSpace;
|
|
|
+ doc.MiniPreviewPainter.FrameTime = doc.AnimationHandler.ActiveFrameTime;
|
|
|
+ doc.MiniPreviewPainter.Repaint();
|
|
|
}
|
|
|
|
|
|
private void RenderLayersPreview(HashSet<Guid> memberGuids)
|