diff options
author | DeDiamondPro <67508414+DeDiamondPro@users.noreply.github.com> | 2022-09-07 22:20:00 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-09-07 16:20:00 -0400 |
commit | 7c077e278b7266950a968a7e7f2f28b9a140ed96 (patch) | |
tree | 56b351874c48126f70e4ef6cbcf914ea832bdcd9 /src/main/java/cc/polyfrost/oneconfig/renderer | |
parent | 17cfe96255f1ec3ab5609aa153d4abed2075c435 (diff) | |
download | OneConfig-7c077e278b7266950a968a7e7f2f28b9a140ed96.tar.gz OneConfig-7c077e278b7266950a968a7e7f2f28b9a140ed96.tar.bz2 OneConfig-7c077e278b7266950a968a7e7f2f28b9a140ed96.zip |
new: option descriptions (#127)
Diffstat (limited to 'src/main/java/cc/polyfrost/oneconfig/renderer')
-rw-r--r-- | src/main/java/cc/polyfrost/oneconfig/renderer/AssetLoader.java | 46 | ||||
-rw-r--r-- | src/main/java/cc/polyfrost/oneconfig/renderer/NVGAsset.java | 25 |
2 files changed, 60 insertions, 11 deletions
diff --git a/src/main/java/cc/polyfrost/oneconfig/renderer/AssetLoader.java b/src/main/java/cc/polyfrost/oneconfig/renderer/AssetLoader.java index 4fe8c0b..3e70ce1 100644 --- a/src/main/java/cc/polyfrost/oneconfig/renderer/AssetLoader.java +++ b/src/main/java/cc/polyfrost/oneconfig/renderer/AssetLoader.java @@ -59,8 +59,8 @@ public final class AssetLoader { } public static final int DEFAULT_FLAGS = NanoVG.NVG_IMAGE_REPEATX | NanoVG.NVG_IMAGE_REPEATY | NanoVG.NVG_IMAGE_GENERATE_MIPMAPS; - private final HashMap<String, Integer> imageHashMap = new HashMap<>(); - private final HashMap<String, Integer> svgHashMap = new HashMap<>(); + private final HashMap<String, NVGAsset> imageHashMap = new HashMap<>(); + private final HashMap<String, NVGAsset> svgHashMap = new HashMap<>(); public static AssetLoader INSTANCE = new AssetLoader(); /** @@ -87,7 +87,7 @@ public final class AssetLoader { return false; } - imageHashMap.put(fileName, NanoVG.nvgCreateImageRGBA(vg, width[0], height[0], flags, buffer)); + imageHashMap.put(fileName, new NVGAsset(NanoVG.nvgCreateImageRGBA(vg, width[0], height[0], flags, buffer), width[0], height[0])); return true; } return true; @@ -155,7 +155,7 @@ public final class AssetLoader { NanoSVG.nsvgDeleteRasterizer(rasterizer); NanoSVG.nsvgDelete(svg); - svgHashMap.put(name, NanoVG.nvgCreateImageRGBA(vg, w, h, flags, image)); + svgHashMap.put(name, new NVGAsset(NanoVG.nvgCreateImageRGBA(vg, w, h, flags, image), w, h)); return true; } catch (Exception e) { System.err.println("Failed to parse SVG file"); @@ -201,6 +201,18 @@ public final class AssetLoader { * @see AssetLoader#loadImage(long, String) */ public int getImage(String fileName) { + return imageHashMap.get(fileName).getImage(); + } + + /** + * Get a loaded assets from the cache. + * <p><b>Requires the assets to have been loaded first.</b></p> + * + * @param fileName The name of the file to load. + * @return The image and its data + * @see AssetLoader#loadImage(long, String) + */ + public NVGAsset getNVGImage(String fileName) { return imageHashMap.get(fileName); } @@ -213,7 +225,7 @@ public final class AssetLoader { * @see AssetLoader#loadImage(long, String) */ public void removeImage(long vg, String fileName) { - NanoVG.nvgDeleteImage(vg, imageHashMap.get(fileName)); + NanoVG.nvgDeleteImage(vg, imageHashMap.get(fileName).getImage()); imageHashMap.remove(fileName); } @@ -224,9 +236,9 @@ public final class AssetLoader { * @param vg The NanoVG context. */ public void clearImages(long vg) { - HashMap<String, Integer> temp = new HashMap<>(imageHashMap); + HashMap<String, NVGAsset> temp = new HashMap<>(imageHashMap); for (String image : temp.keySet()) { - NanoVG.nvgDeleteImage(vg, imageHashMap.get(image)); + NanoVG.nvgDeleteImage(vg, imageHashMap.get(image).getImage()); imageHashMap.remove(image); } } @@ -241,7 +253,19 @@ public final class AssetLoader { */ public int getSVG(String fileName, float width, float height) { String name = fileName + "-" + width + "-" + height; - return svgHashMap.get(name); + return svgHashMap.get(name).getImage(); + } + + /** + * Get a loaded assets from the cache. + * <p><b>Requires the assets to have been loaded first.</b></p> + * + * @param fileName The name of the file to load. + * @return The SVG and its data + * @see AssetLoader#loadImage(long, String) + */ + public NVGAsset getNVGSVG(String fileName) { + return svgHashMap.get(fileName); } /** @@ -254,7 +278,7 @@ public final class AssetLoader { */ public void removeSVG(long vg, String fileName, float width, float height) { String name = fileName + "-" + width + "-" + height; - NanoVG.nvgDeleteImage(vg, imageHashMap.get(name)); + NanoVG.nvgDeleteImage(vg, imageHashMap.get(name).getImage()); svgHashMap.remove(name); } @@ -265,9 +289,9 @@ public final class AssetLoader { * @param vg The NanoVG context. */ public void clearSVGs(long vg) { - HashMap<String, Integer> temp = new HashMap<>(svgHashMap); + HashMap<String, NVGAsset> temp = new HashMap<>(svgHashMap); for (String image : temp.keySet()) { - NanoVG.nvgDeleteImage(vg, svgHashMap.get(image)); + NanoVG.nvgDeleteImage(vg, svgHashMap.get(image).getImage()); svgHashMap.remove(image); } } diff --git a/src/main/java/cc/polyfrost/oneconfig/renderer/NVGAsset.java b/src/main/java/cc/polyfrost/oneconfig/renderer/NVGAsset.java new file mode 100644 index 0000000..b5253e6 --- /dev/null +++ b/src/main/java/cc/polyfrost/oneconfig/renderer/NVGAsset.java @@ -0,0 +1,25 @@ +package cc.polyfrost.oneconfig.renderer; + +public class NVGAsset { + private final int image; + private final int width; + private final int height; + + protected NVGAsset(int image, int width, int height) { + this.image = image; + this.width = width; + this.height = height; + } + + public int getImage() { + return image; + } + + public int getWidth() { + return width; + } + + public int getHeight() { + return height; + } +} |