Skip to content

Commit b51ca0c

Browse files
committed
Add image view map
1 parent 5acb771 commit b51ca0c

1 file changed

Lines changed: 16 additions & 0 deletions

File tree

src/main/java/net/vulkanmod/vulkan/texture/VulkanImage.java

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package net.vulkanmod.vulkan.texture;
22

3+
import it.unimi.dsi.fastutil.ints.Int2LongArrayMap;
34
import net.vulkanmod.render.texture.ImageUploadHelper;
45
import net.vulkanmod.vulkan.Renderer;
56
import net.vulkanmod.vulkan.Vulkan;
@@ -39,6 +40,7 @@ public class VulkanImage {
3940
private long id;
4041
private long allocation;
4142
private long mainImageView;
43+
private final Int2LongArrayMap imageViews = new Int2LongArrayMap(4);
4244

4345
private final long[] levelImageViews;
4446

@@ -440,6 +442,20 @@ public long getImageView() {
440442
return mainImageView;
441443
}
442444

445+
public long getImageView(int format) {
446+
if (this.format == format) {
447+
return this.mainImageView;
448+
}
449+
450+
long imageView = this.imageViews.get(format);
451+
if (imageView == VK_NULL_HANDLE) {
452+
imageView = createImageView(this.id, VK_IMAGE_VIEW_TYPE_2D, format, this.aspect, this.arrayLayers, 0, this.mipLevels);
453+
this.imageViews.put(format, imageView);
454+
}
455+
456+
return imageView;
457+
}
458+
443459
public long getLevelImageView(int i) {
444460
if (this.levelImageViews[i] == 0L) {
445461
this.levelImageViews[i] = createImageView(this.id, VK_IMAGE_VIEW_TYPE_2D, this.format, this.aspect, this.arrayLayers, i, 1);

0 commit comments

Comments
 (0)