public void SetPalette(Palette palette) { uPixelCanvasOp setPaletteOp = new uPixelCanvasOp(); setPaletteOp.type = uPixelCanvasOp.OpType.PaletteSet; setPaletteOp.palette = palette; DoCanvasOperation(setPaletteOp); }
public void SetFrame(int frame) { uPixelCanvasOp setFrame = new uPixelCanvasOp(); setFrame.soft = true; setFrame.frame = frame; setFrame.type = uPixelCanvasOp.OpType.SelectFrame; DoCanvasOperation(setFrame); }
public void Resize(Vector2Int newSize) { uPixelCanvasOp resizeOp = new uPixelCanvasOp(); resizeOp.type = uPixelCanvasOp.OpType.Resize; resizeOp.resize = new uPixelCanvasOp.ResizeData(); resizeOp.resize.size = newSize; DoCanvasOperation(resizeOp); }
public void AddFrame(int insertAfter, bool duplicate = false) { uPixelCanvasOp addFrameOp = new uPixelCanvasOp(); addFrameOp.type = uPixelCanvasOp.OpType.AddFrame; addFrameOp.frame = insertAfter; addFrameOp.duplicate = duplicate; DoCanvasOperation(addFrameOp); }
public void DoBlit(Vector2Int offset, Vector2Int size, Color32[] pixels, int frameIndex) { uPixelCanvasOp blitOp = new uPixelCanvasOp(); blitOp.type = uPixelCanvasOp.OpType.BlitOp; blitOp.blitData = new uPixelCanvasOp.BlitData(); blitOp.blitData.size = size; blitOp.blitData.offset = offset; blitOp.blitData.pixels = pixels; blitOp.blitData.frameIndex = frameIndex; DoCanvasOperation(blitOp); }
public void DoCanvasOperation(uPixelCanvasOp op) { List <uPixelCanvasOp> rebaseFuture = null; // if a Redo history exists, calling this destroys this if (CanvasOps.Count > CanvasOpsTip) { if (FreezeFuture) { rebaseFuture = CanvasOps.GetRange(CanvasOpsTip, CanvasOps.Count - CanvasOpsTip); } CanvasOps.RemoveRange(CanvasOpsTip, CanvasOps.Count - CanvasOpsTip); TrimKeyFrames(); } // Soft ops replace each other if (op.soft && CanvasOps[CanvasOps.Count - 1].soft) { CanvasOps.RemoveAt(CanvasOps.Count - 1); } CanvasOps.Add(op); UnityEditor.Undo.RecordObject(this, string.Format("uPixelCanvas: {0}", op.GetType().ToString())); ExecuteCanvasOps(CanvasOpsTip, CanvasOpsTip + 1); if (CanvasOps.Count > 1) { if (CanvasOps[CanvasOps.Count - 2].soft) { CanvasOps.RemoveAt(CanvasOps.Count - 2); } } CanvasOpsTip = CanvasOps.Count; ShadowCanvasOpTip = CanvasOpsTip; if (CanvasOpsTip % KEYFRAME_RATE == 0 && CanvasOpsTip > 0) { GenerateKeyFrameNow(); } if (rebaseFuture != null) { CanvasOps.AddRange(rebaseFuture); } }
protected virtual void OnMouseUp(MouseUpEvent e) { if (!m_Active || !target.HasMouseCapture() || !CanStopManipulation(e)) { return; } m_Active = false; //uPixel.FlushBuffer(); pixelOp.positions = uPixel.GetBrush(); pixelOp.value = (byte)uPixel.paletteIndex; pixelOp.frame = uPixel.pixelAsset.FrameIndex; if (pixelOp.positions.Count > 0) { uPixel.pixelAsset.DoCanvasOperation(pixelOp); uPixel.m_HistoryCache.ClearCache(uPixel.pixelAsset.GetHistoryLength() - 1); pixelOp = new uPixelCanvasOp(); } uPixel.RefreshInspector(); target.ReleaseMouse(); e.StopPropagation(); }