diff options
author | DeDiamondPro <67508414+DeDiamondPro@users.noreply.github.com> | 2022-09-11 21:08:52 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-09-11 15:08:52 -0400 |
commit | 158dfe128df8d95971b7d0db2bd5dfaf700818b3 (patch) | |
tree | 291992ea85b39f2cb94824c9aae1835a4d6fc17d /src/main/java/cc/polyfrost/oneconfig/renderer | |
parent | 865e1eb14c4f3df17c6da530b3cd2fefd5037f7d (diff) | |
download | OneConfig-158dfe128df8d95971b7d0db2bd5dfaf700818b3.tar.gz OneConfig-158dfe128df8d95971b7d0db2bd5dfaf700818b3.tar.bz2 OneConfig-158dfe128df8d95971b7d0db2bd5dfaf700818b3.zip |
fix: fix description bugs
Diffstat (limited to 'src/main/java/cc/polyfrost/oneconfig/renderer')
-rw-r--r-- | src/main/java/cc/polyfrost/oneconfig/renderer/scissor/ScissorManager.java | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/src/main/java/cc/polyfrost/oneconfig/renderer/scissor/ScissorManager.java b/src/main/java/cc/polyfrost/oneconfig/renderer/scissor/ScissorManager.java index 6b5ea3f..56d3f45 100644 --- a/src/main/java/cc/polyfrost/oneconfig/renderer/scissor/ScissorManager.java +++ b/src/main/java/cc/polyfrost/oneconfig/renderer/scissor/ScissorManager.java @@ -34,7 +34,8 @@ import java.util.ArrayList; * Provides an easy way to manage and group scissor rectangles. */ public class ScissorManager { - private static final ArrayList<Scissor> scissors = new ArrayList<>(); + private static final ArrayList<ArrayList<Scissor>> previousScissors = new ArrayList<>(); + private static ArrayList<Scissor> scissors = new ArrayList<>(); /** * Adds and applies a scissor rectangle to the list of scissor rectangles. @@ -77,9 +78,26 @@ public class ScissorManager { NanoVG.nvgResetScissor(vg); } + /** + * Save the current scissors + */ + public static void save() { + previousScissors.add(new ArrayList<>(scissors)); + } + + /** + * Restore the scissors from the last save + * + * @param vg The NanoVG context. + */ + public static void restore(long vg) { + scissors = previousScissors.remove(0); + applyScissors(vg); + } + private static void applyScissors(long vg) { NanoVG.nvgResetScissor(vg); - if (scissors.size() <= 0) return; + if (scissors.size() == 0) return; Scissor finalScissor = getFinalScissor(scissors); NanoVG.nvgScissor(vg, finalScissor.x, finalScissor.y, finalScissor.width, finalScissor.height); } |