]> O.S.I.I.S - jp/vke.net.git/commitdiff
auto layer for image view creation
authorJean-Philippe Bruyère <jp_bruyere@hotmail.com>
Mon, 22 Nov 2021 01:41:26 +0000 (02:41 +0100)
committerJean-Philippe Bruyère <jp_bruyere@hotmail.com>
Mon, 22 Nov 2021 01:41:26 +0000 (02:41 +0100)
addons/gltfLoader/PbrModelTexArray.cs
samples/deferred/shadowMapRenderer.cs
vke/src/Utils.cs
vke/src/base/Image.cs

index e7439249f1dc147ffc35993b1ec4578819f9c17c..c40a0e79e72b54d065b59bb15816bf92b3401a55 100644 (file)
@@ -77,7 +77,7 @@ namespace vke.glTF {
                                                transferQ.EndSubmitAndWait (cmd, true);
                                        }
 
-                                       texArray.CreateView (VkImageViewType.ImageView2DArray, VkImageAspectFlags.Color, texArray.CreateInfo.arrayLayers);
+                                       texArray.CreateView (VkImageViewType.ImageView2DArray, VkImageAspectFlags.Color);
                                        texArray.CreateSampler ();
                                        texArray.Descriptor.imageLayout = VkImageLayout.ShaderReadOnlyOptimal;
                                        texArray.SetName ("model texArray");
index 5e059c44acf585913d007177a094a681fc66eabb..511d38706fc8edb087c75c009f6e6fd34aa2b8ad 100644 (file)
@@ -97,7 +97,7 @@ namespace deferred {
                        //shadow map image
                        shadowMap = new Image (dev, SHADOWMAP_FORMAT, VkImageUsageFlags.DepthStencilAttachment | VkImageUsageFlags.Sampled, VkMemoryPropertyFlags.DeviceLocal, SHADOWMAP_SIZE, SHADOWMAP_SIZE,
                                VkImageType.Image2D, SHADOWMAP_NUM_SAMPLES, VkImageTiling.Optimal, 1, (uint)renderer.lights.Length);
-                       shadowMap.CreateView (VkImageViewType.ImageView2DArray, VkImageAspectFlags.Depth, shadowMap.CreateInfo.arrayLayers);
+                       shadowMap.CreateView (VkImageViewType.ImageView2DArray, VkImageAspectFlags.Depth);
                        shadowMap.CreateSampler (VkSamplerAddressMode.ClampToBorder);
                        shadowMap.Descriptor.imageLayout = VkImageLayout.DepthStencilReadOnlyOptimal;
 
index 80719626b33c47aff9e55b379a4f92d612f8942b..f7786d58ad564a5e95a15b860fb47a79e11177f6 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (c) 2019  Jean-Philippe Bruyère <jp_bruyere@hotmail.com>
+// Copyright (c) 2019-2022  Jean-Philippe Bruyère <jp_bruyere@hotmail.com>
 //
 // This code is licensed under the MIT license (MIT) (http://opensource.org/licenses/MIT)
 using System;
index a49c0353790de6706d8eec7fe18266e73a60cab0..9c5e81534abfd4bbccfb9ad70993b2eacddfeee3 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (c) 2019  Jean-Philippe Bruyère <jp_bruyere@hotmail.com>
+// Copyright (c) 2019-2021  Jean-Philippe Bruyère <jp_bruyere@hotmail.com>
 //
 // This code is licensed under the MIT license (MIT) (http://opensource.org/licenses/MIT)
 using System;
@@ -429,7 +429,7 @@ namespace vke {
                }
 
                public void CreateView (VkImageViewType type = VkImageViewType.ImageView2D, VkImageAspectFlags aspectFlags = VkImageAspectFlags.Color,
-                       uint layerCount = 1, uint baseMipLevel = 0, int levelCount = -1, uint baseArrayLayer = 0,
+                       int layerCount = -1, uint baseMipLevel = 0, int levelCount = -1, uint baseArrayLayer = 0,
                        VkComponentSwizzle r = VkComponentSwizzle.R,
                        VkComponentSwizzle g = VkComponentSwizzle.G,
                        VkComponentSwizzle b = VkComponentSwizzle.B,
@@ -448,7 +448,7 @@ namespace vke {
                        viewInfo.subresourceRange.baseMipLevel = baseMipLevel;
                        viewInfo.subresourceRange.levelCount = levelCount < 0 ? info.mipLevels : (uint)levelCount;
                        viewInfo.subresourceRange.baseArrayLayer = baseArrayLayer;
-                       viewInfo.subresourceRange.layerCount = layerCount;
+                       viewInfo.subresourceRange.layerCount = layerCount < 0 ? info.arrayLayers : (uint)layerCount;
 
                        Utils.CheckResult (vkCreateImageView (Dev.VkDev, ref viewInfo, IntPtr.Zero, out view));