public void OnRedo() { if (redoStack.Count == 0) { return; } CanvasSnapshot currentCanvas = redoStack.Pop(); this.texture = Instantiate(currentCanvas.CanvasTex) as Texture2D; undoStack.Push(currentCanvas); setTextureToMypaint(currentCanvas.CanvasBuf); //TODO set timer this.texture.Apply(false); }
public void OnUndo() { if (undoStack.Count == 1) // undo stack only have base canvas image { return; } CanvasSnapshot previousCanvas = undoStack.Pop(); CanvasSnapshot currentCanvas = undoStack.Peek(); this.texture = Instantiate(currentCanvas.CanvasTex) as Texture2D; // make clone of texture to perform deep copy redoStack.Push(previousCanvas); // there is no need to deep copy. b/c previousCanvas is popped. setTextureToMypaint(currentCanvas.CanvasBuf); //TODO set timer this.texture.Apply(false); }